I am in Europe this week and for the next three weeks, traveling from city to city and giving presentations on Windows 8. Along the way I will be distilling these presentations into blog posts, adding in commentary about what I’m learning as I give the presentations.
There are four presentations that I’m giving in total:
- Crash Course In Windows 8 Programming
- Windows 8 Programming for .NET Developers
- To 10 Things You’ll Love About Windows 8 Programming
- Crash Course II – Beyond the Basics of Windows 8 Programming
Last evening I gave the second of these, and as I often do, I begin with a core question: Who Cares?
Why, after all, should developers turn their lives upside down for a new, unproven operating system? It could be that Win8 will be a tremendous success, but there are no guarantees. And unlike the change from Vista to Win7, coding for Windows 8 requires a new set of skills.
To be more precise, Windows 8 supports two types of applications: desktop and Windows Store applications, and it is the latter that requires the new skills. Or, at a minimum, learning a new API.
You can program for Windows Store applications using…
- C++ and XAML
- C#/VB.Net and XAML
Whichever you choose, you’ll be using a “language projection” on top of WinRT that makes the new operating system look and feel natural. Let’s focus on C# and XAML; programming Windows 8 Market (Store) Applications looks and feels like programming for .NET. That makes the transition easier, but still not trivial.
So again, why bother? The answer lies in two facts:
- There are more Windows installations than Mac, iOS and Android combined
- Every Windows 8 start screen features a prominent link to the store
There are 690 million Windows 7 installations, and over a billion Windows installations in total. If a substantial fraction of these users switch to Windows 8 (which is the only way they can get the new Store applications) then the market opportunity for smart developers who create popular commercial Store applications will be… unprecedented.
That answers, for many of us, the why bother question. The next question is typically “OK, how do I get started?” That is what my talks are about and that is what these blog posts will be about.
We begin the presentation by noting the 8 traits of a successful Windows Store Application:
- Metro Style Design
- Fast & Fluid
- Snap & Scale Beautifully
- Use the Right Contracts
- Invest in a Great Tile
- Feel Connected & Alive
- Roam the Cloud
- Embrace Metro Principles
Each of these can be a blog post or a chapter in a book; they are very broad principles. We will consider each of them repeatedly as we review how to build Windows Store applications.
I am not a designer, but as a developer I do need my Windows Store applications to look and feel “right.” To do this, I can follow some fundamental guidelines.
For example: Content Before Chrome. This means a sharp focus on the content being displayed and a ruthless dedication to removing chrome from the page, where Chrome is lines, boxes, buttons, navigation, etc.
You remove Chrome in two ways: first by designing differently, and second by relegating navigation and command to the AppBar (about which, more later).
Designing differently means using space rather than lines and boxes to achieve organization. It means using font size and weight to telegraph meaning and hierarchy to the user. In fact, Microsoft guidance suggests using just four font sizes:
- 42 Points for headlines
- 20 Points for sub-headers
- 11 Points for body-text
- 9 Points for tertiary text
The font of choice in Windows 8 is Segoe UI.
By using Fonts and alignment and space, and by stretching your content to the edges, your application begins to look and feel like other Microsoft Store applications.
Microsoft includes a “silhouette” with the templates you use to create your application, that can greatly assist with laying out your pages. In fact, the templates themselves can be of enormous assistance in helping with both layout and page navigation.
All of this and more will be covered in future, more advanced blog posts.
More to come soon as I continue giving presentations and distilling them into these blog posts