The HTML5 Factor
During the 2010 Microsoft Professional Developers Conference (PDC) in late October, the keynote address demonstrated Internet Explorer 9 and its superb support for HTML5. As part of this, Steve Ballmer stated: "Microsoft will build the world's best implementation of HTML5 for devices running Windows." And Bob Muglia told reporter Mary Jo Foley: "Our Silverlight strategy and focus going forward has shifted." This sparked a significant level of concern among developers committed to Microsoft development technologies: Are Silverlight and Windows Presentation Foundation (WPF) still the right choices -- and how long will investment in these technologies remain viable? The fact that throughout the conference there was relatively little information on new technology for WPF or Silverlight didn't help ease the worry. In this column I'll address these concerns.
Commitment to Standards
WPF and Silverlight have garnered significant limelight for UI development since their initial launches -- in 2006 and 2007, respectively -- and will continue to do so in many more Microsoft conferences to come. This particular PDC, however, was about winning back the browser and phone markets while establishing a lead for cloud technology. The focus on HTML5 being part of the message was to show Microsoft's commitment to standards in Internet Explorer 9, not to indicate a lack of focus on the other UI technologies.
As we approach the end of 2010, the proliferation of devices has skyrocketed and shows no sign of abating. If you wish to write an application that has the broadest reach across all these devices, HTML is undoubtedly the way to do it. It's the only platform that attempts to achieve write-once/run-anywhere. By adding HTML5 support to Internet Explorer 9, Microsoft is establishing a minimum Internet Explorer browser that will work when HTML5 is the norm. When targeting HTML5 today, you'll be writing two versions of your UI: one that targets HTML5-supporting browsers (for which implementation varies), and one that targets plain HTML. For the broadest reach today, create a basic HTML Web application and a second one that supports Silverlight for a richer UI experience. Using HTML5 in place of Silverlight will result in less reach and a suboptimal UI experience -- HTML5 applications are far less capable than those written in Silverlight.
Make no mistake, Microsoft will be investing heavily in many platforms. For it to do otherwise would be a disappointment to us and a huge mistake for the company. Redmond's recent investment in HTML5 is great because it shows a commitment to standards as well as a renewed focus on winning back the browser market. However, Microsoft's investment in the future by no means stops with HTML5.
Microsoft is extremely committed to Silverlight and WPF for the foreseeable future; they are pillars of the company's strategic direction. A vast majority of Microsoft's revenue continues to come from Windows, and there's no doubt the company is committed to providing the best development experience and resulting software for applications targeting Windows.
WPF leads the way in capabilities for targeting Windows, but it requires the .NET Framework Client Profile at a minimum and deployments and updates are likely to be via ClickOnce.
If your target reach extends to the Mac or Windows Phone 7, then Silverlight is the way to go. As with any technology, however, writing a single Silverlight UI for diverse targets such as the desktop and phone is not advisable. Instead, as announced at the PDC by Shawn Burke, an architect on the Microsoft Silverlight team, developers should strive to achieve code reuse in the business logic and as close to the UI layer as possible. Each target should then have its own UI implementation.
One final point: If you have an existing application that already targets ASP.NET, Silverlight or WPF and it's working well for you, don't change what you have. Microsoft is committed to each of these technologies -- not just to supporting them, but to investing in them and enhancing them in the long run.
Mark Michaelis (http://IntelliTect.com/Mark) is the founder of IntelliTect and serves as the Chief Technical Architect and Trainer. Since 1996, he has been a Microsoft MVP for C#, Visual Studio Team System, and the Windows SDK and in 2007 he was recognized as a Microsoft Regional Director. He also serves on several Microsoft software design review teams, including C#, the Connected Systems Division, and VSTS. Mark speaks at developer conferences and has written numerous articles and books - Essential C# 5.0 is his most recent. Mark holds a Bachelor of Arts in Philosophy from the University of Illinois and a Masters in Computer Science from the Illinois Institute of Technology. When not bonding with his computer, Mark is busy with his family or training for another triathlon (having completed the Ironman in 2008). Mark lives in Spokane, Washington, with his wife Elisabeth and three children, Benjamin, Hanna and Abigail.