Recently I have been using the Developer Preview of Windows 8. Back in September Microsoft announced how developers can build the next generation Windows applications. So Microsoft is trying to revamp its tablet industry while moving their operating system forward. They are developing an operating system that is attempting unify their operating system across platforms and if the rumors are true the next version of the Windows Phone.
In this post I will take a look at what coming and give my feedback on what I have encountered thus far. I have had to opportunity to build a couple of demo applications so I have experienced Windows 8 from the point of a developer and a user. I installed it on the Acer laptop that Microsoft gave away at PDC 2009. Windows 8 runs have way decent on that machine though the touch drivers acts a little funny.
Architecture
From the time Microsoft announced Windows 8 to the time they announced the developer experience, there were a lot of rumors as to the fate of Name your favorite development language here. The only known at the time was that HTML5 was going to play a key part of the ecosystem. This sent all the XAML developers into fits. Then along came Build. During the keynote all was revealed:
As you can see there are two stacks available for developing applications. The blue stack is the same stack that we have now. The green stack on the left is the new goodness that allows developers to build applications targeted towards the tablet side of the house. These applications are called Metro Apps. As a side note Microsoft has said that these applications will work just as well with a mouse as it will with touch.
These Metro applications operate just like WP7 apps. They operate in a sandbox and can only access external resources through well define contracts. Also they need user permission to access sensors, location data, camera and such. This gives user a constant user experience. Metro apps are built on a core framework called WinRT. WinRT abstracts access to the underlining operating system. It then projects the API in the various languages.
With this architecture, Microsoft open windows application development to a whole new group of people, HTML/Javascript developers. These developers can develop the same rich applications as the XAML developers, using the same WinRT API. This architecture also keeps C#/VB XAML developers in the loop but brings also brings C/C++ into modern times by allowing them to develop rich user experiences. At the same time legacy applications will still run in desktop “mode”.
There are so many new features. Too many to mention is a “short” blog post. In an attempt to solicit feedback early and often the Windows 8 team have been releasing blog posts about their endeavors to Windows 8. You can read, in detail, the many new features that are coming. You may even influence their course of action by posting comments on each topic.
Metro Everywhere
Over the years, Microsoft has paid little attention to User Experience (UX). In contrast Apple has put most of their effort into creating the best UX possible. In order to keep up Microsoft has recently started to develop a common style that places UX in the forefront. It started with Zune software, then it made an appearance in Windows Phone 7, the XBOX dashboard was not far behind, and finally it is the premier UX for the new Windows 8. The style is Metro.
What is Metro? It is a style based on simplicity. Inspired by signage seen in European Subways. The style emphasizes clean line, subtle animations and simple fonts. Metro also takes power consumption into consideration. By standardizing the experience across the Microsoft ecosystem, the user is familiar with how to interact with the system. Couple that with the integration across platform and you can see that Microsoft has definitely learned that UX matters.
For Windows 8, Microsoft has published a set of design guidelines. These guidelines assists developers and designers, in make compelling UX while adhering to the UX that Microsoft envisions for its users. There has been some rumbling that if you follow those guidelines then how do you differentiate your application from all the rest? Microsoft has even published in its guidelines on how to accomplish differentiation.
Below are some screens shots from one of my demo applications. As you can see I was able to follow the Metro guidelines while allowing my company’s brand shine through. Windows 8 makes it easy to implement a Metro design. There are built in styles and animations that helps in following the Metro guidelines.
XAML vs. HTML5
Now that we have a little background on Windows 8 how do we develop applications? The frameworks available are shown in the green boxes above. If you start from choosing a UI technology then your choices are HTML5, XAML, and DirectX. For now we will concentrate on the HTML5 and XAML. Which one do is the best choice? The answer is the same answer it depends. It depends on your skill set and on if you have resources that you want/need to reuse.
Lately Microsoft has been emphasizing HTML5 and downplaying their XAML technologies. In my opinion they are doing this to enable a whole new group of Windows developers. By exposing WinRT in Javascript HTML developers can now can now build rich applications that will run on Win8 tablets. These developers will be able to develop HTML and CSS that can be reused in web applications. There may even be some Javascript that can be reused, as long as the pieces of Javascript that interacts with the WinRT projection, are isolated.
XAML developers need not worry. XAML is there, but not only is it there it has been opened up another language, C/C++. There is even an opportunity for reuse here. The XAML in Win8 is closest to the XAML in Silverlight. The namespaces may be different but the XAML is similar. Also class libraries be able to be reused as long as the functionality exists in WinRT.
So who can develop Win8 Apps? Web developers…..XMAL developers…C++ developers. The ecosystem of developers is large, larger than iOS and Andriod. This was a smart move, in my opinion. In order to steal market share away from those other platforms, Microsoft is going to need a large and varied collections of applications available from day one. By lowering the barrier to development, they may be able to reach that goal.
It is Just Windows
“I have been developing applications for years, are my skills dead?” The answer to that no. At the end of the day Windows 8 is just Windows. You WPF application will run just as it did in Windows 7. Even your WinForm apps will run. Icons to launch your applications will even appear in the new start menu. As you can see “legacy” applications will appear side by side with new Metro applications. You can even optimize these application for touch
Microsoft has creating an operating system that will run on a 7 inch screen all the way up to a desktop with rather large screens. One of the goals of the system had to have been that it had to run Microsoft’s other cash cow, Office. The current version of Office should run just fine but is not optimized for touch. It is rumored that the next version of Office (Office 15) will have Metro versions of Office applications that will even run on devices that use the ARM processor. The Metro versions will probably on have a limited set of features, features that make sense in a tablet environment. But since a Windows 8 tablet is still just Windows (there is some debate as to the extent of “legacy windows” will be available to ARM devices) the user just has to switch over to the desktop and launch the full version of that Office application. My guess is the functionality of Metro will be close to their Office Online versions.
Another nice feature of having full Windows on a tablet is the security features available. One of the barriers to enabling tablet computers into the corporate environment is security. Most network administrators are nervous when it comes to letting devices onto their networks that they cannot secure using their tried and true means. With Windows 8 they will be able to encrypt the hard drive using BitLocker. They will also have the ability to enforce Group Policy. So securing a table becomes as easy as securing a desktop.
App Store
Another lesson learned from WP7 is they have to control the user experience when it comes to Metro applications. To do this they are creating an App Store. This will be the only place where applications will be able to be loaded. Applications must be submitted to Microsoft where they will be tested to ensure that they are safe for user to install. The App Store is also where developer will be able to monetize their work.
Summary
This was a long post but there is some much that Windows 8 encompasses that I did not even scratch the surface. My observations have been made against the Developer Preview which has been out since September. With this release the development tooling is a little lacking, only an express edition of the next version of Visual Studio and an Expression Blend that only works with HTML5 applications. There quite a few bug that popped up from time to time. In less than 2 weeks a Consumer Preview will be released with a final version rumored to arrived later in the year.
If Microsoft is able to deliver all that they have announced thus far they will have a viable competitor to Andriod and iOS. They have taken a page out of Apple’s book and kept the details of Windows 8 under tight wrap. Hopefully the next release of Win8 will more details of what is yet to come. I have enjoyed developing Metro apps and the tablets given to Build Attendees is a nice piece of hardware. I am looking forward to the different form factors that been rumored to be delivered later in the year. I just hope that Microsoft does Windows 8 right and that it does not become another Windows Vista!