VSInsider

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.

Heavy Investment
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.

About the Author

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.

comments powered by Disqus

Featured

  • AI for GitHub Collaboration? Maybe Not So Much

    No doubt GitHub Copilot has been a boon for developers, but AI might not be the best tool for collaboration, according to developers weighing in on a recent social media post from the GitHub team.

  • Visual Studio 2022 Getting VS Code 'Command Palette' Equivalent

    As any Visual Studio Code user knows, the editor's command palette is a powerful tool for getting things done quickly, without having to navigate through menus and dialogs. Now, we learn how an equivalent is coming for Microsoft's flagship Visual Studio IDE, invoked by the same familiar Ctrl+Shift+P keyboard shortcut.

  • .NET 9 Preview 3: 'I've Been Waiting 9 Years for This API!'

    Microsoft's third preview of .NET 9 sees a lot of minor tweaks and fixes with no earth-shaking new functionality, but little things can be important to individual developers.

  • Data Anomaly Detection Using a Neural Autoencoder with C#

    Dr. James McCaffrey of Microsoft Research tackles the process of examining a set of source data to find data items that are different in some way from the majority of the source items.

  • What's New for Python, Java in Visual Studio Code

    Microsoft announced March 2024 updates to its Python and Java extensions for Visual Studio Code, the open source-based, cross-platform code editor that has repeatedly been named the No. 1 tool in major development surveys.

Subscribe on YouTube