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 Modern 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 Windows Store application
  • Use Visual Studio and 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 Modern UX design guidelines
  • Handle all forms of user input, including designing for touch
  • Build applications that start quickly and handle suspension and termination gracefully
  • Produce data-driven applications using the M-V-VM pattern
  • Create applications that integrate into Windows 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. A new user interface paradigm, based on the Modern design language, makes Windows more personalized and extends its read to tablets and other touch-based devices.

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 Modern Design Language
Modern is a set of design principles and guidelines for building Windows Store applications. Some are very specific like “use the Segoe UI Light font 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 the design language. It then covers several key aspects in detail so that you can create applications that fit well into the Windows Store ecosystem.

XAML Fundamentals
C#, VB.NET, and C++ Windows Store applications use a markup language called XAML to build their user interface. This module provides an introduction to XAML syntax and shows how it is used to create a UI in a Windows Store app.

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 Store 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 an item could shrink slightly when pressed to let the user know it is selectable. This module shows how to apply 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 other applications - reducing the space your application has to display its data. Your application needs to respond properly when the user does this. You also need to manage 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 size and orientation changes, and adjust your UI to present information properly in the available screen real estate.

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 add a top AppBar to your pages to serve as your navigation menu.

Hub Applications
Applications that use the Hub control on their main page are common because Hub provides a flexible way to present the app’s information. For example, the standard apps News, Store, Sports, and Travel all use this pattern. A Hub is made up of Sections and each Section can display any type of content. This module shows how to create a Hub app, present heterogeneous data in multiple sections, and use data binding to provide the needed data to each section.

Semantic Zoom
Semantic Zoom allows a high-level view of data to help the user navigate a large data set. This module looks at how to create two views of your data (zoomed-in and zoomed-out) and uses 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.

Apps that manage a large amount of data can support Search to help the user navigate. The Search experience is centered on the SearchBox control and its events. SearchBox stores and displays previous queries automatically. The app can provide auto-complete search suggestions and/or prospective results when it finds a high-confidence match. This module shows how to integrate a SearchBox into your UI, how to handle its events, and how to implement a search-results page that conforms to the Widows UX guidelines.

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 interact with 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.