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.

Recommendations

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

Featured

  • Compare New GitHub Copilot Free Plan for Visual Studio/VS Code to Paid Plans

    The free plan restricts the number of completions, chat requests and access to AI models, being suitable for occasional users and small projects.

  • Diving Deep into .NET MAUI

    Ever since someone figured out that fiddling bits results in source code, developers have sought one codebase for all types of apps on all platforms, with Microsoft's latest attempt to further that effort being .NET MAUI.

  • Copilot AI Boosts Abound in New VS Code v1.96

    Microsoft improved on its new "Copilot Edit" functionality in the latest release of Visual Studio Code, v1.96, its open-source based code editor that has become the most popular in the world according to many surveys.

  • AdaBoost Regression Using C#

    Dr. James McCaffrey from Microsoft Research presents a complete end-to-end demonstration of the AdaBoost.R2 algorithm for regression problems (where the goal is to predict a single numeric value). The implementation follows the original source research paper closely, so you can use it as a guide for customization for specific scenarios.

  • Versioning and Documenting ASP.NET Core Services

    Building an API with ASP.NET Core is only half the job. If your API is going to live more than one release cycle, you're going to need to version it. If you have other people building clients for it, you're going to need to document it.

Subscribe on YouTube