PDC05 remarks
I am sitting here at LAX and waiting for my plane to depart (flying via Frankfurt to Helsinki). Since the services in LAX are almost nonexistent, I'll try to wrap up the most important learnings from the week while charging up my laptop for the flight. Btw, I don't get it why the americans have ended up using such a nonfunctional electric plug, my cable is barely keeping connected to the wall socket that is very very loose :)
So, the week of PDC is over with a lot of new things got announced. As many times before, it was a week very well spent. Here are a few of the things that I think are important.
Windows Vista (http://msdn.microsoft.com/windowsvista)
Vista is of course the main big topic with a lot of details in it like Windows Communication Foundation (aka Indigo), Windows Presentation Foundation (aka Avalon) etc. Attendees got a build 5219 of Vista to play with and those with a decent graphics card can also see what the new glass ui looks like. A few smaller things besides WPF and WCF that I think will be important are the sidebar and UAP (User Account Protection). Sidebar is the little taskbar-like addition that sits typically in the right side of your screen. Build 5219 does not yet have it, but it will be available in a later build of Vista and also available for Windows XP. Sidebar Gadgets (as they call the little applets that sit in the sidebar) can be developed in either DHTML or in XAML. This is a great way to offer a non-intrusive ui to a part of your application that the users need to have available constantly. Go and see more here: http://www.microsoftgadgets.com.
The second feature in Vista is UAP as a whole. It means that all applications run by default as they would run as they were started by a standard user account. Yes, even if you log on as an admin the apps still run by default with standard user permissions (of course it is configurable in many ways). This has serious implications to the applications that you write. If your app tries to write to a file in program files or call other APIs that require admin privileges, they will simply not work. Of course the application can be run with admin privileges by prompting admin password, but by default, all the applications should be engineered so that they work with minimal rights. Naturally UAP can also be largely achieved with Windows XP today by logging on as a standard user, which I have been advocating for several years now.
Language Integrated Query (LINQ)
This is the major news for developers in this PDC, IMHO. Anders Hejlsberg, Don Box, Erik Meijer et al have been busy creating an unbeliavably seamless and integrated environment where you can issue queries to a variety of data sources. With the query expressions written within the programming language, and providing a seamless way to handle data as objects it really eases the pain to write applications that handle data.
One interesting note regarding the query syntax: In VB 9.0 it is currently
select ... from ... where ...
as in C# 3.0 it goes like this:
from ... where ... select ...
This means that in VB the syntax closely resembles SQL whereas in C# select clause comes last. This was debated in the panel on the last day of PDC, and Anders said that the C# syntax is more natural because there you first introduce elements and only after that apply other operations to it (like where and select). This makes e.g. intellisense much easier to implement. In the same panel Erik Meijer preferred the VB syntax because there you immediately see what you get as the result of the query by looking at the first clause. Both are valid explanations, but I somehow agree with Anders that SQL has done it the wrong way from the beginning :) We'll see what it looks like when LINQ comes out as a product, there might be quite a lot of changes before that.
I really encourage you to take a look at the documentation and try out the tech preview of the LINQ project here: http://msdn.microsoft.com/netframework/future/.
Windows Workflow Foundation (WWF)
Another major announcement concerns the workflow engine that is going to be built into Windows. Extending from the basic ideas from BizTalk server and taking things further, it will be a basic foundation for distributed workflow-like applications on the Windows platform (inlcluding a future version of BizTalk Server). Go and learn more at http://msdn.microsoft.com/workflow/.
DSL Tools
While there were no major news around the DSL Tools project, Jochen Seemann gave an excellent talk on it. Especially interesting was the integration between a custom DSL designer and the built-in Class Designer that Jochen showed. It was also nice to see that there already are partners that are using DSL Tools in quite complicated scenarios (like EDS that was demoed in Jochen's talk). There should be a new version of DSL Tools coming out any day now, watch this space for announcements.
Expression tools family
We are bringing three new professional tools to the market: Sparkle Interactive Designer, Acrylic Graphic Designer and Quartz Web Designer. While I am no graphic designer, they all looked like tools that those who have an eye for good looking graphics get great benefits from.
Last but not least: Office "12"
The new ui is radically different from the current one. One of the main arguments to redevelop the ui is "90% of the feature requests we get from customers are already in the product. Users just don't know it!". Menuless ui certainly makes it less cluttered, but there were also strong opinions favoring the old ui, and requests for a "classic" version (which is stated not to be available).
XML-based file format is an excellent thing, finally you can produce office files without the help of the office object model. Moreover, all files are essentially zip files, which means they are rather small since they are always compressed!