Introduction
Welcome, my friends, to Windows 8! On behalf of the thousands of designers, program managers,
developers, test engineers, and writers who have brought the product to life, I'm delighted to welcome
you into a world of Windows Reimagined.
This theme is no mere sentimental marketing ploy, intended to bestow an aura of newness to
something that is essentially unchanged, like those household products that make a big splash on the
idea of "New and Improved Packaging!" No, Microsoft Windows truly has been reborn—after more
than a quarter-century, something genuinely new has emerged.
I suspect—indeed expect—that you're already somewhat familiar with the reimagined user
experience of Windows 8. You're probably reading this book, in fact, because you know that the ability
of Windows 8 to reach across desktop, laptop, and tablet devices, along with the global reach of the
Windows Store, will provide you with tremendous business opportunities, whether you're in business, as
I like to say, for fame, fortune, fun, or philanthropy.
We'll certainly see many facets of this new user experience throughout the course of this book. Our
primary focus, however, will be on the reimagined developer experience.
I don't say this lightly. When I first began giving presentations within Microsoft about building
Windows Store apps, I liked to show a slide of what the world was like in the year 1985. It was the time
of Ronald Reagan, Margaret Thatcher, and Cold War tensions. It was the time of VCRs and the discovery
of AIDS. It was when Back to the Future was first released, Michael Jackson topped the charts with
Thriller, and Steve Jobs was kicked out of Apple. And it was when software developers got their first
taste of the original Windows API and the programming model for desktop applications.
The longevity of that programming model has been impressive. It's been in place for over a
quarter-century now and has grown to become the heart of the largest business ecosystem on the
planet. The API itself, known today as Win32, has also grown to become the largest on the planet! What
started out on the order of about 300 callable methods has expanded three orders of magnitude, well
beyond the point that any one individual could even hope to understand a fraction of it. I'd certainly
given up such futile efforts myself.
So when I bumped into my old friend Kyle Marsh in the fall of 2009 just after Windows 7 had been
released and heard from him that Microsoft was planning to reinvigorate native app development for
Windows 8, my ears were keen to listen. In the months that followed I learned that Microsoft was
introducing a completely new API called the Windows Runtime (or WinRT). This wasn't meant to replace
Win32, mind you; desktop applications would still be supported. No, this was a programming model
built from the ground up for a new breed of touch-centric, immersive apps that could compete with
those emerging on various mobile platforms. It would be designed from the app developer's point of
view, rather than the system's, so that key features would take only a few lines of code to implement