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

  • Hands On: New VS Code Insiders Build Creates Web Page from Image in Seconds

    New Vision support with GitHub Copilot in the latest Visual Studio Code Insiders build takes a user-supplied mockup image and creates a web page from it in seconds, handling all the HTML and CSS.

  • Naive Bayes Regression Using C#

    Dr. James McCaffrey from Microsoft Research presents a complete end-to-end demonstration of the naive Bayes regression technique, where the goal is to predict a single numeric value. Compared to other machine learning regression techniques, naive Bayes regression is usually less accurate, but is simple, easy to implement and customize, works on both large and small datasets, is highly interpretable, and doesn't require tuning any hyperparameters.

  • VS Code Copilot Previews New GPT-4o AI Code Completion Model

    The 4o upgrade includes additional training on more than 275,000 high-quality public repositories in over 30 popular programming languages, said Microsoft-owned GitHub, which created the original "AI pair programmer" years ago.

  • Microsoft's Rust Embrace Continues with Azure SDK Beta

    "Rust's strong type system and ownership model help prevent common programming errors such as null pointer dereferencing and buffer overflows, leading to more secure and stable code."

  • Xcode IDE from Microsoft Archrival Apple Gets Copilot AI

    Just after expanding the reach of its Copilot AI coding assistant to the open-source Eclipse IDE, Microsoft showcased how it's going even further, providing details about a preview version for the Xcode IDE from archrival Apple.

Subscribe on YouTube

Upcoming Training Events