http://www.developer.com/net/considerations-for-building-windows-8-metro-applications.html

Back to article

Considerations for Building Windows 8 Metro Applications


May 24, 2012

With the upcoming release of Windows 8 and its newer Metro-style interface, it is apparent that a lot has changed since the days of developing WinForms apps. The Metro UI is a very different take on Windows, where the primary focus is touch driven instead mouse and keyboard. If you are not familiar with the new Windows UI, here is a screenshot taken from the new start screen.

Metro UI Start Screen
Metro UI Start Screen

As you can see this is a drastic departure from the Start button used in in various forms since Windows 95. Instead of using icons, Metro makes use of live tiles, which can be updated by apps. In addition to changing the way we go about launching apps, the apps built for Windows 8 are quite different from the apps we were used to before. Below is a screenshot of a sample full screen Metro app created for the Metro UI.

Full Screen Metro App
Full Screen Metro App

As you can see, the app takes over the entire screen allowing for an immersive experience, utilizing all of the available screen real estate. While two apps can be displayed side by side, the traditional windowing environment is not compatible with Metro. In addition to the immersive experience, Metro brings about several common components that stand out among apps. The most common of these is the AppBar and is designed to provide a standard location to place commands within the app as shown below:

GridApplication1
GridApplication1

Metro apps can also implement contracts, which allow the app to perform common functions such as search and share. If you choose the implement the search contract, your app's data would be included in searches the user performs. Share is another very handy contract that allows you to share information among applications. For instance you could share a photo with an app to edit and apply filters to the photo.

Building Metro UI Apps

With the new style of Metro, you may be thinking you will need to spend quite a bit of time retraining developers to build these apps. Luckily, Microsoft has made the process quite painless and allows you to use many of your existing skills. Metro apps can be created using C#/VB.Net with XAML (eXtensible Application Markup Language) or JavaScript and HTML5/CSS. All of the tools needed to start building Metro apps will be included in Visual Studio 11, currently in Beta.

Deploying Metro UI Apps

Similar to other platforms employing a Store model, Metro UI apps have different deployment options, which differ from traditional Windows apps. While Microsoft has not fully documented the various deployment methods available at the time of the writing of this article, we can make a few generalizations about how the store will work. Most apps intended for the general public will be published through the Windows 8 Store. Enterprise apps will most likely be restricted to companies that need to create and deploy specific apps within their organization. Other options may be available once Windows 8 is released.

Can I Just Direct Convert my WinForms App Over to Metro?

Many development teams will want to take a short cut and simply build an app that is a 1 to 1 conversion of their app over to Metro. Unlike other UI improvements that have occurred with Windows upgrades, Metro is a drastic departure from previous designs. If you want to take advantage of the newer Metro UI and the capability to run on tablets you will need to take a look at your design and make alterations where needed to work within Metro. For instance, many WinForm apps tend to pack a lot of labels, text boxes and other controls within each form. In addition, WinForm apps depend upon overlapping windows and/or popups to allow the user to work. For this reason you should revisit the design and determine how best to change the app to fit the Metro UI style.

But wait, we are planning to upgrade to Windows 8, but we do not want to redesign our custom apps. Don't panic, on Desktop PCs, Windows 8 is able to run the same Windows 7 apps as you would in a Desktop environment. A Desktop UI is provided for Windows 8 in order to maintain backwards compatibility with Windows 7 and legacy apps. If you are planning to adopt Windows 8 tablets, some of those machines may not support Non-Metro apps due to hardware limitations.

Conclusion

While Windows 8 is a departure from previous versions of Windows, it provides a wider range of devices capable of running your application. For instance, say you're not comfortable with the.Net development stack, but you are comfortable in the HTML world. So you go about building your Metro app using JavaScript, HTML5 and CSS, all the while taking advantage of JavaScript tools such as jQuery, etc. Once complete you can test on both Windows 8 desktops and tablets. Then submit your app to the store and make it available to all of the machines running Windows 8 plus all of the various versions of tablets running Windows 8. Even though there are multiple different input types (mouse, keyboard/touch), screen sizes, density, etc. across those devices, the same Metro app will run across all of them.

Sitemap | Contact Us