Windows 8 Preview: A Developer Reflects

It's finally here. In June, we were given a taste of what Microsoft had in store for users and developers in Windows 8. And finally, after three long months, we have the developer release bits in our hands. Being the geek and developer I am, I wanted to get into the new OS, play with it, develop for it, and get a feel for what is to come.

Disclaimer: These are my own opinions of the OS as it is today. Keep in mind the Windows 8 Developer Preview is pre-beta software. It is buggy. It is not feature complete.


Setup

I imagine installation would take anywhere from fifteen to twenty minutes from optical media.

I installed Windows 8 on two machines, both with similar system specs. First is my laptop, a Dell Vostro 1500 with a Core2 Duo CPU, 4GB DDR2 RAM, 500GB HDD, and nVidia 8400 mobile graphics. The second machine is a little Dell Optiplex. It has the same specs, except a 2TB HDD and an ATi 2400 HD. The build I downloaded contained the development tools; it was too big to fit on a 4GB DVD, so I put the files on a USB thumb drive. Setup was a breeze, and very much akin to the Windows 7 installation process. The install process was about ten minutes; naturally, being installed from a USB drive had something to do with the speedy installation. I imagine installation would take anywhere from fifteen to twenty minutes from optical media.


The UI

After the installation completes, and if you’re dual-booting, you’ll find this new, Metrofied boot manager. Once you boot into Windows 8 for the first time, you’ll be prompted to enter either a Windows Live account or a regular Windows account name.

The new Windows 8 Boot Manager

You’ll then be taken to the new Metro Start screen.

Metro is Touchtastic

The Start screen is your new Start menu, so you will launch your apps from this new screen (the old Start menu is hidden away but can be resurfaced with registry tweaks).

Windows 8 is partitioned into two separate UIs: Metro and Desktop.

Metro apps cannot run in the classic Desktop UI, and Desktop apps cannot run in the Metro UI. You can, however, start Desktop apps from the new Start screen; Windows 8 transitions into the Desktop UI when you do so.

The Windows 8 Start Screen

I doubt we’ll see Office, Photoshop, Visual Studio, Quickbooks, or any other huge application on Metro anytime soon.

The obvious question is, “Why two UIs?” Metro is the touch UI. Apps written for the Metro UI are primarily going to be used in a touch environment for content consumption. The Desktop UI is there for backward compatibility, as well as for users who need the full power of Windows. I doubt we’ll see Office, Photoshop, Visual Studio, Quickbooks, or any other huge application on Metro anytime soon. Metro is more for consumption whereas Desktop is more for creation.

This is a developer preview; there is not a lot of fluff in this release. The purpose of this release is to get developers testing and learning the new platform. There are no Metro apps for mail and media in the preview, and the majority of apps installed on the OS are primarily for demonstration. Look to future betas and release candidates for more feature-complete previews of the OS.

I’ll come out and say this: I love Metro. I've loved it since playing with my mom's Zune HD and using the Zune desktop app to sync my Zune. I have a Samsung Focus running Windows Phone 7, and I chose that platform primarily because of Metro. I use MetroTwit for my Twitter client, and look around for other Metrofied apps to look at and play with. So needless to say, I was excited to know that Microsoft is betting big on Metro. I've said, and still say, that WP7's Metro UI is the best touch-based mobile UI currently available. While I do not have a touch device that I can install Windows 8 on, I have almost a year's experience using the UI Windows 8's Metro UI is based on (plus watching demo videos). The UI is responsive, and the gestures are intuitive. It is a fantastic touch experience, and touch users will feel right at home in the new Metro portion of the UI.

Metro is Craptastic for Mouse

Unfortunately, the Metro experience as currently implemented by Microsoft is horrible with a mouse.

Unfortunately, the Metro experience as currently implemented by Microsoft is horrible with a mouse. It’s not just the Start screen, but just about all aspects of the Metro experience. What do I mean by horrible? First, the UI is stretched horizontally, and Microsoft thought the best way to navigate these huge horizontal UIs was with scrollbars… really. It’s 2011, and Microsoft implements a touch-based UI for a mouse using scrollbars. You would think Microsoft would implement clicking and dragging to simulate touch (which I’ve witnessed several people try first), or make the UI move with the mouse’s movement (view the live demo of this Code Canyon item in a small window). But no... scrollbars. You can navigate the Start screen using the mouse’s scroll wheel (a plus), but none of the other Metro apps seemed to respond to the mouse wheel.

Second, the Charms (a unified set of functions for settings, sharing, search, etc that are provided by Windows for Metro apps) are activated by moving your mouse to the bottom left corner of the screen. Here's how they look:

Windows 8 Charms

That in itself isn’t bad, but choosing one of the charms opens its panel on the right-hand part of the screen (as shown in the screenshot below). So you have to move your mouse to the other side of the screen to do whatever it is you wanted to do. I have not installed the Developer Preview on my main machine yet; so, I do not know how that behaves in a dual-monitor environment. But I assume users have to move their mouse across both monitors to do whatever it is they wanted to do with the chosen charm.

Settings pane in Metro apps

Third, zoom seems to be non-existent for mouse users. Touch-based zooming was demonstrated in Tuesday’s keynote, as well as the other sessions, but replicating zoom with a mouse ends in failure. I couldn’t zoom on the Start screen, and the only app I successfully zoomed in is the //Build/ app (with ctrl+mouse wheel).

That’s not to say Metro can’t be great with a mouse. There are many Metrofied applications available today for XP, Vista, and 7 (I mentioned a few above). When done right, Metro is awesome with a mouse. But unfortunately, the mouse experience currently in Windows 8’s Metro is not intuitive. It’s not natural. It’s horrible. I know it’s a Developer Preview, but I expected a lot more for mouse/keyboard users. I hope the mouse experience changes in the beta, especially since all Windows 8 users will have to use Metro.

Desktop Stays the Same (for the most part)

Not much has changed in the Desktop UI, although it did receive a small refresh. Gone are the rounded windows and buttons of XP, Vista, and 7; Windows 8's windows and buttons return to the squared corners of Win9x and 2000.

Good 'ol Windows UI

There is also the ribbon in the Windows Explorer UI. I personally like the ribbon when used in the proper place. Windows Explorer always had a lot of options buried in menus and dialog boxes. The ribbon brings those options to the forefront, and I'm happy about that.

Final Thoughts on the UI

I am disappointed in the lack of customization of Metro.

I am disappointed in the lack of customization of Metro. While the lock screen can be customized, it seems the background of the Start screen cannot be changed. I hope that is just a feature missing from the Developer Preview.

I've always thought Apple had the right idea in separating the mobile OS from the desktop OS, but now I think Microsoft has the right idea in combining the two into one. I do, however, think they took the incorrect approach. While the Start screen is nice, fluid, and beautiful, it's awkward switching between the two UIs when on a device other than a tablet. I would like to see an option to keep the classic Start menu while still being able to invoke the Metro Start screen at any time. As currently implemented, it is too much work to launch an app from the Desktop UI, but enhancing the mouse experience in the Metro UI would go a long way to making it easier and less cumbersome.


Development

Getting a peek at what's to come is always something geeks like myself enjoy, but it was the Windows 8 developer story that kept me glued to the keynote. I am heavily invested in the C# language and .NET—be it either a desktop or web app, I write them in C# using the .NET stack. When Windows 8 was first previewed in June, .NET developers, myself included, were in a knee-jerk panic mode regarding our place in Windows 8 development. Metro apps written in HTML and JavaScript were showcased, yet nothing was mentioned regarding .NET. Microsoft's lack of communication with their development community did nothing to sooth our fears.

Only a fool would think .NET would be suddenly killed in Windows 8, but the implication was that C#, Microsoft's baby and highly touted language for the last ten years, was being pushed aside in favor of JavaScript/HTML and C++. Thankfully, that is not the case.

Quite naturally, the existing development model still exists for Desktop UI applications. Nothing has really changed there—except perhaps the decline of Silverlight. Metro is a different story; it's where the new sexiness is. It doesn't matter if you're a C++ developer, a .NET developer, or a Web developer, Microsoft is providing the tools and (unified) APIs to write Metro apps. Microsoft is replacing the Win32 API for a new API called WinRT, and it is just as accessible in JavaScript as it is in C++.

But one of the most important concepts in Metro app development, and the one I'm most excited about, is the contract. Contracts are agreements between Windows and Metro apps to support a unified experience for the user. For example, apps that support the search contract open themselves up Windows 8’s search, enabling users to search those apps even when they are not running (or when the user is in another app). Other contracts are:

  • Sharing: shares content across apps or services
  • Play To: plays media on connected DLNA devices
  • Settings: provide context-specific access to settings that affect an app
  • App to App Picking: allows users to pick files from one app directly from within another app

The goal is to provide an experience that looks like one app, but in reality, its many different apps, glued together by Windows 8, working together to give the user the content they want. While it definitely means more work for me as a developer, it pays off with the rich experience users get when my app is installed.


Final Thoughts

Over all, I'm happy with how Windows 8 is shaping up. It's a step in the right direction for a world filled with many types of devices and form factors. Microsoft definitely needs to work on the mouse experience in Metro—it’s just horrible. If they fix that, then Windows 8 will be fantastic on every device it runs on. I'm also pleased with the development story. We can essentially pick our preferred poison to write our Metro apps, and our apps can coexist in ways previously never seen before on Windows. For larger and more complex applications, we can still use the development model which, for me, is .NET with either WindowsForms or Windows Presentation Foundation (WPF).

Microsoft repeatedly said that Windows 8 is a reimagining of Windows, and it is true. They're betting big, and it'll pay off if they do it right.

Tags:

Comments

Related Articles