Thursday, May 31, 2012

Everything You Need to Start Writing Windows 8 Metro Applications Today

I can still remember the day I learned how to program. I was only 7 years old and was staying home with my TI-99/4A that had no games or cartridges available. Bored, I pulled out the BASIC reference guide and tapped in a small program called "Mr. Bojangles" that made some pixelated boxs move across the screen. If you squinted and really stretched your imagination, you could almost pretend it was a little dancing guy. You can even watch this video online to see, although I'd argue the source code I saw there looks way smaller than what I remember typing. From there I moved onto the Commodore 64 and picked up 6502 assembly code:

$C000: LDA #$00
$C002: STA $D020
$C005: STA $D021
$C008: INC $D020 
$C00B: INC $D021
$C00E: JMP $C008 

Then it was onto Windows machines, Win32, MFC, and beyond.

It's amazing when you think about it to see how far Windows has come. I've been preparing a brief history for my Top 10 Metro Features talk (you can also see it live at CodeStock where I'll be handing out a sample chapter from my new book). Developers who have begun writing Windows 8 Metro applications have felt some of the pain of exploring a new platform and refactoring for breaking changes as new releases have come out, but overall I think the experience is phenomenal. Contrary to the fear that was rampant when Windows 8 was initially announced, when everyone speculated that C# and XAML would be dropped completely and everything would either be HTML5 and JavaScript or C++, the platform has rich support for multiple languages (including C# and XAML) and a powerful new runtime that makes it easier to do common tasks like accessing the web cam or connecting to a web site.

When my publisher agreed to my request to write a book about designing Windows 8 Metro applications, I was ecstatic. While my earlier book, Designing Silverlight Business Applications, focused on enterprise development, this new one takes a different approach and tackles designing Metro applications from the ground up. I assume you have some C# and XAML knowledge but I'm really focused on giving you everything you need to get up and running quickly on the new platform. Believe me, there is a lot of content and it covers most of what the Windows Runtime has to offer. Here is a tentative table of contents — I say tentative because it can change based on feedback from editors and you, but it should be very close:

  • Chapter One — The New Windows Runtime — History and context around Windows 8 Metro applications
  • Chapter Two — Getting Started — setting up your environment and building a more advanced "Hello, World" application (templates, tools, and looking underneath the covers at what Windows 8 Metro is)
  • Chapter Three — XAML — a primer on Extensible Application Markup Language (XAML) and how it works in Windows 8 Metro applications
  • Chapter Four — Metro Applications — overview of what is unique about Metro applications, including layouts, views, visual state manager, simulator, view types (snapped, full), semantic zoom, user input and touch, sensors, application bars, icons, and splash screens
  • Chapter 5 — Application Lifecycle — process lifetime management (PLM) including activation, suspension, resume, navigation, and extended splash screens
  • Chapter Six — Data — everything you need to know about data, including application settings, local and romaing file access, collections, buffers, byte arrays, encryption, signing, syndication of content, and web services
  • Chapter Seven — Tiles and Toasts — basic tiles, live tiles, badges, secondary tiles, and push screen notifications
  • Chapter Eight — Charm — all about contracts, including sharing, text selection, search, printing, play to and more
  • Chapter 9 — MVVM and Testing — how MVVM is implemented in Windows 8 Metro applications and coverage of the new unit testing capabilities in Visual Studio 11
  • Chapter 10 — Packaging and Deploying — understanding trial mode, products vs. applications, side-loading and distribution

Once this first comprehensive book comes out about writing the applications, I plan to follow up with a second more advanced title that covers things like authorization and authentication with single sign-on, media, device enumeration, advanced sensors, networking including sockets, accessibility features, background tasks, lock screen applications and advanced debugging and performance optimization.

Here's the best part — all of this is available right now. I don't know if you are familiar with the Safari Rough Cuts program, but it essentially allows you to have early access to the manuscript. One investment in the book will give you the manuscript as it stands today (parts of it not even edited yet) so you can not only read it but provide me with direct feedback to help shape what you would like to see in the final version. Then, as the book is edited and updates are posted, you have unlimited downloads of the latest versions right up to the final release. It's a great way to get your hands on everything you need to develop Windows 8 Metro applications with C# and XAML today, and ensure that it is current and up to date when it is released months from now. You can check out the Rough Cuts for this book by clicking on this link. Please also take some time to visit the Facebook page where I post updates about the progress for the book as well as Windows 8 related articles. You can access that page here.


Jeremy Likness


  1. I would love a chapter on porting over my XNA-based WP7 games.

    1. Thanks for the feedback! To be completely transparent I haven't explorer the D2D/D3D aspects ... they are certainly part of the platform but I haven't focused on the gaming aspect so wasn't planning to have much coverage there. However, there are always opportunities to pull in other authors to contribute to sections so that's something I'll consider and talk over with my publisher. Thanks!

  2. It couldn't have been in a better time..

    We are in the middle of writing our Win8 Metro app, so when I saw your post, I had to have it.. So I got the rough cuts today and so far, its excellent.

    Thank you.. (all we need now, to have a Jounce for Win8 :))