Code Focused

Developer Recommendations from BUILD

Joe Kunk sifts through the Windows 8 announcements at BUILD and offers advice on next steps.

After much secrecy, Microsoft unveiled Windows 8 at the Build conference in Anaheim CA in mid-September 2011. The Developer's Preview is available for download here. The preview is surprisingly stable; this article was written in Windows 8 using SkyDrive.

Also detailed were features of the upcoming update to Visual Studio, referred to as V.Next.  While not expected to be included in V.Next, Anders Hejlsberg demonstrated Roslyn, the compiler as a service project for Visual Studio, an exciting technology that will enable many new capabilities for developers.

By this time many developers have had a chance to review the keynote recordings, the session recordings, and try out a few of the hands-on labs. So what does all this information mean for C# and Visual Basic developers? What do we need to do to prepare for the release of Windows 8?

.NET Framework Upgrades

Windows 8 will have two modes to help satisfy the needs of Windows users across a wide range of hardware form factors.

The desktop mode allows .Net developers to continue to develop and run applications just as they currently do in Windows 7 and Visual Studio 2010 (or earlier versions). The new .NET Framework version 4.5 provides enhancements to the Common Language Runtime (CLR), Web, networking, Windows Presentation Foundation (WPF), Windows Communication Foundation (WCF), and Windows Workflow Foundation (WF). Microsoft has clearly made a commitment to continue to evolve and enhance the advanced Windows application functionality that many organizations and .NET developers have enjoyed during the 10 years since the release of the first .NET Framework.

The Metro-style interface provides a Windows Phone 7-style experience under Windows 8. Many of the enhancements were developed to bring mobile capabilities natively into Windows so that Metro can be available on every device running Windows, including those based on low-power ARM processors. The new Windows Runtime (WinRT), which provides system services to Metro, interacts directly with the kernel and doesn't depend on Win32, making Metro-only devices possible.

Metro Style

The goal of Metro mode is clear: Provide a high-quality Windows user experience on all hardware form factors such as smartphones, tablets and desktops, taking full advantage of the hardware features available including GPS, accelerometers, touch and so on. Applications are certified by Microsoft to be safe and meet certain standards before becoming available in the Windows Store.

In Metro development, user experience quality trumps developer convenience. In WinRT, any method that can reasonably be expected to take longer than 0.05 seconds (50 milliseconds) has been written as an asynchronous method in order to keep the display responsive, even though developers often prefer the easier synchronous method calls. Metro applications will run in a sandbox, limiting access to system devices and resources to prevent potentially harmful actions.

Metro development is done in either in C# or VB with a XAML-based user interface, or in JavaScript with an HTML 5 user interface. It's interesting to note that a Metro C# or VB class can be deployed as a WinMD file, making it available to be called by a JavaScript application. Just be sure to use the Windows Metro style Class Library template, as a Windows Class Library template will not work.

When you hear HTML 5 and JavaScript mentioned for Windows 8 development, you may naturally think of Web applications. Understand, however, that Metro applications are Windows applications and are not consumed over the Internet. For Web applications, you'll continue to use ASP.NET in desktop mode.

Whither Silverlight?

There were some concerns voiced in the developer community about the future of Silverlight under Windows 8. Silverlight continues to work fine under Windows 8 desktop mode, but all plugins are prohibited from the Metro version of IE 10, including Silverlight and Flash. This will help improve battery life, security, reliability and privacy.

Windows Phone 7 Silverlight applications can't be directly ported to Windows 8 Metro, but because of the support for managed code and XAML, the conversion shouldn't be too daunting. Developers wishing to deliver Silverlight-like applications to Metro-only devices will need to make them available via the Windows Store and coded with XAML, driven by C# or VB.


My recommendations for both C# and VB developers:

  • Continue to use the full power of .NET for desktop applications where appropriate; there is and will continue to be a strong demand for full-featured desktop and ASP.Net applications.
  • If you aren't comfortable with XAML yet, this is a great time to learn it.
  • If your application needs to run managed code on the Mac OS, Silverlight is still an excellent choice.
  • HTML 5, JavaScript and CSS are increasingly important skills. Enhance your skills in these areas as much as possible.
  • Get comfortable using asynchronous methods. The new Async and Await keywords will help make coding these methods almost as easy as synchronous methods in many cases. These new asynchronous keywords are not solely for Metro applications; Windows Forms applications can now easily utilize asynchronous methods, too.
  • The standards-based OData protocol within an SSL-enabled Web site is a great way to provide data operations without a browser plugin. This article provides a good introduction to OData.

Windows 8 promises to provide a platform to run a single application across hundreds of millions of devices from smartphones to tablets, all the way up through the most powerful desktop. It's an exciting time to be a .Net developer.

About the Author

Joe Kunk is a Microsoft MVP in Visual Basic, three-time president of the Greater Lansing User Group for .NET, and developer for Dart Container Corporation of Mason, Michigan. He's been developing software for over 30 years and has worked in the education, government, financial and manufacturing industries. Kunk's co-authored the book "Professional DevExpress ASP.NET Controls" (Wrox Programmer to Programmer, 2009). He can be reached via email at [email protected].

comments powered by Disqus


  • 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