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
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
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:
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
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.