icrosoft opened the PDC this year to a sold-out crowd eager to see the Redmond giant's future plans. And they weren't disappointed. Not only is Microsoft showing off future systems, it has provided each attendee with a jaw-dropping 30GB of software in a DVD box set consisting of various Community Technical Preview builds and betas, including:
- Windows Vista Beta 1 as well as a later version called Windows Vista CTP: PDC05, Ultimate Edition (in both x86 and x64 versions)
- Windows Server Codename Longhorn CTP: PDC05
- Visual Studio 2005 Team System Beta 2
- SQL Server 2005 June CTP
- Virtual PC 2004
- Virtual Server 2005 R2 Beta
- WinFX Runtime Components September CTP, plus the VS 2005 extensions for WinFX
- WinFS Beta 1
As if Windows Vista weren't enough all by itself, Microsoft discussed a profusion of new "platforms" for developers and end users, including:
- The Windows Sidebar (the area where the analog clock and other "gadgets" appear, gadgets being the semi-official term for applications that run in the Sidebar)
- Windows Sideshow (a hardware-dependent window for mobile devices (including laptops) where applications such as mail and messaging can run without booting or opening the device)
- Vista RSS (APIs that build RSS read and display capabilities directly into the OS)
- Visual Studio Tools for Office 2005 (a framework for building applications on top of Office) and the Office Task Pane.
In bygone years only Vista would have been called a platform, but the new nomenclature is indicative of a larger trend in development—a shift from old-style code-intensive programming to configuration. This shift is occurring for three reasons: First, the tools themselves have become so capable that most developers don't need to enhance them (through code) to provide application features as much as guide them (through configuration) to expose the features already built-in. Second, because the ever-increasing need to produce robust and secure code quickly demands a high level of code reuseand configuration-driven programming is a good way of reusing existing, tested, and secure code. Finally, today's applications must often run on multiple devices; therefore, to maintain a common code base, enterprises need to isolate application functionality from the host platform.
One way of doing this isolation is through configuration, using easily alterable control files as a way of letting the application adapt to the capabilities and limitations of the target device at runtime. For example, Darryn Dieken of Netflix showed a .NET DVD-rental demo built using Netflix's RSS feeds and the Windows Presentation Foundation (WPF, formerly known as Avalon) that ran similarly in three configurations: a desktop using a mouse, a Windows Media center using a remote control, and a PDA using a stylus. Despite wide variations in input method and screen real estate, they were able to use a common code base, making minimal changes for each device type.
|In bygone years only Vista would have been called a platform, but the new nomenclature is indicative of a larger trend in development—a shift from old-style code-intensive programming to configuration.|
This trend toward configuration-driven programming, which began in earnest a long time ago with Visual Basic's "Properties" window, has grown to encompass far more than simple property values. It now encompasses entire UI features via XAML and Atlas, Microsoft's framework for implementing AJAX applications, communications features via the Windows Communication Foundation (WCF, formerly known as Indigo), and application behavior via metadata and configuration files. For example, you can develop and deploy an application, and then later change its entire UI by altering a text file containing the XAML that defines the look-and-feel. Or you can add bindings to a Web service, changing the way clients authenticate or connect by altering the service's WSDL file.
Of the keynote demonstrations Tuesday that showed codewith the exception of the Language Integrated Query (LINQ) that I'll discuss laterthe bulk of the code-based operations shown were configuration-related rather than code-related. The results are impressive, but the audience response was weak. Configuration, whatever the results, isn't quite as satisfying as coding.
However, if you're not that keen on writing much code anyhow, the new capabilities are legion. In his keynote Tuesday, Jim Allchin, Microsoft's Group Vice President of Platforms, joked that every Vista application had to include 3D capabilities, and every Vista demonstration obliged. Chris Caposella, Microsoft's Vice President for the Information Worker Product Management Group had the task of demoing Vista to the crowd, and the OS's WCF-powered 3D presentation system was stunning. Tasks such as taking a set of 2D images and animating them so that a user can "flip" through the stack have left the realm of high-end games and expensive digital animations and entered the realm of business applications.
XAML provides a way for graphic designers to become key players in building applications by separating the visual elements of an application from the code that activates them. Just as in HTML, designers provide the look and unique names for objects, while developers use those names to link objects to code and data. The upshot is that designer/developer collaboration can produce applications far more attractive than most developers can produce on their own, but the intrinsic separation means minimal code changes for developers in the event of a design change.
In Wednesday's keynote, Eric Rudder, Microsoft Senior Vice President of Servers and Tools, discussed the now resuscitated "Sparkle" (which, if you remember, was originally said to be a "Flash killer"). Sparkle is now three separate products in a suite named "Expression," consisting of the Quartz Web Designer, the Acrylic Graphic Designer, and Sparkle Interactive Designer. Joe Marini and Mark Boulter showed how this suite empowers designers in the development process by interactively designing, modifying, and activating a Visual Studio project. The project opens directly in Expression, where a designer can modify forms. Even though the developer may have the project open, Visual Studio 2005 recognizes that changes to the form were made in an external program, and refreshes the developer's view, creating a highly collaborative environment where both developers and designers can see and work on the form with the tools each needs.