Infosys Microsoft Alliance and Solutions blog

« Windows 8 convertible laptops: Who will get it right? | Main | Web Storage in HTML5 »

What it means to develop Metro Applications for Windows 8

I have been coming across a lot of confusion regarding development of Windows 8 Metro style application. Will try to clear out some of the confusion in the air.

What is Metro about it?

Metro Applications follow the design principles of Metro like content before chrome, focus on typography, fast and fluid, alive in motion etc. Focus of metro application is on the content that needs to be displayed .Hence all menus, taskbar and other unnecessary controls have moved to the app bar or charms . Charms can be considered to be a system level menu that is used to perform common applications like Search\Share etc. across Metro Applications. There is a lot of emphasis on fonts, scale and weight in the Metro design. Microsoft has come up with Seago UI font for developing Metro applications. Metro UI relies on usage of tiles that are alive with notifications and animations. New controls provided with XAML and WinJS are already designed according to the Metro design principles. Hence when you use Expression Blend\Visual Studio 2011 etc. and use the controls as per the technologies selected(XAML\HTML), your application gets a Metro look automatically.

Can my HTML5 JavaScript application work on Windows 8?

Windows 8 Metro applications are locally deployed applications. Hence these applications do not access any web server. The architecture for Windows 8 has changed and there is an additional WinRT layer that sits between the Windows Core OS services and the Metro style apps. Unlike conventional apps, metro apps are not targeted to win32\IE or .Net\Silverlight. Rather they talk to WinRT APIs. Hence an existing browser based HTML5 application will not run as is on a Windows 8 machine.

Where is Metro App rendered?

Metro Apps are rendered using IE10 rendering engine. However, the Addressbar and other 'chrome' are not visible to the users. Although they are rendered on a web platform, they are different from web applications as they interact with WinRT APIs

What are the technology choices available to create Metro Applications on Windows 8?

Currently, Metro Applications can be built using either XAML or HTML5. With XAML, we have choice of C++\C# and VB as the development language and with HTML5 we need to use javascript - WinJS. WinJS is a collection of Javascript files. WinJS offers controls (with Metro Look) and API's for various tasks like calling a web service etc. WinJS and C#\VB\C++ interact with WinRT APIs.

Why don't I have a close button for my Metro Apps?

The lifecycle of Metro apps is managed by the system. Users may want to return to a recently opened application and for users who are on the go, the delay of opening up the application from scratch might be unacceptable. Hence the application goes to the suspended state from where they can be resumed instantaneously. The applications also run the risk of being terminated when the system is under memory pressure and hence it is a good practice to keep saving state intermittently. For more details, you can refer

Can I develop non metro applications for Windows8?

Windows8 can run in metro and desktop mode. In the desktop mode, the environment is similar to the conventional Windows 7 environment(though there are some enhancements). Hence all existing apps continue to run in the desktop mode.You can have run WPF and Silverlight based applications in this mode. In Metro mode only metro applications can run.

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)

Please key in the two words you see in the box to validate your identity as an authentic user and reduce spam.

Subscribe to this blog's feed

Follow us on

Blogger Profiles

Infosys on Twitter