What you will learn in this course

Microsoft Windows 8 is a complete re-imagining of the Windows platform. With a new runtime environment and a complete overhaul of the UI paradigm. Windows 8 represents one of the biggest shifts in Windows programming since the move to Win32.

You'll get answers to the following questions:

  • What is the Metro design language, why should I care about it, and how do I write applications that conform to it?
  • How do I build great Windows Store applications using C#, XAML, and .NET 4.5?
  • How do I manage the different forms of user input, such as touch, on-screen (and physical) keyboard and the more tradition stylus and mouse?
  • How do I use the various contracts and charms to support searching and sharing of data?
  • How do I apply M-V-VM and data binding in a Windows Store application?
  • How do I manage the application lifetime, handle sessions and persist settings?
  • How do I work with the new controls, layout templates and animation features to make a great application?
  • How do I integrate my application with the cloud and other network sources?
  • How do I upload/download large files in the background?
  • How do I create a great live tile for my application, with notification support?
  • How do I work with sensors and devices?

Course highlights

In this course you will learn to:

  • Decide whether you should be building a desktop or Metro-style application
  • Use Visual Studio 2012 and Expression Blend to design, develop and debug your applications
  • Create compelling user interfaces using animation, visual states, navigation and layout controls
  • Create applications that conform to the Metro UX design guidelines
  • Handle all forms of user input, including designing for touch
  • Build applications that start quickly and handle the Windows 8 suspension and termination model
  • Produce sparkling data-driven applications using the M-V-VM pattern
  • Create applications that integrate into Windows 8 through Charms and Contracts
  • Work with local and remote data and settings
  • Use the power of sensors and devices to enrich your application

Course outline and topics


The introduction of Windows 8 brings numerous challenges and opportunities for developers. The changes in Windows 8 are much deeper than a new Start screen. There's a new API which brings consistent programming to C#/VB.NET, C++, and JavaScript developers. An exciting new user interface paradigm, based on the Metro design language, makes Windows 8 more personalized and even easier to work with than previous versions of Windows.

If you're a developer that wants to make the most of Windows 8 then this course will give you the skills and knowledge that you need.

Course Outline

In this module, you will be introduced to Windows 8 and Windows Store applications. We will cover the core concepts of how a Windows Store application is put together and executed under Windows 8.

The Metro Design Language
Metro is a set of design principles and guidelines for building Windows Store applications. Some are very specific like "use SegoeUI Light for page headers". Others are more general; for example, "delight your users with motion". This module begins with an overview of the historical influences that shaped Metro. It then highlights key aspects of the Metro design language so that you can create applications that fit well into the Windows Store ecosystem.

Data Binding
Data Binding is a powerful mechanism to let your application connect visual elements with data structures, allowing for better testability and separation between behavior and UI. In this module, we will look at this important piece of infrastructure and how to take advantage of it properly.

Windows 8 applications need to be fast and fluid. One mechanism for achieving this is to use subtle but effective animations. For example, new data could move smoothly into position instead of appearing instantly at its destination or a list item could shrink slightly when pressed to let the user know it is selectable. This module shows how to use the built-in theme animations and transitions, as well as create your own custom and realistic animations.

Dynamic Layout
Windows Store applications typically take up the full screen but can also be placed side-by-side with another application - reducing the space your application has to display its data. Your application needs to respond properly when the user does this, as well as manage its orientation on tablets when the screen is flipped or turned on its side. In this module, we will look at how you can detect the screen orientation, and adjust your UI to present its information properly as the user interacts with other applications.

Most applications need multiple pages and some way for the user to navigate among them. Fortunately, you do not have to implement your own navigation plumbing - the system-supplied Frame and Page classes do much of the work for you. This module looks at how to create and navigate between different pages using these navigation types. It also shows how to save/restore session state as the user moves between pages.

Semantic Zoom
Semantic Zoom allows a "high-level" view of data to help the user navigate through a large data set. This module shows how to create two views of your data (zoomed in and zoomed out) and use the SemanticZoom control to transition smoothly between them.

Splash Screen
There are two types of splash screens: system and extended. The system splash screen is displayed by Windows while an app is loading. An extended splash screen is shown by the app itself if it needs more than a few seconds to load. This module shows how to customize the system splash screen and how to code an extended splash screen.

Suspend and Terminate
Windows manages the life cycle of Windows Store applications. Your app will be notified and then suspended when it is no longer in the foreground. If Windows runs low on resources, it will terminate your suspended app with no notification. This module examines how and when your application runs. We will see how to save application state when your app gets suspended and how to restore state after termination - the goal is to make your application look like it continued to run even if it was terminated by Windows.

A tile is your app's presence on the Windows Start Screen. A good tile can increase an app's value to the user by presenting information even when the app is not running. This module covers how to configure your app's default tiles and how to dynamically update them with new content.

Windows has a standard search experience centered around the Search charm on the Charms bar. Apps are encouraged to participate in this system-wide search instead of implementing their own custom solution. This module shows you how to implement the Search Contract in your app to integrate with Windows search. Users will be able to find your app's information when searching from inside your app, from the Start screen, or even from inside another application.

This module shows how to implement the Share Contract to make your app a Share source and/or a Share target. The Share Contract complements the system clipboard by enabling another avenue for rich exchange of information between applications. Users initiate sharing through the Share charm. Your app is then asked to provide the data to be shared - this saves the user time since there is no explicit "select and copy" step. Share also lets your app consume information shared by other applications. Windows acts as an intermediary in the exchange and the apps are never aware of one another.

Windows Store apps benefit from keyboard input in many scenarios. This module will show you the options for receiving keyboard input on a per-control or global basis. You will also see how to implement shortcut and accelerator keys. Finally, you will see how to handle cases where no physical keyboard is available by utilizing the on-screen keyboard services.

Windows 8 has been designed from the ground up to support multiple interaction techniques: touch, stylus, keyboard, and mouse. In this module, you will learn how to create great touch-based applications by understanding the Windows touch language, responding to low-level touch input, and handling manipulations and inertia.

Windows has rich support for sensors. The APIs let your app use the inclinometer to control motion, adjust the UI as ambient light levels change, determine the user's location, etc. This module explores how to control sensors like compass, accelerometer, gyro, ambient light, and GPS. It also discusses how to work within the security constraints imposed by Windows on apps that use geolocation.

The life of a Windows Store applications is split across the client and the cloud. In this module, we will cover some of the ways your app can communicate with servers and access data over the network. You'll see how to handle raw HTTP requests, perform OAuth authentication, and use WCF service proxies. We will also see how to detect network capabilities and availability.

Background Transfer
Windows Store apps will be suspended and terminated by the system when they are no longer in the foreground. This makes it difficult to manage long-running operations like large file transfers across a network. This module describes the Background Transfer APIs that let your uploads/downloads continue even when your application is suspended. You can also easily resume the operations after app termination and restart.

Media Capture
Many computers and tablets have various media capture capabilities - camera, microphone, and video camera. This module explores the system services and UI components that let you access these devices from your application.