I returned from Build conference Friday night. It was a really exciting conference in my opinion with a lot of new ideas revealed. Microsoft had kept a very tight lid on upcoming changes for many months, and none really knew what was going to be announced at the event. There were a number of speculations, but nothing concrete showed up on the internet. The only exception was a 5 minute video that was put out by Microsoft a few months back, giving viewers a glimpse of the new operating system, Windows 8. In retrospect, I cannot disagree with Microsoft decision, as the changes that were announced are designed to differentiate Microsoft as an operating system provider, thus giving revealing the information prematurely would lessen a competitive advantage over rivals.
So, what was unveiled at the conference? Microsoft demonstrated in a significant level of details its new operating system, Windows 8. At the high level, its user interface carries over the investments Microsoft has made in the area of design for Windows Phone 7. Windows 8 conforms to Metro design principles. The opening screen in Windows 8 is very similar to Windows Phone 7, consisting of a number of live tiles, grouped into a number of areas. Those groups are user defined, and this was demonstrated as well. User will be able to use gestures of course to control the appearance of the OS. They will be able to zoom out of the detailed view, find a group they are looking for, and zoom back into that group. Of course they will also be able to re-arrange any part of any group or groups themselves using similar gestures to the ones on the phone. What about old look and feel you ask? The new OS is built on top of Windows 7, and one can drop back to classical look and feel by clicking on Desktop tile.
There are also a number of new features that exist in Windows 8. One of them is “charms”. Charms are located in the right hand area of the screen, and are typically hidden. The user can bring them into view by swiping from right hand edge to toward the center of the screen. Charms are common features to all the programs, such as printing, devices, networking, sharing, search, etc. All software written for Windows 8 should incorporate these charms to provide seamless user experience. Not only charms allow developers to integrate their applications deeply with Windows 8 OS, but also with each other. There is a number of contracts in WinRT that one application can implement, that other applications can utilize. For example, you can write a photo editor application, that implements search contract, and another application such as family tree can search photos and show them in its UI. Pretty cool, hah? Similar contracts also exist for devices such as printer.
Now let me talk about programming for Windows 8. Developers will be able to use C#/VB.NET, C++ and JavaScript to write Windows 8 applications. Sounds strange at the first sight doesn’t it? Beforehand browser based application were not able to reach deeply into operating system. This broad functionality is being enabled view new Windows runtime for writing applications, WinRT. Unlike .NET, this new run time is built into Windows itself, and it not an additional layer on top of existing Windows functions, as it is the case with .NET. As a result, WinRT will have better performance. To ensure highly responsive applications, all the functionality in WinRT that is not instantaneous contains asynchronous methods. This would include things such as file I/O, networking operations, such as internet client, etc. I heard phrase “fast and fluid” to describe Windows 8 UI and applications dozens of times during the conference. Of course, not everything is contained within WinRT, thus .NET is also an integral part of building applications for Win 8. As a matter of fact, new version of Microsoft.NET, 4.5 will ship with Windows 8, and will be available as part of the operating system. There is a difference however between traditional .NET and new Metro style applications. When a developer builds Metro applications, only a subset of .NET is available to this person. For example, file IO functionality is greatly limited in preference to new WinRT pickers. These pickers such as open file or save file pickers replace traditional IO in favor of safer and asynchronous operations, where entire file system is not exposed to a Metro style application. You get the idea right? Metro apps run in a sandboxed environment. So, if you want to build Metro apps, you will use .NET and WinRT, but your tooling will remain the same. You will use Visual Studio v. next and your favorite language to build those applications. What about UI, you ask? You have options there as well. If you opt for JavaScript as your language of choice, you build UI in HTML. If you pick C#, VB.NET or C++, you will build UI for your applications in XAML. No, not Silverlight or WPF, but XAML. Your XAML skills transfer over, but namespaces you used will change. There will also be some new controls, such as GridView and FlipView. If you ever saw Windows Phone 7 applications, you understand that in order to enable Metro style UI and more importantly touch based UI, you need new set of controls, and Windows 8 is all about touch interfaces.
A few words about legacy software. Microsoft pledged that all the software that successfully ran on Windows 7 will run on Windows 8. This would include platforms such as WinForms, WPF, Silverlight, HTML, etc.
There were a number of devices shown that will run Windows 8. In addition to tablets, laptops and PCs, which all will incorporate traditional processors and likely solid state hard drives, there will be another class of lighter devices, running Windows 8 on RISC processors. This is drastically different from Apple’s approach that uses different OS for tablets. As a result, Microsoft tablets will be more functional, and will contains software such as Microsoft Office and other PC based applications.
New version of Visual Studio, Expression Blend and Microsoft.NET will all ship to help developers build Metro style applications. Visual Studio will contain templates for Metro apps, Expression Blend will enable UI design, but not just XAML. Blend gets new set of functionality, enabling it to design HTML as well. Cool new editing features found their way into Blend. Because Blend actually runs your XAML and HTML, you actually see your applications running with data. All changes you make will update either XAML, HTML or even CSS in your Visual Studio project. Visual Studio got new XAML designer. It appears that old designer code name Cider is gone, and is replace with Blend designer!!! Yeah, it is about 4 times faster now. Personally, I always hated Cider’s performance and hardly ever used XAML view in studio because of that. Power tools for studio previously available on NuGet only, will be integrated into Studio directly when it ships.
Another huge news that will interest developers is new Windows 8 App Store. If you create Metro style application, you will be able to sell it through new app store. I can only guess that the model will be largely similar to Windows Phone 7 app store. Potential market though is thousands of times larger. According to Microsoft, Windows is being run on almost half a billion computers. If you can imagine, one dollar app can make you a millionaire. Not that this will happen to too many people, but the promise is certainly there.
Another software release was announced, and that is TFS in the cloud service from Microsoft. Beta has been released, and attendees all got beta account free of charge.
Live Services will be an integral part of Windows 8. It looks like SkyDrive will enable many cool features, such as roaming profiles that will enable users to have exact same desktop on many computers. Developers will be able to use that feature as well, roaming state of their software across multiple computers, for example making sure that users of a software have the same state of the software available on all machines.
In summary, here is are the most important points (IMHO).
- Windows 8 is all about modern consumer experience. This includes touch based Metro UI.
- Developers carry all their existing skills over to Metro applications, including XAML, .NET languages, .NET Framework, HTML and JavaScript.
- NET is not dead , it is integral part of Metro applications along with WinRT.
- Developers get to utilize new WinRT, making applications faster and highly integrated with OS and each other.
- New tools will be shipped to enable developers to create applications faster with a uniform look and feel.
- Money making opportunity is there for all developers.
You can watch all the online content, including keynotes and sessions, from the conference on www.BuildWindows.com
Please let me know if you have any questions, I would like to kick off a discussion that would benefit all of us, including me.
Thanks! First I heard about *Charms*!
This is awesome.