With Windows 8, Microsoft is taking a dramatic change in how users interact with Windows; centered on the Metro interface and application environment. Here’s what I learned at the Microsoft Build Conference in Anaheim, California as Microsoft revealed the latest incarnation of Windows, namely Windows 8.
In Windows 8, Metro is a replacement for the Start Menu, and the normal desktop view of Windows. When a user first logs into Windows 8, the first thing they see is the Metro interface with application tiles on the interface that are similar to the tiles seen on Windows Phone 7; these tiles are called “Live Tiles”. Besides being interfaces to the specific application, they can display information relative to their function on the tile themselves. For example, a weather app could display your current weather location, the Twitter app could show the latest tweets, and so on.

The Windows 8 Start screen in developer preview version (Build 8102.winmain_win8m3.110912-1733.92eb4451821f0730). It was released at the Build Windows event. Source: Wikipedia
Microsoft is heavily pushing the Metro interface; it appears that they want to use the current base of Windows-based systems to incorporate Metro, rather than having it limited solely to low-powered tablet-based systems. Microsoft is betting that touch will be everywhere in a few years; much like the age of computers changed when the mouse was introduced. They are counting on the fact that touch will have the same effect; every system, every monitor, will be touch enabled. With that context, their promotion of Metro makes sense for the future of Windows.
Touch
Metro is really meant for a touch interface. Touching a tile opens the application; swiping on the main interface scrolls the available tiles. Swiping from the right edge in any application brings what Microsoft terms “Charms”, which gives access to sharing, search, configuration options and the like. Swiping from the left edge switches between running applications; swiping from the bottom or top of an application will bring menu options available from that application.
The Metro interface is definitely a touch interface; with a touch-enabled screen it is “fluid and fast” as Microsoft described it many times during the conference. At the same time, however, it turns into a second-rate interface with a mouse and keyboard; much like touch on the classic desktop is not ideal, keyboard and mouse on the Metro interface does not feel ideal. Granted, many things may change before the release of Windows 8, however, I hope the interface translates better than it does currently.
The classic desktop is still there as a tile on the main Metro window. All applications that currently run on Windows 7 should work fine under Windows 8; when those applications are launched they open on the classic desktop and work as you would expect them to. The classic desktop will be available on any x86 and x64 systems; however with the new ARM platforms that Microsoft is targeting (light tablets like the iPad and Android platforms), the classic desktop is rumored to not be available; the only interaction will be through the Metro interface.
Metro Environment
The best way to describe the environment that Metro applications run in is comparing it to current offerings of iOS and Android platforms. Metro is a closed environment, given only what the Windows Runtime (WinRT) allows. All apps work within a sandboxed environment; apps have their own storage area and temporary file location. Any access outside of these areas is only through the user specifically selecting files outside of those environments; the Windows registry and random file access is not allowed. There is limited interaction between apps; the only way to “share” content between apps is through the use of Contracts defined by Microsoft. These contracts define what each application shares with other applications, either as a source or a target of those given contracts. For example, one app might be able to share pictures with another app, or another might be a target for search queries within the application.
Applications are fully managed, much like the application lifecycles you see in iOS and Android platforms. When an app is visible, it’s in its running state; if the user switches to another application, the former app will go into a suspended mode shortly; taking memory but not able to process any data. Eventually if the memory needs to be freed, Metro will stop the application; these situations should be handled.
Access to external services, such as querying web services and such are all managed through WinRT. Metro apps can define background processes for performing tasks and keep the application responsive, but as always, these are all managed by the system. Any normal service, running under the normal Windows desktop or web service, cannot assume that the Metro app is actually in a running state so any requests should come from the metro app in polling those services.
All device interaction with the computer is also managed with WinRT and Metro; any request to device capabilities, like the camera or accelerometer data, must first be declared in the application manifest. Additionally, user confirmation must be given when the application tries to access the device module; the user will be given an option to approve the access when the app tries to access the device.
Windows Store
Like the other operating systems mentioned, all Metro apps are solely distributed through the Windows Store. Like Apple’s App Store, all apps within the Windows Store must be fully approved by Microsoft, matching Microsoft’s design specifications for Metro apps, as well as functionality. Given that many of Microsoft’s customers are enterprise installations, they did say that there will be enterprise installation methods available (likely through Active Directory or the like); however for all home and individual installations, Metro apps are only installed through the store, and cannot be side-loaded. There is no actual installation executable (exe or msi) for Metro apps; a metro app is essentially a signed package and manifest, which the Metro environment loads; no custom installation options are available.
As much as has been said about Metro, very little was said about the Windows Store itself. The current build of Windows 8 has a live tile for the store, but it only is a placeholder and is not currently available. As mentioned above, all Metro applications must be approved by Microsoft; while the length of this approval process is unknown, they did say that the entire process will be transparent as to what stage of the approval an app is in, as well as detailed explanations as to why an app was rejected, and what needs to be changed to allow it to be approved. There will be pricing options available, although the license options and Microsoft’s portion of the sale was not described. It was mentioned that classic desktop applications may be available in the store, however, full details aren’t available. Microsoft will likely release more information concerning the store when it’s available.
Overall Windows 8 Experience
As it stands right now, Windows 8 and the Metro interface is pre-beta software; it is very buggy and experimental. Windows 8 should not be run on production or every-day use systems; you will experience crashes and hangs; to anyone that has run pre-release software this should come as no surprise. It is possible to run Windows 8 on some virtualization software, although the performance leaves much to be desired, as most VMs have a very basic video card driver, and all of Metro uses DirectX to run. I would suggest a dedicated piece of hardware if one is available.
Microsoft plans to follow the same release cycle they had with Windows 7; there will be one Beta and on Release Candidate (RC) before the Release to Manufacturer (RTM), with the retail version of Windows 8 coming in the Fall 2012. Many things will change between then and now, including the items listed above.
For more information about Metro applications and Windows 8 subsystems, visit the Microsoft Windows 8 development site at http://dev.windows.com, and all the videos of the keynotes and sessions from the Build conference can be found at http://www.buildwindows.com.
Joel Braun, Senior Software Developer, W3i
Joel has more than 9 years experience in software development focusing on native Windows development in C++.