Gáspár Nagy on software

coach, trainer and bdd addict, creator of SpecFlow; owner of Spec Solutions

PDC Summary

by Gáspár on December 1, 2008

With three other colleagues, I attended PDC 2008 in Los Angeles. Here is my short overview about my feelings after that.

Although it was very exhausting to be there, especially after that long flight, I think it was worth. Why? Because I aligned myself to the actual state of the technologies that are currently running or planned in the Microsoft world, and this helps me select what to study more deeply, what can be interesting for us in the near or far future.

I was also interviewed there by István Novák for Channel 9 Hungary. The interview is in Hungarian, but you can at least see me talking in a strange language… ;-)

The topics that were interesting to me:

New CLR version: for me, the new CLR is about loosening the tight coupling between the interfaces defined in different assemblies. Although generally I’m more for the strongly typing, I see this as a necessary improvement. We have also encountered the problem many times that supporting common interfaces between modules defined in different assemblies is hard. And it gets even worse, if you have to support older versions of the interfaces. The solution was there (you can always introduce a new assembly with the common interface parts, and since the runtime checks the existence of the references only when you first try to use them), but it was painful and ugly sometimes. So let’s see what we got now.

New C# version: I have strange feelings about the development of C#. I like the new features (dynamic types, optional and named arguments, and most importantly the covariance and contravariance of generics), but I also see that it somehow does not fit nicely to the hacks that they did in the language in 3.0 (extension methods, partial methods, and partly the way how linq was defined). It will be really hard to understand a C# code without IDE.

Oslo: Yes! I think we have missed such a thing very much in the MS community. Especially together with the modeling tool “Quadrant”. I used the MS DSL toolkit, but it was not the ideal solution for software factories, so now I’m very interested in this project. I think, however, it was not presented well. Maybe the samples were not chosen ideally, or maybe there should have been more explanation about the possible usages of such a tool… I don’t really know. But I talked to many people who were not really in the know, what “Oslo” is about.

Azure: Hm… this caused the biggest confusion for me when I wanted to rate how much I like it. Generally I like the idea to build a platform for really distributed and scalable applications. And I think MS is strong enough to provide the technical background of such a platform (based on .NET, and the data storage and sharing experiences they have). But the idea that MS will be the only provider, who can run this platform… it is a little bit frightening for me. But we will see (and of course MS is not different from the competitors in this regard… they are frightening too…). The other concern I have currently about Azure, that they don’t have data centers in Europe yet… But this one will change for sure. Until that we should get familiar with the platform.

ASP.NET future: As Christoph says: “classic ASPX Development will die”. Although I’m sure that this will not happen in the near future, but it is true that the new features do not really bring in anything new. Everybody is either talking about MVC or simple asp.net pages powered up with Ajax (or the combination of these). The new features? Possibility to specify the client ID of the rendered html controls, possibility to influence the routing, enhancements of view state handling (can be switched off more accurately :).

ASP.NET MVC: This made me the most excited. After PDC I thought that now it finally gets usable. Now, when I am writing this summary, I have already dug deeper into the topic, I have a lot of unanswered questions. I will write separate posts about them. But I still believe that this is a platform that should be seriously considered for larger web applications. Maybe for shorter ones too…

ASP.NET Ajax: Sooner or later MS also realized, that an Ajax framework should be something more than the UpdatePanel (which is a wrong concept IMHO). Now we have the way to write dynamic applications that can communicate with the back-end asynchronously, load the data (json), and render them out on the client side, with client-side templates. And of course, let the users benefit from the existing ajax codes, written in jQuery. The direction is good, but I still have to see a real-world sample to see the pain-point of it (there are for sure). The first question: how client side templates will be maintainable for a complex case, and how can I extract and reuse them?

Open XML SDK: A minor session, but I worked with the previous versions, therefore I was interested. I think with the new SDK, the manipulations of the OpenXML documents will be really easy. There is a nice DOM wrapper around the XML structure, that you can use to operate on the document parts easily and without loosing too much performance. (You can switch back to XML, if that’s more easy to accomplish a task.) They even created a LINQ provider to query the documents using the DOM in an efficient way. Nice!

Entity Framework: As an ORM vendor, it was a little bit funny to see how proudly the EF team announced new features that had been existing in other products for ages. And the audience applauded… it seems that you have to be MS to reach massive crowds with the idea of object-relational mapping. The new version will come out in fall 2009, with lazy loading, attributed/automatic mapping, complex types and model defined functions.

WCF: I think WCF proved that it was really designed for future extensibility. The new features (to support REST) just fit seamlessly to the design. Not a surprise, Azure used the WCF architecture almost as it is as service interface.

REST: I have been against REST for a long time, but with the nice support on both client and server sides (WCF, Ajax, Silverlight, ASP.NET Data Services), this seems to be much more useful as a communication platform for communication between the different tiers of an application. This is again something that has to be tried out in a project.

Windows 7: I don’t have too much to say. It is a usable Vista. I have already installed it to an old laptop, and it is working (except IE8, that sometimes does strange things, but Firefox runs fine on it).

Parallel programming: There were many sessions about parallel computations. And to tell the truth, I don’t see yet the relevance of it in our applications (server applications with web front-end). I think I really have to dig into this to see the full picture, and maybe I’ll collect my thoughts in a separate blog.

Visual Studio 2010: The new VS is in a very pre-beta stage, it did not survive any session without restarting it a few times. But the new features are good IMHO. There is a new project type for UML diagrams (we don’t have to sweat with Visio to include a simple diagram to the project). Code structure reverse engineering – a nice tool to have a visual overview about the project/code structure and the dependencies. Ideal for code reviews and to continue working on existing projects. And yes! A nice WPF editor, including data binding expression editor, and data binding expression intellisense in the xaml file. Interestingly, there was hardly any session about VS extensibility. It was only mentioned in the keynote, that VS2010 comes up with a new WPF code editor that has new extensibility points.

WPF: Three new controls: ribbon control (like in Office 2008); date time picker control (finally); grid control – nice and seems to be usable even in a little bit more complex scenarios (like an additional expanding detail row under the selected row).

Comments are closed.