Sunday, September 18, 2011

Build: Microsoft Reveals Windows 8 Details


Build: Microsoft Reveals Windows 8 Details
Microsoft pulled back the curtain on its new operating system, code-named "Windows 8," at a preview during its Build conference, being held this week in Anaheim, Calif.

These demonstrations held Monday at a Build preview for press offer the deepest view yet of what looks like a radical departure from past desktop operating system designs. Those attending got a look at an x86-based Windows 8 preview tablet PC, which isn't for sale yet, and Microsoft displayed a "developer preview" of Windows 8 at the event.

Microsoft describes Windows 8 as a "reimagining" of its operating system, although the tile-based user interface looks a lot like the one seen in the Windows Phone 7 mobile OS. The resemblance isn't a coincidence since Microsoft is pressing developers to create "Metro-style" apps, which are going to be based on HTML 5, JavaScript or XAML. These Metro-style apps will port from x86 metal to Windows 8 running on the ARM platform, which is a new platform for Microsoft's flagship desktop OS.

"If you use HTML 5, JavaScript or XAML, it just runs on ARM," said Julie Larson-Green, corporate vice president of Windows experience, at a Build press event. She noted that there is a large existing install base of x86 software out there, but Microsoft isn't necessarily working to port it to ARM. The hardware is different, so while ARM may enable great power management, porting an x86 app to ARM might just drain the battery.

The ARM devices for Windows 8 are still being developed. No ARM demo was shown at the press event. However, "all of the apps for ARM will be Metro-style," according to Steven Sinofsky, president of the Windows and Windows Live Division, in response to a question.

Larson-Green described classic x86 apps as "desktop apps," explaining that they are different from Metro-style apps. Microsoft will still enable those desktop apps to run on Windows 8, and they'll still have the same familiar controls through mouse and keyboard, with chrome borders, buttons and standard menu systems. Microsoft has also promised that any Windows 7 app will be able to run on Windows 8. However, Metro-style apps will have a different look. They will fill every inch of the screen and will typically have no chrome borders at all.

Metro-style apps are fully touch enabled and users can even use a pen device, which Microsoft is reviving with Windows 8. If you swipe your finger toward the right, it brings up the "charms," which are five icons (Search, Share, Start, Devices and Settings). The charms appear to be all that's left from the Windows 7 "control panel" approach. Microsoft standardized one place to change the settings both for the OS system and for applications, making things easier for users, according to Jensen Harris, director of program management for Windows experience.

Windows 8 for Developers
Windows 8 introduces a new API surface called "Windows runtime APIs," which are part of the OS' services, according to AleŇ° Holecek, distinguished engineer for the Windows developer experience. Microsoft wants developers to access these APIs, which are written in native C++ code, through various languages.

"Developers will be able to make a choice based on the best technology," Holecek said. "We don't want anyone to go and learn an esoteric language."

Microsoft is putting XAML and HTML/CSS on an equal footing in that regard, he explained. He added that Microsoft "will preserve all of the investments" in platforms like Silverlight. He did note that the API surface isn't good for some things, such as building drivers. It's mostly there to benefit application developers. 

The programming platforms needed to build Windows 8 Metro-style applications include C++, C#, Visual Basic, JavaScript and HTML/CSS for x86, x64 and ARM machines. Visual Studio version 11 provides templates that represent fully functional Metro-style apps that support these various languages. Converting XAML apps into Metro-style apps is easy to debug, Holecek contended, after copying the XAML code into a C# template. He said developers just need to look for three categories of errors involving namespaces, networking code and browser navigation to make the conversion.

Microsoft also has been working with the Worldwide Web Consortium to improve Web apps via adding gradients, SVG filtering, grid and flex-box layouts, and column-text layouts, as well as local storage, Web Workers and WebSockets, Holecek said. The canvas element is being used to create freehand graphics on Web pages, he added.

Creating a sharing contract in an app using JavaScript took just two lines of code to do, according to a demo performed by Holecek. A developer might use this technique to share the content of a canvas element to whomever might request it. 

Holecek showed off some of the controls enabled in Microsoft Expression Blend, noting that "it is important to note that we are making all of the controls available to the XAML and JavaScript communities."

The various form factors used for Windows 8 can be found in Expression Blend. Developers don't have to purchase various devices to test their code. Developers also get some support within the Windows Store certification process. Microsoft added a link to the Windows Store directly from the start menu in Windows 8, allowing users to quickly find and buy apps.

Apps submitted by developers to Windows Store are run through a series of tests, which demonstrate their technical compliance.  The Windows Store also has an application dashboard that shows the number of app downloads. This dashboard also provides telemetry data to developers that may be useful for debugging their apps, Holecek said.