The Developer's Challenge
Existing Windows applications need not be ported to Metro, and you can keep on writing classic Windows applications using the same tools and libraries you're using the .NET Framework and .NET languages.
Metro applications will require a new type of development, API, and runtime system, but nearly the same languages and programming tools that you already use. You can write them using HTML5 plus a mix of JavaScript and CSS 3. You can also use C++, Visual Basic, and C#. In all cases, XAML remains the language of choice to express the user interface.
In terms of functionality, the API for native Metro applications is nearly the same as the API for .NET applications: Some namespaces have been renamed and some classes have been moved around. It's important to note, however, that Metro applications run on top of a new runtime system that wraps up the Windows kernel services in a way similar to Win32. The .NET Framework runs on top of Win32 and must use P/Invoke to call native operating system services. With WinRT the Metro runtime access to native services is more direct, and it encapsulates services differently (see Figure1).

Metro applications follow the logic of mobile applications. They never run indefinitely and are subject to suspension. Likewise, Metro applications are distributed through an ad hoc marketplace, moving the burden of app certification, trial, and antipiracy measures to Microsoft. They're licensed per user and not per machine, with application settings automatically roamed via the cloud. Finally, Metro applications must declare the hardware they intend to use.
Overall, writing a Metro application is similar to writing a mobile application such as one for Windows Phone 7. The nature and structure of the application is also different from traditional .NET applications, as most Metro applications tend to be simpler, more interactive, and content focused.
So, is Windows 8 a big change for users and developers? Are Windows 8 and Metro applications something you must look into immediately to avoid putting your company and business at risk? Honestly, on both counts, I don't think so. Windows 8 is about continuity, but it also introduces some new approaches with Metro. As a developer, you just have one more target platform to consider, but with plenty of opportunities to leverage your existing skills to code for it.
Dino Esposito has written several programming books about Microsoft technology. He will begin exploring the various facets of Windows 8 in a series of articles starting in December.



