Introduction to the series
Welcome to this first part of a whole series on Windows 8 articles, which I’ll be writing over the coming weeks and months. It’s my goal in this series to introduce you to what we know at this point about Windows 8 and how we as (XAML) developers will need to adapt to the new platform.
Since you’re probably a XAML developer like I am, we are going to see things from a XAML point-of-view. In some of the upcoming articles, I’m going to describe you how you can leverage what you already know in XAML when Windows 8 will be ready. I’m also going to spend time looking at how you can convert existing Silverlight applications to Windows 8 Metro apps, so that they follow the rules of the OS. We will also be spending time of course on digging into the developer framework making the development on Windows 8 easy: Windows Runtime or shorter, WinRT. Finally, the series will close with a step-by-step guide on building a complete Windows 8 Metro-style application.
Now in this first part, we’ll focus on Windows 8 itself and the relation to Metro-style apps. We won’t be focusing on the development part yet; I just want to make sure that everyone is on board with the new OS itself as well as being able to place the terms Metro, Metro apps, WinRT etc.
I hope you join me on this trip through the Windows platform of the future.
Small note: in this articles, I try to refer to specific versions as little as possible, since I want the information to stay valid as much as humanly possible when Windows 8 will RTM. Therefore, you won’t find download links in these articles. Doing a small search will get you the downloads you need!
Part 1: An overview of the Windows 8 platform
To be honest, I’m writing this very article in the morning of January 1st, 2012… yes indeed, New Year’s Day 2012. And come to think of it, I couldn’t have chosen a better moment - at the beginning of a new year - to write about one of the biggest things awaiting us in that new year: the launch of a new version of the world’s most widely used operating, Windows 8. (Note that at the time of writing of this article, no announcements have been made by Microsoft on any launch date of the OS, but everyone assumes that we’ll see the OS in its final form on our machines sometime in 2012…). As mentioned, in this first article, I will take you through the most important concepts as well as show you some nice improvements.
Let’s BUILD… and all the panic
At Mix in the spring of 2011, Microsoft said that they were planning to hold a conference in September where they would show off Windows 8, mainly for developers. While many assumed this was going to be a new edition of PDC, Microsoft named the conference BUILD (www.buildwindows.com). In the months between Mix and Build, some early footage of Windows 8 was shown (http://www.youtube.com/watch?v=p92QfWOw88I), where we saw for the first time the Windows 8 Metro interface. This and next videos sparked a lot of rumors, announcing the death of Silverlight and XAML: some had totally misunderstood the context of the story and thought that HTML5 and JavaScript was going to become the only way of building applications for Windows 8.
Nothing however could be further from the truth. When Microsoft showed Windows 8 at Build, it became clear that the HTML5/JavaScript combination was one way of building apps, but certainly not the only one. Managed developers who build their apps in .NET are going to be doing more or less the same when building apps for Windows 8, based on the same languages (C#, VB). Take a look at the next image, which I took from a slide deck from Build.
As you can see, there’s basically two ways of building applications for Windows 8. The part on the right (Desktop Apps) is the same thing as we are doing today. This includes WinForms, ASP.NET, C++, WPF, Silverlight etc applications. Nothing is really changing here, apart from the fact that .NET is being updated to 4.5. This means new features to for example WPF. We aren’t going to focus on that a lot in this series, since as mentioned, not much new is to be discovered, things are staying the same.
The big change is the left part, Metro style apps, which is essentially a new type of applications and a new way of building apps. HTML5/JavaScript is one way of building these apps; however, the combination XAML/C# (or XAML/VB) is going to be the way that most managed developers today are going to select. Note that below XAML/C#, a new layer is added, WinRT (aka Windows Runtime). In one sentence, WinRT will allow us to leverage the power of Windows to build Metro style apps using the language of our choice, be it C#, VB, C++ or JavaScript. Much more on WinRT in the next articles!
BUILD hardware and software announcements
At Build, Microsoft added another type of platform that they are targeting. Previously, we could develop applications for the web/browser or for the desktop. Web applications are traditionally built using ASP.NET/ASP.NET MVC or Silverlight. Optionally, a client-side library such as jQuery can be used here as well. When targeting the desktop, WPF or also Silverlight were viable solutions.
Microsoft is now adding something in between here: they are now focusing on tablet devices as well. These devices as well as the software running on them is optimized for touch-based input. However, we’ll see that Metro applications should also be able to be controlled using the mouse and keyboard. In the image below, we can see Steven Sinofsky at the BUILD keynote with a touch-based tablet device, running Windows 8. Note Windows 8 running on regular PCs and notebooks as well: it’s not ONLY for tablet devices.
To build Metro-apps today, Microsoft announced an Express edition of Visual Studio 11. At the point of writing, this is the only way of building Metro apps (vice-versa: being an Express edition, this version only supports building Metro apps; we can’t use it to build for example WPF applications). We will be using this version extensively in the upcoming articles.
A new edition of the full-blown version of Visual Studio was also announced: this version supports .NET 4.5 and allows us to build any kind of application, including Silverlight 4 and 5. This version doesn’t require Windows 8 and can run on Windows 7 therefore as well.
I’ve now referred to “Metro-style apps” several times already, although it may not be 100% clear what exactly is meant with the term “Metro-style apps”. To make this perfectly clear, let’s open Windows 8!
Exploring Windows 8 and Metro-style apps
Upon starting a Windows 8 installation for the first time, you arrive in the following environment. This is the Metro environment where Metro-style apps live.
The rectangles we see here are “tiles” (we don’t say icons anymore). When tapping (or clicking if using a mouse) on one of them, we are launching the application behind it. Most tiles you can see in the above screenshot link to Metro-style apps: applications that run in this environment itself.
But wait, what’s this icon, sorry, tile at the bottom left?
When opening this Desktop tile, we are brought to the traditional Desktop environment.
In this desktop mode, regular applications such as Office, WinZip, Google Chrome etc will run as they do now on Windows 7. Also, all the applications we wrote in .NET (or will write in .NET 4.5), will run here with nothing really different than before.
So, with Windows 8, we can say that we have 2 environments where applications can run: in the desktop mode and in the Metro environment. No application can run in both environments. It’s not possible for a desktop application to run in the Metro environment. It’s also not possible for a Metro application (built with WinRT as we’ll see in further articles) to run in the desktop environment. There’s a clean separation between the two.
Another way of thinking of this is the following. Although technically not correct, we can think of the Metro environment as a shell on top of the desktop mode which can in turn run Metro applications.
The Metro environment is tightly linked to the desktop mode. In the current version, there’s no Start menu anymore in the desktop mode. When clicking on the Windows Orb button in the left button corner, we’re taken back to the Metro environment. So, one could say that the Metro environment is also an extended Start menu which is now capable of running applications. However, I don’t really support thinking of the Metro environment in this way.
Let’s now look at some typical Metro-style applications.
Typical Metro-style apps
With the default installation, some (small) Metro-style applications, created by Microsoft, are installed by default. Let’s open for example the News app, shown below.
Note that this is a full-screen screenshot, I haven’t cut off anything. Several things are strikingly different from traditional applications. For one thing, they are filling the screen by default. Content is important, not the chrome of the application. The application shows no menus or toolbars by default; it’s kept very simple and easy to use. The interface itself is also optimized for touch, but can be controlled with the mouse as well.
When opening one of the titles, some details are shown about the post, as shown below.
Again, no toolbars and a very neat and clean interface, optimized for touch.
But how can we now go back to the overview screen? If you’re using a touch-based device, simply swipe in from the top of the screen. If using a mouse, simply right-click. Both actions will result in a so-called Application Bar to be shown at the bottom of the screen. Using the only button in this bar, we can navigate back. The application bar is customizable and we’ll see how to do so in later articles. Readers with a WP7 background will immediately recognize the application bar as well.
Let’s open another application, the Memories application, shown below.
This application as well is a beautiful example of the Metro style being used. When opening an album, we get the details.
And we can edit content using the Application Bar as well.
Internet Explorer in Metro
If you’ve taken a good look at the Metro environment screenshot, you may have noticed that there’s a tile for Internet Explorer there as well. Indeed, there’s a Metro version of IE available, again with the same characteristics as other Metro apps. This version of IE is optimized for the content so it’s not cluttered with tabs and toolbars.
This version however doesn’t support plug-ins, so it’s not possible to run Silverlight (or Flash) applications in this browser. To do so (and in line with what we said earlier), we need to go to the full browser in the desktop mode. There, a Silverlight application can run perfectly.
It’s possible from the Metro IE to jump to the regular version, using the following button. This effectively means that if you arrive on a Silverlight site in the Metro version of IE, you can switch to the full version on the fly.
The Metro control panel
Another nice example of the touch interface in Windows 8 Metro is the control panel.
As can be seen from the screenshot below, the interface of this Metro control panel is optimized to be used using your fingers as input device. The control panel inside the Metro environment is specific to settings that influence the Metro environment itself. The regular control panel lives inside the Desktop mode and it gives us access to the regular settings, just like in Windows 7.
More on the desktop mode
With all the novelties being added, one might get the idea that the desktop mode isn’t being changed at all. Well, luckily that isn’t true: there are some major improvements being done in the “regular” Windows environment as well.
One area that’s getting an overhaul is the Windows Explorer itself. A ribbon is being added, known to millions of Office users already. Microsoft added some new actions directly to the ribbon. In the screenshot below, you can see the explorer ribbon.
Just like in Office, the ribbon is context-sensitive: depending on your action or selection within the explorer window, one or more tabs might appear. In the screenshot below, you can see what happens if I select a picture.
The next screenshot shows what happens if we select a hard drive.
Another item that got an overhaul is the Task Manager. Below you can see a screenshot of the new Task Manager. Notice that it’s as if some Metro-sauce has been added over the old version of the Task Manager!
Take a look at the Processes tab. Notice anything in particular here?
The Metro-apps are shown in this list as well. However, they are in a suspended state. Again, for the WP7 developers, this may seem familiar with the application lifecycle we have in WP7. Indeed, in the Metro environment, applications can remain in memory without getting access to CPU cycles. In this case, they are in the suspended state. We’ll see more about the lifecycle of Metro applications later in this series as well!
Where will I be working?
A question I’ve received quite a few times while presenting about Windows 8 is “Will I be working in the Desktop Mode or in the Metro environment mostly”. Like so many things in life, the answer is here again: “It depends”.
At this point, I reckon that if you’re working on a regular machine and you’re doing your daily job (be that working as a developer, writing in Word, making Excel sheets…), you’ll default to the Desktop Mode. If however, you’re working on a tablet, the Metro environment will suite your needs better.
The answer to this question is however a difficult one, certainly at the time of writing where we don’t have a public beta yet. Therefore, this remains a “to be continued”!
Summary
In this first article, I’ve given you an overview of Windows 8, explaining you how Windows 8 contains 2 modes and shown you what exactly Metro applications are. This is just the tip of the iceberg (in fact, I think it’s even less!).
In the following article, we’ll start our exploration of the Windows Runtime so stay tuned!