DCSIMG
Windows 8 Announcement Executive Summary - All Your Base Are Belong To Us

All Your Base Are Belong To Us

Mostly .NET internals and other kinds of gory details

Windows 8 Announcement Executive Summary

Well, the first day of the BUILD conference certainly started with a blast. I just came back to the hotel after sitting through a full day of keynote presentations introducing Windows 8 – the operating system, the development platform, and the user experience.

The purpose of this post is to summarize briefly the Windows 8 announcements and the way they reflect on existing and future development. This is just an executive summary – if you are looking for the nitty-gritty details, follow this space (and other spaces :-)) for future posts.

Windows 8 and Metro Apps

Windows 8 builds upon the success of Windows 7, and has complete application compatibility with Windows 7. Absolutely all applications and hardware designed for Windows 7 should work with Windows 8.

WinRT – the Windows 8 development framework – is an unmanaged library that wraps some (not all) Windows native APIs. WinRT has natural bindings to the major programming languages, including C++, C#/VB.NET, and JavaScript.

Windows 8 features two types of apps – Metro-style Windows 8 apps, and “standard” apps. (To appreciate the Metro-style UI, watch the keynote or the following 4-minute video: http://www.youtube.com/watch?v=p92QfWOw88I) Metro-style apps as well as legacy apps can be delivered through the Windows Store. There is a paid, trial, and free model.

Unfortunately, there is no automatic wizard for porting existing applications to Metro-style apps. In fact, most apps will need a UI redesign (they call it “reimagining”). Another thing is that Metro-style apps are more sandboxed and controlled than their “legacy” counterparts. This is a part of the obvious move every OS vendor is making towards a controlled application store.

HTML and JavaScript Hype

The whole HTML5 + JavaScript hype means only one thing: you can (if you want) write Metro-style apps using HTML and JavaScript. However, you can write them in C++ or C# or VB.NET as well. There is no inherent advantage in using JavaScript, and the result is NOT cross-platform.

The Development Platform

Metro apps are built using XAML and a programming language of your choice (C++/C#/VB.NET/JS). Any WPF/SL developer will feel immediately at home. There are two development stacks – using standard .NET and native technologies like WPF, SL, MFC; or using WinRT bindings from C++, C#/VB.NET, and JavaScript.

The development concepts, user interface guidelines, styles, controls, and many other things are borrowed from or at least strongly influenced by Windows Phone 7. (This does not mean that Windows 8 apps will run on Windows Phone 7 without modification.) The development platform is Visual Studio 11 and Expression Blend.

For testing the new bits and developer tools, all BUILD attendees are getting a developer machine – 11.6” Samsung tablet with a bunch of sensors, preloaded with Windows 8 Developer Preview and the development tools.

What’s Next?

There is no release timeline yet: the timeline will be quality-based.

All in all, a very exciting day with lots of announcements – a new OS, new application model, new development platform, and new hardware on which to test it all. Stay tuned!

Comments

David Nelson said:

I hate that non-Metro apps are already being labeled as "legacy". I find the entire "Metro" style very off-putting (much too wordy, too much empty space, too much blocky grid layouts and not enough task-oriented UX design), and would much rather use a more traditional UI. But the industry will do what Microsoft does, so pretty soon I will be forced to use the new fad.

Other things look good. WinRT for getting a little more unification between managed and unmanaged applications sounds like a positive step. Glad to hear that the whole HTML/JS thing was mostly hype; I wish someone at Microsoft would have anticipated the (totally predictable) reaction to that announcement and toned it back a bit.

Also very glad to see the move towards more controlled application sandboxes. This is something that has been desperately needed to improve the stability and reliability of the Windows ecosystem for a long time, and something that Apple has been way out in front of Microsoft on. But why only for Metro apps? There can't be any technical reason. Is this just another way for Microsoft to push developers towards Metro whether they want to go there or not?

# September 14, 2011 8:35 PM

Sasha Goldshtein said:

I believe the problem with sandboxing everything is backwards compatibility. You obviously don't have any compatibility concerns around Metro apps because they will all be brand new, but existing apps must keep running on Windows even if they require administrative privileges, write to the registry, use sockets, etc. We might not like it, but the backwards compatibility story is part of what drives people to Windows...

# September 15, 2011 5:53 PM

David Nelson said:

But just because apps have been able to do that in that in the past doesn't mean all apps DO. Many apps are already well behaved, and there is no reason they couldn't be sandboxed the same way Metro apps are. Why not sandbox everything by default, and let the user decide whether or not to let it out of the sandbox if it can't work correctly in that environment? Surely "secure by default" is still something we are all striving for?

# September 15, 2011 11:49 PM
Leave a Comment

(required) 

(required) 

(optional)

(required) 


Enter the numbers above: