Windows

Overview of Windows' New Architecture

At the heart of Windows 8 development is WinRT. This is NOT Win32 and it’s not .NET. It’s a brand new set of APIs that’s designed for modern software development and designed for user experience with an asynchronous model that allows your app to remain fast and fluid.

The real joy is that you get to write code against this API in your language of choice. You can choose JavaScript, C#, Visual Basic, or C++. The code you author in your language of choice is projected into WinRT code and runs native on Windows. Additionally, you get all of the inherent benefits of your language. So for JavaScript, you still get to call all of the existing browser APIs. For the .NET languages, you get a tailored .NET profile with namespaces and classes that work much like you’ve come to expect. And with C++ you get to call C components and C/C++ libraries (again within a tailored subset of Win32).

All of this new functionality is available in addition to the ways you’ve always done things. It does not eliminate it. So you can still write web apps, .NET apps, and native apps against Win32 like you always have. That’s excellent.

In case it’s news to you, here’s an API overview of the Windows 8 Platform. You can find more information at buildwindows.com and dev.windows.com.

A Tour Through the Windows 8 Documentation

Last night I did a presentation at a very active and exciting Seattle user group called vNext. The topic, of course, was Windows 8. If you read my blog, you know that that’s most of what I’m talking about these days. Instead of creating tangential content, I relied on the excellent documentation that you can browse any time in the Windows Dev Center at dev.windows.com.

The Dev Center is an enormous place, but it’s well organized and I think you’ll find it’s not too difficult to find what you’re looking for. Still, I’m including my compiled outline below in case it helps you navigate the sea of information.

The hierarchy of this outline exactly reflects that of the Dev Center, so hopefully mapping the sections will be easy and intuitive.

Getting started

Making great apps

Visual Studio 11 Beta

Blend for Visual Studio 11 Beta

Download samples

JavaScript tutorial

JavaScript doc roadmap

Visual Studio templates

Designing UX for apps

Design Principles

UX Patterns

Commanding design

Touch interaction design

Downloading design assets

Case studies

Website to Metro style app

Developing apps

Writing code for Metro style apps (JavaScript)

Coding basic apps

HTML, CSS, and JavaScript features and differences

HTML and DOM API changes list

Features and restrictions by context

Asynchronous programming

Asynchronous programming in JavaScript

Chaining promises in JavaScript

Creating a UI

Defining layout, navigation, and commands

Supporting navigation

Quickstart: Using single-page navigation

How to reference content

How to create a mashup

Adding controls and content

Controls list

Animating your UI

Responding to user interaction

Touch input

Gestures, manipulations, and interactions

Quickstart: Identifying input devices

Working with data and files

Data binding

Quickstart: Binding data and styles to HTML elements

How to bind to a complex object

Managing app data

Accessing data and files

Transferring a file from a network resource

Sharing and exchanging data

Metro on an Alternate Monitor?!

You know those sonic noise guns that you can shoot at people and they supposedly just stop in their tracks because it’s physically disorienting? I felt like I got hit with one when I ran across this little nugget.

Want to move your Metro experience from your primary monitor to another screen - say your second (or fourth) monitor or even to the projector for a show? I’ve been told that the start menu appears on the primary monitor (without resorting to the simulator). Period. But that’s not the case! look up thank God

If you press WIN + PGUP/PGDN, you can change which monitor the start menu and all Metro apps appears on. Now that’s awesome! Until now, I was resorting to the simulator for getting my icons on my second monitor or projector to show people. News must spread. Tell everyone.