Our Thinking

What You Need to Know About Windows 8

Posted by D'Arcy Lussier on Nov 28, 2011 9:34:50 AM

At the Build conference this past September, Microsoft revealed its upcoming operating system release: Windows 8. There’s lots of buzz around it, but here are some highlights of what you need to know about Windows 8 today.

Development Stack Changes

Windows 8 brings with it a new development stack – familiar to what we have currently, but new enough that it warrants some serious investigation. Below is an image Microsoft showed at the conference:

Click on image to enlarge

 

 

 

 

 

 

There are two different types of applications you can build on Windows 8: Metro style or Desktop. Metro style apps are the touch-centric applications that populate the Metro UI portion of Windows 8. Desktop apps are those that live in the traditional desktop environment, which is also part of Windows 8.

Not much changes for Desktop apps except that HTML/Javascript are now first class citizens of the desktop, allowing you to create applications that can run locally and take advantage of the same programming APIs that .NET or Win32 based apps do.

But on the Metro side, there’s quite a bit of difference. There are three distinct user interface technologies available: XAML, DirectX, and HTML/CSS. Behind those we see what we would expect language-wise, with the exception of Javascript, which is now a first-class development language for Windows.

Behind that is the box called WinRT, which stands for the Windows Run Time. This is a collection of APIs that are exposed to Metro applications and allow them to access system resources. Because Metro applications run in a sandbox environment, similar to how Silverlight applications run, they don’t have full access to the operating system like a desktop application typically does. Thus, the WinRT APIs dictate what a Metro app can and can’t access.

Metro Apps Bring State Management Nuances

Metro applications operate entirely differently than their Desktop counterparts when it comes to lifecycle. Because certain paradigms are removed from the Metro interface, instead of having multiple applications visible at once, you have access to one main application with an option to dock a second one. Apps that are switched away from stay alive in memory and can be accessed again.

But if memory becomes an issue, and Windows has to free up resources, it will terminate Metro applications at whim and without any warning. This poses an issue if the user returns to an app expecting to see where they left off, but instead having a new instance of the application launch. To handle this, events around the suspending and activation of an application have been built in. So as a developer, you need to write code that will manage state of a Metro application that is suspended due to the user switching focus to a new application, or risk losing state if the application gets terminated.

This model is somewhat similar to Windows Phone 7 development, where the concept of “Tombstoning” to maintain application state across app-switching interactions is part of development life.

XAML is the Preferred UI Technology for Windows Development

Microsoft released WPF a few years back, and it’s a powerful UI technology that can do amazing things. Unfortunately, it didn’t pick up the steam that Microsoft had hoped. Alternately Silverlight was adopted quite quickly and we saw many great applications written with it. Both WPF and Silverlight utilize XAML, an UI markup language, in developing their user interfaces.

With Windows 8, XAML is emerging as the preferred way to create user interfaces. On the Metro side, if you aren’t using DirectX or HTML/CSS, it’s your only option. On the Desktop side, you can still create traditional Winform applications, but XAML offers so much more and with a push towards more intuitive, interactive, and immersive user interfaces that it makes a strong argument to start adopting it today.

Windows 8 will Bring .NET 4.5

.NET 4.5 will be released along with Windows 8. This is an “in-place” release and not a “side by side.” Let me explain the differences.

.NET 1, .NET 2, and .NET 4 were all side-by-side releases. That is, you can install each one on the same machine and run the side-by-side without issue.

.NET 1.1, .NET 3.0, .NET 3.5, and .NET 4.5 are in-place releases. They provide new functionality and features on top of existing side-by-side releases. So if you were developing on .NET 3.5, you were really developing on .NET 2 but with the added features from 3.5.

So .NET 4.5 will be the same – it will enhance .NET 4.0 while providing new features and functionality.

We’re Still Early

What we received at Build was a developer preview version of Windows 8. While it seems very solid and rich with features, there are still many more milestones to reach: Betas, Community Technology Previews, Release Candidates, etc.

Microsoft has said they have no date on when Windows 8 will be released, as their focus is on quality. However, I would be surprised if we didn’t see Windows 8 in 2012 in time for either the back to school rush or for the holiday season.

Windows 8 has Great Potential

I’m very excited about what I saw at Build, and Windows 8 has the potential to have a huge impact for Microsoft and the future of Windows computing and development. So, what can we do today to get ready? Below are some next steps.

Next Steps

There are things you can do now to get acquainted with Windows 8!

Check out all the sessions from the Build conference – they’re available free online! http://www.buildwindows.com/

Get the full developer preview of Windows 8 and the development tools! http://msdn.microsoft.com/en-us/windows/apps/br229516

Get acquainted with HTML, Javascript, and XAML (through WPF or Silverlight)!

 

Topics: Microsoft

Our Thinking - The Online Blog is a source for insights, resources, best practices, and other useful content from our multi-disciplinary team of Onliners.

Subscribe to Blog Updates