What's New in WPF 3.5? Here's Fifteen Cool Features...

A lot of WPF developers know that Visual Studio 2008 will include much better baked-in support for WPF - the "Cider" team have delivered a WPF forms designer, high-quality XAML Intellisense built on top of a XAML language service rather than an XSD, a full set of project templates and integration between WinForms and WPF design-time views. But not so many people are aware of the enhancements we're making behind the scenes to the core WPF runtime, both in terms of polishing off a few rough edges and adding a small number of targeted features that will unblock a few key scenarios.

I thought I'd steal liberally from a presentation the famous Kevin Moore (of WPF Bag'o'Tricks fame) delivered at an internal field conference this week, and give you a quick run-down of some of the new capabilities you'll find in this updated release. Make sure you download a copy of Visual Studio 2008 Beta 2 and check out both the design-time improvements and the enhanced platform features.

Here's a non-exhaustive list of improvements:

  • Performance
    • Fixed animation glitching issues.
    • Layered windows are now hardware accelerated.
    • Many other fixes to improve cold start, data binding, etc.
  • Data Binding
    • Support for XLINQ binding.
    • Improved data validation on binding (ValidatesOnDataErrors and ValidatesOnExceptions binding properties).
    • Much better debugging (PresentationTraceSources.TraceLevel can be set on bindings or providers).
  • Graphics and Text
    • UIElement3D (enables interactive 2D content on 3D surfaces).
    • Improved support for IMEs (input method editors).
    • Indic script support.
    • TextBox now supports a limited undo history.
    • RichTextBox now fully supports inline elements (e.g. a Button).
  • XBAPs
    • Introduced support for the Firefox browser.
    • WCF now operates in partial-trust mode.
    • Can now read/write HTTP cookies.
  • App Model
    • System.AddIn provides support for isolated visual and non-visual add-ins, allowing for discovery, versioning, activation and lifecycle management.

Most of the performance improvements and some of the feature improvements will also be included in a forthcoming service pack for .NET Framework 3.0 - I don't think we've talked externally about delivery mechanisms for this at this stage, however.

For more information, your first point of reference should of course be the Visual Studio 2008 Beta 2 documentation. I'm going to see if I can film a Channel 9 video with Kevin over the next week, so we can demo some of these new features to you. Feel free to add a comment to this blog if there's something specific you'd like to ask for more information about, and we'll try to capture it.