In-Depth

The Brave New World of Windows 8

Windows 8, unveiled in September, will change the way Microsoft-focused developers build applications.

Microsoft has lifted the veil on Windows 8, revealing a "reimagined" OS that combines touch and traditional input that will work across a range of devices. It's a nod to the past, present and future of computing, spanning the landscape from nuclear-powered desktops to 98-pound weakling tablets while still providing backward compatibility for the massively popular Windows 7 OS.

Windows 8 is an ambitious project: An OS that wants to be all things to all people, as comfortable on an ARM processor as on the newest generation of fire-breathing Intel chips, and allowing developers complete language flexibility through the new Windows Runtime, or WinRT.

The most significant announcements came at last month's BUILD conference in Anaheim, Calif. Steven Sinofsky, president of the Windows and Windows Live Division, hailed Windows 8 as "a new opportunity for developers, a new opportunity for you to express yourselves and to get the most out of PCs, no matter what size or shape."

That means modernizing Windows right down to every subsystem, from the chipset to the UI, according to Microsoft.

Recognizing that its efforts were useless without complete buy-in from its developer community, at BUILD Microsoft released the first Windows 8 Developer Preview and the first tooling aimed at supporting the new Metro style. Unlike previous Windows versions, the pre-beta downloads of the OS, Windows SDK for Metro style apps, Visual Studio 11 Express for Windows 8 Developer Preview, and the Expression Blend 5 Developer Preview were made generally available on the day that they were announced.

Windows 8 will run on x86 processors and, for the first time, natively on system-on-a-chip (SoC) designs, including ARM architectures -- a decision that's spearheading much of the OS redesign for tablet devices. The move to ARM and SoC processors enables Microsoft to port Windows to smaller form factors with lower power requirements and longer battery life.

However, Microsoft has released very little information about Windows 8 on ARM devices. The Windows 8 Developer Preview and related tooling run on machines with Intel x86 processors.

To demonstrate that Windows 8 is "equally at home on ARM and on x86," as he put it, Sinofsky pulled out a 3-year-old netbook with an Atom processor and 1GB RAM during the initial BUILD keynote. On it were Windows 7 SP1 and Windows 8. Using Task Manager, he pointed out that Windows 7 used about 404MB of RAM and 32 processes, while Windows 8 used about 281MB of RAM and 29 processes.

At the All Things D:9 conference in June, Sinofsky envisioned a kind of tablet different from the Apple iPad, which dominates the market: "You have a 10.6-inch slate that's very, very thin, that's always on, always connected, that's running Windows, and you can carry it around all the time, and then you just plug a keyboard in and ... it's a Windows laptop. It's all of Windows, and all of those pick up the benefits of plugging in that keyboard and using that mouse."

Metro Style
Tying it all together is the Metro UI, which got plenty of attention at BUILD. "Fast and fluid" was the phrase Microsoft used to describe its functionality, and the demos bore that out. Microsoft is also updating the Windows Store distribution model, rebuilding it as a Metro app in HTML and JavaScript, accessible via a live tile on the Windows 8 start screen.

Antoine LeBlond, Microsoft senior vice president of Windows Web Services, pointed to the Windows Store as an example of the power of this type of development. "So, if you think for a second that these Web technologies aren't solid enough or performant enough to actually build really, really serious stuff with, we've taken an app that is really, really important I think to Windows and decided to build it using those technologies, and it works just fine," he said.

A Metro version of Internet Explorer 10 unveiled at BUILD continued the immersive app metaphor and showcased Microsoft's use of Windows 8 icons called "charms": Search, Share, Start, Connect and Settings. The Internet Explorer 10 Platform Preview 3, released as part of the Developer Preview, included the first multitouch preview of the browser technology.

Microsoft is also encouraging developers to start developing Metro applications with services built on Windows Azure; the company touted the cloud OS features of Windows Server 8 and released Windows Azure Toolkit for Windows 8 at BUILD.

The company has described the Metro redesign as the biggest change to the Windows UI since Windows 95 and the desktop metaphor. The old hasn't completely gone, however: The traditional desktop will still be available in a desktop mode that can be used to run traditional Windows apps, complete with Ribbon menus, on x86 machines. In fact, you can theoretically run Windows 7 apps alongside Windows 8 apps on Intel machines. It's one shell that offers access to all of Windows and "the desktop" is always there -- it can't be turned off. As Sinofsky repeatedly said, "We're not building layers on layers. We've built everything natively into Windows."

"The phone embodies the idea of modern applications," said Rockford Lhotka, chief technology evangelist at Magenic Technologies, after the initial Windows 8 demonstrations in early June. "These are applications that seamlessly transition from online to offline, and which integrate with concepts common across many applications, such as photos, contacts, media, Web content, local content and more.

Also, modern applications are touch-friendly, and are designed with common animations, transitions and other visual cues to make the user experience more intuitive and pleasant."

Getting Touchy
In Windows 8, the full screen is designed for touch-first experiences (unlike Windows 7, which supports touch points on the UI). Windows 8 users will be able to swipe between running apps, "snap" apps into place (which builds on Windows Aero Snap), run two apps side-by--side and use a touch keyboard for navigation, including a divided keyboard that features a thumbs layout. In addition to the touch digitizer, the new OS will feature a pen digitizer.

"You design for touch and then in the operating system, we detect whether you have a mouse and keyboard, and we translate the touch commands to equivalent mouse and keyboard," explained Julie Larson-Green, Microsoft corporate vice president of Windows Experience, at the All Things D:9 conference.

It remains unclear how this will work for some gestures. "I'd be interested to see what the mouse/keyboard equivalent is for the thumb/forefinger gesture to cause the image to expand," said Peter Vogel, VSM tools editor and principal at PH&V Information Services. "There may be something you can do to enlarge the image, such as _+, but, while it delivers the same functionality, it would be hard to say it's the equivalent to the touch gesture."

Windows 8 on ARM devices will only support new Metro applications, based on HTML/JavaScript or C#/XAML. Microsoft indicated at the Consumer Electronics Show in January that Windows 8 on ARM devices would not use emulation to run traditional Windows applications.

Sinofsky addressed the strategy for existing Windows desktop applications with the transition to ARM devices. "We're not going to introduce a virtualization model and a way to run, sort of, old x86 software," he said at All Things D:9. "That turns out to be technically really challenging. And we decided that the experience we could deliver with the modern applications, all written in HTML5, JavaScript, and delivering them that way, would probably yield a better experience over time. And of course Intel will make a ton of great processors and an opportunity to build PCs of all kinds of shapes and sizes with their processors, which maintain all of that investment and all of that code."

Virtualization, though, will be a part of Windows 8. Microsoft announced in September that Hyper-V will be baked into the OS, the first time it's appeared on a client. Hyper-V requires a 64-bit version of Windows 8 with Second Level Address Translation (SLAT). The major benefit to developers, Sinofsky wrote on the Microsoft Building Windows 8 blog, is that it "enables developers to easily maintain multiple test environments and provides a simple mechanism to quickly switch between these environments with-out incurring additional hardware costs."

The information revealed about Windows 8 development so far signals a sea change for many developers; others view the new Metro app model as simply another option for developing Windows apps. Even so, app developers are wondering what Windows 8 will mean for their applications, development, skill sets and code evolutions.

Developer Platform
According to Microsoft, the developer experience for Windows 8 will be consistent for traditional and new Metro-style apps in Visual Studio 11 and the Microsoft .NET Framework 4.5, which includes updates for messaging, workflow, async, Windows Presentation Foundation (WPF) and ASP.NET.

One of the biggest changes in Windows 8 is that it provides access to the new Windows APIs in JavaScript, C#, Visual Basic and C++/C. And no retuning will be necessary for the supported hardware, whether it's x86, x64 or ARM. (At a press briefing, Microsoft stated that no additional languages would be supported in the future.)

"WinRT gives you more than 1,800 objects to build your applications," Sinofsky said at BUILD. The app model supports low power, immersive apps, communication and data objects, graphics and media, devices and printing, all of which are natively built into Windows.

"So, you have the WinRT APIs and objects, and then we reflect those in C and C++ and C# and VB, and you can do your view in XAML if that's what you want to do. You could also see those APIs reflected in JavaScript, and then you could use HTML and CSS to define your view," said Sinofsky. "All of these work together in a unified toolset."

The Metro-style app project templates -- which include a grid application and split application -- and related tooling (class library and unit test library) are available in the Visual Studio 11 Express for Windows Developer Preview. The preview also includes 28 Metro app samples, although Microsoft hasn't officially released any Metro applications.

New, High-Quality APIs
For many developers, making the native Windows 8 APIs available to other platforms is welcome news. "One of the challenges with being a Windows developer over the past decade is that the Windows team didn't make high-quality APIs for the most common development platforms, .NET and HTML," said Lhotka. "The only way to truly leverage the power of Windows has been to use the least-popular toolset: C++ and COM."

With Windows 8, Microsoft is making the full Windows 8 feature set available to Silverlight/.NET and HTML5/JavaScript through powerful, high-quality APIs. "That will allow most developers to interact with services from the operating system and other applications. It appears that this will enable the creation of modern applications that easily react to going offline/online and changing screen size/orientation, and integrate with other common application concepts," said Lhotka.

"[T]his sort of bold bet that we've made to bring these Web technologies like HTML and JavaScript to the platform really are going to enable millions of Web developers that exist today to participate in this amazing new opportunity to build these apps for Windows," said LeBlond, the head of Windows Store, while demonstrating the new app model at BUILD. Publishers of Win32 apps won't need to rewrite their existing apps to list them in the store, according to LeBlond. "Essentially, we're providing a free listing service for Win32 apps," he said.

Last month Microsoft also released the Expression Blend 5 Developer Preview, which supports HTML and CSS (including the new Microsoft Grid layout). Expression Blend 5 offers a visual authoring tool, designed specifically for applications, not Web sites, and enables users to edit UI and dynamically generated JavaScript code, according to Microsoft. It also provides access to WinRT Metro controls.

"The same set of controls will support XAML-based apps," said LeBlond. According to Microsoft, transitioning a Silverlight app to WinRT only requires "a handful of changes." During a simple demonstration in the BUILD keynote, those changes involved namespaces, the new networking API and launching mechanisms in Windows 8, as well as a few tweaks to bind it to the Windows GridView and search for Metro apps. Those same XAML apps can be edited with a few lines of code to run on Windows Phone, according to Microsoft.

However, Microsoft XAML, which is supported in the previous four versions of Blend, is not part of the Expression Blend 5 Developer Preview. When asked about a preview of Blend for XAML, Microsoft's Christian Schormann, head of the Blend PM team, responded in a blog post:

"At this point, we unfortunately cannot talk about any releases or features beyond what we have introduced here at [BUILD]. Stay tuned for future announcements. A good place to look is our new team blog, where the latest news will be posted: blendinsider.com.

There is a visual XAML designer for Metro-style apps as part of Visual Studio Express in the Windows Developer Preview. As we unified our designer code bases, this visual designer is now based on the same code as Blend."

"I think the idea that the developer experience will be consistent is a noble ideal to strive for but, in the end, not an achievable goal," said Vogel. "The comparison that I'd use is Microsoft's attempt to make Web development, ASP.NET, look as much like desktop development, WinForms, as possible. While it was amazing how similar they were, in the end there were real differences that developers had to be aware of in order to deliver applications in either environment. Even Silverlight is different from WPF, which is why Silverlight apps can only access Silverlight assemblies. Of course, if you move up to a higher level, the development environments do appear to be consistent -- but if you back up far enough, Nancy Reagan looks like Ronald Reagan, too."

As far as the timing of Windows 8 goes, Microsoft isn't in any rush. "We're going to be driven by the quality and not by a date," Sinofsky said, adding that it will follow the traditional beta, release candidate, release to manufacturing, general availability path. When pressed on this point, Microsoft officials declined to elaborate.

It could be dangerous to delay the arrival of Windows 8 too long, as the biggest challenge for Microsoft may be creating a market to support its developer ecosystem. The company claims it has sold 450 million copies of Windows 7. Consumer usage of Windows 7 is greater than Windows XP, according to Microsoft. But those figures could actually work against it, as companies may consider skipping Windows 8 in the same way they skipped Windows Vista in anticipation of Windows 7.

In the meantime, Microsoft's competitors continue to tweak already-shipping products. David Platt, who teaches .NET programming at Harvard University Extension School, is skeptical of Microsoft's ability to build that ecosystem given the current market realities. "When are Samsung tablets going to come out? Probably a year from now. They're going to be the Christmas present for 2012. Why would anyone buy a Samsung tablet over an iPad, when the iPad's been out for two years now, has the market to itself, shipped 50 million units, has all the apps and all the buzz and the infrastructure support? It's the [same kind of] network advantages Windows has on the desktop."

Stephen Chapman, author of the SEO Whistleblower blog and the Microsoft Kitchen (formerly UX Evangelist) blog, is enthusiastic about the Windows 8 developer opportunity. He has concerns about desktop or laptop users buying touch-capable hardware anytime soon, however. "I think developing touch-first applications will be an easy-enough adaptation for developers to make, but I think touch-based hardware running Windows still has quite a ways to go before it really takes off. Look how long Microsoft has been emphasizing touch, but they still fall far behind the competition at the moment in touch-based devices," he says. "I know they're really seeking to change that, but I think this whole "touch-first" thing is going to find really specific implementations at first, then perhaps broad appeal later as Windows-powered touch-based devices start finding their way off the shelves."

Not everyone is as pessimistic. Some feel that the combination of a tablet form factor with the type of laptop/desktop-type functionality lacking in the iPad may be compelling for consumers. For example, popular Windows author and speaker Mark Minasi came away from the BUILD keynote impressed with the potential of Windows 8. "This is the first tablet OS that makes me say, 'I want a Windows tablet,'" he said.

About the Authors

Kathleen Richards is the editor of RedDevNews.com and executive editor of Visual Studio Magazine.

Keith Ward is the editor in chief of Virtualization & Cloud Review. Follow him on Twitter @VirtReviewKeith.

comments powered by Disqus

Featured

  • Compare New GitHub Copilot Free Plan for Visual Studio/VS Code to Paid Plans

    The free plan restricts the number of completions, chat requests and access to AI models, being suitable for occasional users and small projects.

  • Diving Deep into .NET MAUI

    Ever since someone figured out that fiddling bits results in source code, developers have sought one codebase for all types of apps on all platforms, with Microsoft's latest attempt to further that effort being .NET MAUI.

  • Copilot AI Boosts Abound in New VS Code v1.96

    Microsoft improved on its new "Copilot Edit" functionality in the latest release of Visual Studio Code, v1.96, its open-source based code editor that has become the most popular in the world according to many surveys.

  • AdaBoost Regression Using C#

    Dr. James McCaffrey from Microsoft Research presents a complete end-to-end demonstration of the AdaBoost.R2 algorithm for regression problems (where the goal is to predict a single numeric value). The implementation follows the original source research paper closely, so you can use it as a guide for customization for specific scenarios.

  • Versioning and Documenting ASP.NET Core Services

    Building an API with ASP.NET Core is only half the job. If your API is going to live more than one release cycle, you're going to need to version it. If you have other people building clients for it, you're going to need to document it.

Subscribe on YouTube