Tuesday, May 13, 2008

This was announced at MIX 08 and the product team has put its first BETA out already! 

Windows Presentation Foundation (WPF), the superset of Silverlight used for building rich desktop experiences, has its third major update.   The .NET Framework team today released the .NET Framework 3.5 SP1 and Visual Studio 2008 SP1, both as BETA and downloadable for free - offering a ton of features in ASP.NET, AJAX, Visual Studio, VB.NET and C#. 

Scott covers it all in his marathon post here and Tim Sneath does a detailed write-up of the WPF features here. I thought I will highlight the key things that excited me (and had been waiting to talk about!):

Graphics Enhancements in WPF

Hardware accelerated Shadow and Blur effects: Pixel Shader effects that allow designers/developers on WPF to just add a line of code to get shadow and blur effects.  The best part is that these automatically run hardware-accelerated. Best part: The effects model is designed in a way that developers can create their own re-usable effects.  A detailed write-up of the effects model and a tutorial on creating your own effects is available here.

Improvements in Text Rendering, Animations, 2D Graphics and Startup:  A whole lot of performance enhancements have been made, specially around text rendering in 3D scenes and with regular 2D animations.  Performance has also been significantly enhanced for the cold startup time (when you load a WPF application for the first time).

HLSL and DirectX integration: DirectX developers can use HLSL and Direct3D integration in WPF, allowing for DirectX scenes to be rendered on WPF controls!  This is huge for companies and developers that already have existing investments in DirectX and want to port any of it to WPF.

New Controls:  WPF will have three new controls that are bound to be popular with developers instantaneously.  A really rich DataGrid control that provides the most often used tabular data view, a WebBrowser control that will let you host browser-based applications in a WPF window and (hold your breath) the Office Ribbon control with full adherence to the Ribbon-UI guidelines!!  That will enable developers to just build Ribbon-menu based applications with the least effort!

Deployment

OK, now the bigger part!  One of the bane of WPF applications was the necessity of a huge .NET Framework installed on the system.  The .NET Framework 3.5 redistributable is 197MB making it very hard to bootstrap to a WPF application that is being installed. 

Introducing the .NET Framework Client Profile.  This is a much smaller version of the runtime (expected to be only around 26MB!!!) that does not contain several of the server components (for example: ASP.NET) and only includes the assemblies required for client applications, namely - the .NET Framework core, WPF, WCF and Windows Forms.   This also comes with a bootstrapper (~200KB) which can be included into your client applications.  The bootstrapper will check for .NET Framework availability and then download the .NET Framework Client Profile setup package if it found that .NET Framework is not installed already.    The bootstrapper is also smartly written to look at only incremental components - for instance, if you already had .NET 3.0 and your application required .NET 3.5, it would only download the incremental components, hence reducing the download size much further.  Note that you will have to explicitly configure your application to require only the client runtime components while building the application.

Remember that since most Windows XP systems already have .NET 2.0 or higher, this should significantly reduce the download size for .NET Framework.  This is probably the best update for WPF since its first release!!!

BETA 1 Notes

Much as I want to try all the great stuff immediately, remember that there are some incompatibilities of Visual Studio SP1 with the Silverlight 2 BETA Tools for Visual Studio.  This will cause your Visual Studio Silverlight development experience to break.  A new version of the Silverlight Tools will be released soon (see Scott's blog for more information).

Also remember that this is the BETA and not all features mentioned above (like Ribbon UI) are immediately available.  See Scott's blog for details.   But hey, we've made the announcements.  And Scott's team has been pretty kick-ass in shipping stuff really fast!