WPF 3.5 SP1: Don't let the SP moniker fool you
Yesterday the WPF team shipped some major horsepower features in the vastly understated preview Service Pack to .NET Framework 3.5. It is an exception to the rule for an SP release to have features, and not just bug fixes. In the mold of Windows XP SP2, this SP of .NET Framework 3.5 is chock full of new WPF features.
For the first time the .NET Framework has been divided into a Client profile which - intuitively - does not contain server specific libraries such as ASP.NET. This cuts down the size of the .NET Framework to about 25MB (which as Dr. Sneath reminds us is close to Adobe Reader's size) and people like me with a Java background can associate it loosely with the Java SE and Java EE split. In many ways, this is the realization of the Longhorn-era "WinFX" give-or-take a couple assemblies.
Given my previous association with the WPF Application Model, I'll begin with a shout out to improvements from and driven by that crew. The Web Browser control in WPF is embodied by the Frame element. There's new support for interop between WPF and HTML content hosted within it (yay for DOM and script access!). In addition to the existing support for rendering HTML content via URI comes new support for rendering HTML via a stream. This allows for dynamically created HTML content to be rendered in a WPF app. And oh, XBAP enthusiasts will note that this all works in the partial trust sandbox. The progress UI on XBAP launch gets a perf boost and is now an instant-on UI. There's wide ranging real and perceived perf enhancements in the product that customers will truly love. Besides, there are some ClickOnce improvements allowing you to customize the activation error experience, suppress/customize the ClickOnce UI, set up file associations (yes, despite my reservations to this), opting out of signing your apps (I've long maintained that shelling out 300 bucks for a cert is good news for Verisign and gang but bad tidings for hobbyist developers; good to see this change) but with support for corps to block unsigned apps (so this is a wash security-wise). And yeah, ClickOnce-deployed apps can be launched with a click of a hyperlink on Firefox!
An update to Visual Studio 2008 now lets you target your apps specifically to this Client profile of .NET Framework. You have an option of packaging up your app in an installer which will bootstrap .NET Framework 3.5 and uses some nifty tricks (like asynchronous NGEN) to speed up the time between the click and bits showing up on screen.
This release contains the graphics features demoed at Mix 08, like extensible shader effects which will let you harness the power of the GPU while still using animation, data-binding, media, composition and other WPF goodness. Fittingly, as has been WPF's charter, these features bring advanced concepts like HLSL effects and SIMD processing to the realm of application developers like me with simple abstractions and none of the complexity (I mean creating an effect is still the realm of experts, but using it is as simple as instantiating a control in WPF which I'm perfectly capable of doing, equating it with something like a DataGrid). Besides, there's deeper DirectX integration so you can blend or overlay D3D content with WPF.
There's a new DataGrid and Office Ribbon control provided out of band with WPF.
I can go on and on, but I should stop now because I can't hold this smile much longer. The WPF and other partners contributing to .NET Framework kick some major bootay with this release. Calling it a Service Pack is a classic understatement. Readers who are familiar with Silverlight, but not so much with WPF are encouraged to dig deeper. And do let us know which of these features you'd like to see in Silverlight.
- Channel 9's ongoing WPF Series has a set of videos where folks from the team talk about features and do demos
- Scott Guthrie: VS 2008 and .NET Framework 3.5 SP1
- Tim Sneath: Introducing the third major release of WPF
- Greg Schechter: A series on GPU based effects for WPF