Over the next week or so, I want to put a bit of context behind some of the announcements from PDC, particularly the ones that got glossed over amidst the excitement over Windows 7 and Windows Azure. I’m going to start with highlighting some of the work we’ve done around WPF over the last couple of months.
Silverlight and WPF: Avoiding the Tyranny of “Or”…
We talked a lot at the PDC about how we’re continuing to make a very heavy bet on WPF as a platform. Hopefully folk spotted the significance of Scott Guthrie (usually known as the “web guy” and one of the fathers of ASP.NET) spending such a large percentage of his time talking about WPF. We’ve got a big team working hard at new investments in our flagship platform for building Windows applications, and the broad take-up we’re seeing from customers like Autodesk, Roxio, HP, Lenovo, AMD and others is representative of the ongoing momentum behind WPF.
An example of our own investment is in the controls space. At PDC we finally released WPF DataGrid, DatePicker and Calendar controls, all with both binaries and source code available under a permissive license. We’ve also shipped the first CTP of a ribbon control that mirrors the Windows 7 look and feel. (Of course there are some great third-party controls out there that add many valuable data views on top of a basic grid interface, like this one from Xceed). We span up a team a few months back that is focusing on building out controls, so you can expect to see many more interesting visualizations for both WPF and Silverlight over the coming months.
One leadership book that often does the rounds at Microsoft is Good to Great, by Jim Collins – it’s a personal favorite of Steve Ballmer’s, which might explain its popularity. It has one really impactful chapter called “The Tyrrany of ‘Or’”, which describes the false premise that one thing must always come at the cost of another. Silverlight and WPF are a great example of us not unnecessarily putting all the chips on one side of the table. We see a place for both rich internet applications and powerful Windows applications that can take full advantage of the underlying system. Both Windows and the web have their value – it needn’t be an “either/or” proposition.
At the PDC, this was best exemplified by a customer demo from Tesco, the world’s largest online grocery retailer and a major retail force in the UK and abroad. Nick Lansley, who heads up new technology developments there, gave a great demo of how Tesco are supplementing their existing ASP.NET-based website with a WPF-based “companion” application that is always available for quick purchases. Nick writes at length about the application, which is scheduled to go live in beta form early next year, on his blog.
Visual Studio 2010
As many folk will know, we announced at PDC that the new Visual Studio 2010 shell is being written in WPF. This applies both to the visual “chrome” and the code editor. I saw a demo of the new editor just before PDC, and it’s looking really strong. We’ll share more information at the upcoming TechEd EMEA and DevConnections events, but for now, here’s a screenshot:
.NET 4 also adds many new WPF features. We’ve not announced everything yet, but you’ll at least see intrinsic support for multi-touch, Deep Zoom and Visual State Manager (the last of which is already available in preview form), along with much requested improvements to text rendering.
Hotfix for VS 2008 SP1 WPF Designer
I wanted to close by publicizing a brand new servicing update “hotfix” for the WPF designer in Visual Studio 2008 SP1, since it’s the kind of thing that gets missed. You’ll want to apply this one – although there are no new “features”, it fixes a few edge case scenarios. Here’s a short list of the issues fixed:
- When a resource in an external resource dictionary is updated, Visual Studio 2008 crashes.
- WPF Designer cannot load read-only attached properties, such as the VisualStateManager.VisualStateGroups property.
- If some data is bound locally, and then the data binding is cleared, WPF designer reports an error message ‘System.Windows.Data.Binding’ is not a valid value for property
- WPF Designer fails to load in VS.NET 2008 SP1 (RTM) if the startup project is set to a Win32 project
- When you set and then delete the Source property of a WPF WebBrowser control, Visual Studio crashes.
- When you move a control which is using the MultiTrigger class or the DataTrigger class in the Style class, WPF Designer may throw an InvalidCastException exception.
Happy WPF coding!