Project Description
Sample open source software for the book by Jeremy Likness with John Garland, "Programming the Windows Runtime by Example."

Over 80 full example projects. See descriptions in the documentation, browse the source or download the latest release.

Order your copy of this comprehensive guide to the Windowns Runtime today!

Available online at
Also through Safari Online:

Table of Contents
  • 1. The Windows Runtime
a. Windows Store Apps
i. Example: Create a Windows Store App
b. .NET and WinRT
i. Fundamental Types
ii. Mapped Types
iii. Streams and Buffers
c. Desktop Applications
i. Example: Reference WinRT from a Desktop Application
d. Example: Examine Projections in a WinRT Component
e. Asynchronous Functions
f. Summary
  • 2. Windows Store apps and WinRT Components
a. Fundamentals of a Windows Store app
i. Windows Store app templates
1. Blank App
2. Grid App
3. Hub App
4. Split App
5. Class Library
6. Portable Class Library
a. Example: Build a PCL for Silverlight, WPF, and Windows Store Apps
7. Template Assets
ii. Understanding the App Manifest
1. Application UI – minimum width, new screenshots
2. Capabilities
3. Declarations
4. Content URIs
5. Packaging
iii. Finding your Package on Disk
iv. Running your App
1. Local deployment
2. Remote deployment
3. Simulator
b. Application Lifecycle
i. The Suspension Manager
1. Example: Navigation and State Management
c. Managed WinRT components
i. Create a managed component
ii. Calling Managed WinRT Components from any Language
d. Summary
  • 3. Layouts and Controls
a. The Visual Tree
b. Data-binding
i. Dependency Properties
ii. Attached properties
iii. Value Precedence
iv. Property Change Notification
c. Animations
i. Example: Dynamically apply animations to a control
d. The Visual State Manager – update for new windowing modes
i. Example: Visual State Manager
ii. Groups
iii. States
iv. Workflow
v. Programmatic Access to Visual States
vi. Custom Visual State Managers
e. Styles
f. Templates
i. Example: Using Templates
g. Layouts
i. Panel
ii. Border
iii. Canvas
iv. Grid
v. StackPanel
vi. VirtualizingPanel and VirtualizingStackPanel
vii. WrapGrid
viii. VariableSizedWrapGrid
ix. ContentControl
x. ItemsControl
xi. ScrollViewer
xii. Viewbox
xiii. GridView
xiv. ListBox
xv. ListView
xvi. Hub
xvii. Flyout
xviii. MenuFlyout
xix. SettingsFlyout
xx. Example: Using the Viewbox and Various Layouts
h. Controls (note: add DatePicker, Hyperlink, TimePicker, discuss PlaceholderText and Header support)
i. AppBar and CommandBar
j. Custom Controls
i. Example: Creating a Custom Control
k. Parsing XAML
l. HTML Pages
i. Example: Working with HTML and JavaScript
m. Summary
  • 4. Data and Content
a. Example: Data Manipulation with the “Skrape” App
b. Clipboard
c. Application storage
i. Roaming Data
ii. Containers
iii. Settings
iv. Composite Values
d. Storage Folders and Files – enhance: file picker updates, file comparison, new known folders, management of user libraries, retrieving parent files or folders, “open with” option, add to windows index and try method
i. Storage Folders
ii. Storage Files
iii. Buffers and Streams
iv. Path and File Helper Classes
v. Query Storage Operations
vi. Pickers and Cached Files
1. Example: File Open Picker and Access Cache
vii. Compression
e. Data Formats
i. Example: Data Formats in WinRT
f. Document Data
g. Summary
  • 5. Web Services and Syndication – update for new HTTP Client
c. OData Client
d. Syndication
e. Summary
  • 6. Tiles and Toasts
a. Tiles – update for new tile sizes (70x70 and 310x310)
i. Default Tiles – default pinning size
ii. Live Tiles – update square to medium (small, medium, wide, large)
iii. Cycling Tile Notifications
iv. Secondary Tiles
b. Badges
c. Periodic Notifications
d. Toasts
i. Toasts in Desktop Applications
e. Push Notifications
i. Registering to Receive Push Notifications
ii. Sending Push Notifications
f. Summary
  • 7. Connecting to the Cloud
a. Windows Azure Mobile Services
i. Example: Managing a Shared Group of Subscribers
ii. Connecting an App to a Mobile Services Instance
iii. Authentication
1. Registration and Configuration for Microsoft Account Logins
2. Authenticating the User
iv. Data Storage
1. Managing Data Tables
2. Working with Data in Client Apps
3. Data Access Scripts
4. Authorization
v. Custom APIs
vi. Integrated Push Notification Support’
vii. Scheduled Tasks
viii. Mobile Services Deployment Tiers
b. Live Connect
i. Getting Started
ii. The Example App
iii. Authentication
iv. Working with Profile Information
v. Working with Contacts
vi. Working with Calendars and Events
vii. Working with SkyDrive
c. Summary
  • 8. Security (Authentication, Encrypting, Signing, and LiveConnect)
a. Fingerprint Authentication
b. Authentication (OAuth)
i. Multi-step Authentication
ii. Unlocking the Password Vault (update with sharing of credentials across apps)
iii. App account settings
c. Encryption and Signing
i. The Data Protection Provider
ii. Symmetrical Encryption
1. Block ciphers
2. Stream ciphers
3. Authentication
iii. Verification (Validation methods, certificate support)
1. Hash Algorithms
2. Message Authentication Codes
iv. Asymmetrical Encryption (certificate support)
d. Selective wipe
  • 9. Model-View-ViewModel (MVVM)
a. UI Design Patterns
i. The Model
ii. The View
iii. Model-View-Controller (MVC)
iv. Model-View-Presenter (MVP)
v. Model-View-ViewModel (MVVM)
b. The ViewModel Decomposed
c. Common MVVM Misperceptions
d. Benefits of MVVM
e. Common MVVM Solutions
i. Design-time Data
ii. Accessing the UI Thread
iii. Commands
iv. Handling Dialogs
v. Selection Lists
vi. Filtered Lists
vii. Validation
f. Summary
  • 10. Networking
a. Web and HTTP
b. HomeGroup
c. Checking Connectivity and Data Plans
d. Sockets
i. WebSockets
ii. UDP and TCP Sockets
e. Proximity (Near Field Communications)
i. NFC Only Scenarios
ii. Tap to Connect Scenarios
f. Background Transfers
  • 11. Windows Charms Integration
a. Displaying App Settings
i. The Settings Example
ii. Adding Settings Entries
b. Sharing
i. The Share Source Example
ii. Creating a Share Source App
iii. The Share Target Example
iv. Creating a Share Target App
v. Debugging Share Target Apps
c. Using Play To
i. The Play To Example
ii. Creating a Play To Source App
iii. Creating a Play To Target App
d. Summary
  • 12. Additional Windows Integration
a. Integrating with the File and Contact Pickers
i. The Example App
ii. File Open Picker
iii. File Save Picker
iv. Contact Picker
b. Application Activation Integration
i. The Example App
ii. File Activation
iii. Protocol Activation
iv. Account Picture Provider
v. AutoPlay
c. Working with Contacts and Appointments
i. The Example App
ii. Contacts
iii. Appointments
  • 13. Devices
a. Working with Input Devices
i. The Example App
ii. Identifying Connected Input Devices
iii. Pointer, Manipulation, and Gesture Events
1. Pointer Events
2. Manipulation Events
3. Gesture Events
iv. Keyboard Input
b. Sensor Input
i. The Example App
1. Working with the Bing Maps Control
ii. Geolocation
1. Getting Started
2. Using the Geolocator
3. Working with Geocoordinate Values
4. Using the Simulator Location Tools
iii. Geofencing
1. Getting Started
2. Defining a Fence
3. Geofencing Events
4. Managing Geofences
iv. Motion & Orientation Sensors
1. Simple Orientation Sensor
2. Compass
3. Inclinometer
4. Accelerometer
5. Gyrometer
6. Orientation Sensor
7. Light Sensor
  • 14. Printers & Scanners
a. Working with Printers
i. The Example App
ii. Getting Started
iii. Configuring a Print Task
1. The PrintTaskSourceRequestedHandler Callback
2. Customizing Print Options
iv. Providing Printing Content
1. Generating Print Preview Content
2. Generating Content to send to a Printer
b. Working with Scanners
i. The Example App
ii. Determining Scanner Availability
iii. Working with Scan Sources
iv. Previewing
v. Scanning
vi. Scanner Settings
  • 15. Background Tasks
a. The Thread Pool
b. Uploads and Downloads
c. Audio
d. Lock Screen Tasks
i. Lock Screen Capabilities
ii. The Background Task
iii. Listing Background Tasks
iv. Timer
v. Conditions
vi. Debugging Background Tasks
e. Raw Push Notifications
f. Control Channel
g. System Events
h. Summary
  • 16. Multimedia
a. Playing Multimedia Content
i. The Example App
ii. Getting Started
iii. Appearance
iv. Controlling Playback
v. Audio Settings
vi. Media Information
vii. Markers
b. Acquiring Audio and Video
i. The Example App
ii. Declaring Application Capabilities
iii. Using CameraCaptureUI
iv. Using MediaCapture
1. Getting Started and Previewing
2. Working with Camera Settings
3. Capturing Video and Audio
4. Capturing Images
c. Text-to-Speech Support
i. The Example App
ii. Using the SpeechSynthesizer
  • 17. Accessibility
a. Requested Theme
b. High Contrast
c. Keyboard Support
d. Automation Properties
e. Testing with Narrator
f. Automation and Lists
g. Live Settings
h. Automation Peers
i. Accessibility Checker
j. Summary
  • 18. Globalization and Localization
a. Design Considerations
b. Default Language
c. Configuring Preferred Languages
d. Resource Qualification and Matching
e. Localizing XML Elements
f. Formatting Dates, Numbers, and Currencies for Locale
g. MVVM and Localization
h. Multilingual Toolkit
i. Summary
  • 19. Packaging and Deploying
a. Packaging Your App
i. App Package and App Bundle Contents
ii. Package Identifier
iii. Creating an App Package
b. Deploying Your App
i. Publishing Your App in the Windows Store
1. Developer Accounts
2. Preparing Your App to be Published
3. Application Certification
ii. Other Deployment Options
c. Making Money with Your App in the Windows Store
i. The Example App
ii. Pricing Your App in the Windows Store
iii. Trial Mode Apps
iv. In-App Purchases
v. Including Advertisements
1. pubCenter Configuration
2. Includeing the Ad Control in Your App
d. Summary
  • 20. Debugging and Performance Optimization
a. Understanding the Debugger
i. Native, Managed, and Script Debuggers
ii. Just My Code
iii. Edit and Continue
iv. Just-in-Time
v. How to Launch the Debugger
vi. Program Databases
vii. Debug Windows
viii. Managing Exceptions
b. Logging and Tracing
c. Profiling and Performance Analysis
i. Performance Tips
ii. CPU Sampling
iii. XAML UI Responsiveness
iv. Energy Consumption
d. Code Analysis
e. Summary
  • Appendix A
a. Core WinRT Concepts
i. Namespaces
ii. Base Types
iii. Primitives
iv. Classes and Class Methods
v. Structures
vi. Generics
vii. Null
viii. Enumerations
ix. Interfaces
x. Properties
xi. Delegates
xii. Events
xiii. Arrays
b. WinRT Internals
  • Glossary

Last edited Apr 9 at 1:02 PM by jeremylikness, version 10