Ready to make money and share your great Windows 8 app ideas with the world? Not sure where to start? Start here! Over the course of 34 lessons, Bob Tabor from www.LearnVisualStudio.net will teach you the fundamentals of Windows Store app development.
Bob reviews the topics discussed in this series of lessons, and provides some additional resources and guidance on how you should approach your career as a software developer. ResourcesWindows 8 UX Fundamentals Training Workshop 2012 Azure Mobile Services Bob's Website, LearnVisualStudio.NET Download the entire series' source code
Finally, we learn how to enable in-product purchases to unlock certain features or allow for the purchase of in-app items allowing us to use a "freemium" business model. Download the entire series' source code
Continuing on from the previous lesson, now we learn how to unlock the app and its features by allowing the user to purchase a full version of the app directly from the app. Download the entire series' source code
In this final Hands On Lab, we use the CurrentAppSimulator class to simulate interaction with the Windows Store API. Here we simply use the configuration file to declaratively modify the user interface. This simulates the data retrieved from the Windows Store. Download the entire series' source code
This lesson demonstrates the use of scheduled toasts to remind or notify the user of some task or change in the app.Download the entire series' source code
Continuing from the previous lesson, this lesson demonstrate how to utilize push notifications from Windows Notification Services to provide information or state updates to the user from the cloud on the Windows 8 start page. ResourcesAzure Mobile Services Windows Azure Toolkit for Windows 8 Download the entire series' source code
The Windows 8 start page is one of it's most distinctive features, and this lesson demonstrates how to implement secondary tiles to allow "deep linking" into functionality or data in the app. Download the entire series' source code
In this lesson we follow the instructions of the Hands On Lab to tie up the loose ends and actually implement the desire functionality. Download the entire series' source code
In this lesson we use the ToggleSwitch element to capture a user's preference on how to deal with remembering the state of the app prior to it being terminated. We talk about the different special folders and objects we can use to save user data, and discuss roaming and how to utilize it in our app. Download the entire series' source code
In this lesson, we learn how to add Settings Flyouts using the Callisto controls. These are used to respond to the Settings charm in Windows 8, and can be used for About pages, Preferences or other related purposes. ResourcesGuidelines for app settings Download the entire series' source code
In this lesson, Bob explains how Windows 8 manages the resources of the computer in regards to our apps. We learn how to respond to Suspend notifications from Windows 8 so that we can store state or data information and restore it when the app is re-launched. Resources ApplicationExecutionState enumeration Supporting your app with background tasks Download the entire series' source code
In this lesson, we demonstrate how easy it is to record a video and share it directly from our app. Download the entire series' source code
In this lesson, we demonstrate how easy it is to take a photo and share it directly from our app. Download the entire series' source code
In this lesson we add an AppBar, and using the Callisto controls from Tim Heuer to provide a Flyout menu that displays when the user selects an AppBar icon. Bob demonstrates how to use NuGet to utilize the latest version of the open source toolkit in our app. ResourcesCallisto: A toolkit for XAML Metro style apps Download the entire series' source code
In this lesson, we learn how to respond to the user's request to search using the Search charm in Windows 8. We see all of the changes to our app that are automated by including a search results page template. We also demonstrate how to enable apps to provide spelling suggestions to items in our app as the user types in the search phrase. Download the entire series' source code
The Windows 8 charms can be tightly integrated into our app. Here, we implement the Share Contract, allowing users to select a recipe and share the recipe text and images with other apps like email, etc. Download the entire series' source code
In this lesson, we allow users to use the reverse-pinching motion to see a high-level overview of the different groups of recipes we offer, referred to as "Semantic Zooming". This allows the user to get context and drill into those items on our start page that interest them. Download the entire series' source code
Similar to the previous lesson, here we investigate the LayoutAwarePage and the VisualStateManager and learn how we can provide alternate layouts for snapped and filled states. Download the entire series' source code
We head back to the LayoutAwarePage and discuss how it works with the VisualStateManager to allow us to declarative respond to changes in orientation on our user's device. Download the entire series' source code
In order to make our declarative controls and data binding work smoothly, we look at implicit XAML type converters, type converters added to our project template, then implement our own custom type converter and explain its purpose. ResourcesQuickstart: Adding FlipView controls Download the entire series' source code
Continuing to work with the layout of our pages, we tweak the DataTemplates that are responsible for the presentation of individual data items in our data source. Download the entire series' source code
Our focus turns back to the layout of the three main pages in our app. In this lesson we learn about the major properties of the GridView and how they affect the flexible layout and presentation of the data on our pages. ResourcesImage.Stretch property Stretch enumeration Download the entire series' source code
The new C# 5.0 async features are explained in this lesson, including the pattern we can follow to utilize the Windows Runtime async methods to keep our apps fast and fluid. ResourcesAsynchronous Programming with Async and Await Download the entire series' source code
In this lesson we talk about the JSON data format and look at the code in the RecipeDataSource.cs that loads and parses through that data to create instances of our RecipeDataItem and RecipeDataCollection objects. ResourcesOrganizing and Simplifying JavaScript with Object Literals - 12 Download the entire series' source code
Several times up until now we've talked about the special relationship between the data and the user interface and in this lesson we talk about how change notification works and the how the interfaces, like the INotifyPropertyChanged and ICollectionChanged provide a contract that data source classes can implement and user interfaces can rely on to be notified of changes. ResourcesObservableCollection Class Data Binding Overview (Yeah, it's for WPF, but the ideas are similar Download the entire series' source code
In this lesson we follow the instructions of the Hands On Lab to add and wire up the RecipeDataSource.cs and its images and data to make sweeping changes to the app. Download the entire series' source code
In this lesson we take a short aside and learn about the design time experience in Visual Studio and learn how it is able to render sample data. This gives us insights into binding syntax, data collections, schemas and more. Download the entire series' source code
In this lesson, we begin the process of understanding how to utilize data in our app. We begin by looking at this from the GroupedItemsPage.xaml's perspective, and how it utilizes the CollectionViewSource to bind to a View Model provided in the LayoutAwarePage.cs. We talk about the DefaultViewModel object which implements IObservableMap and what that really means. Finally, we pick apart the SampleDataSource.cs and observe it's inheritance hierarchy and the purpose of each of the classes defined in that file. Download the entire series' source code
In this lesson we follow the Hands On Labs to modify the branding elements of the app by adding images and configuring our app to use them. We learn about the Package.appxmanifest and how it introduces our app to Windows 8 and finally discuss the purpose of the App.xaml. Download the entire series' source code
In this lesson Bob walks through the major sections of the GroupedItemsDetail.xaml page explaining the purpose of the elements. He explains the purpose of the LayoutAwarePage, how binding syntax works in XAML, resource dictionaries, styles, data templates, and more. Download the entire series source code
Bob continues by talking about default properties, the Content property utilized by most controls, property element syntax, and then talks about the various schemas utilized in XAML and what they are there for. Download the entire series' source code
Now that we have a project, it's time to learn XAML for user interface layout and interaction. Bob provides a fast but gentle introduction -- as he calls it, the "cheater's guide" -- to learning this declarative language. He explains what XAML is at a high level and its justification. He provides hands-on, practical examples of XAML layout controls, attached properties, navigating between the XAML and code-behind files / partial classes and how the XAML and C# is compiled into intermediate language. Download the entire series' source code
In lesson Bob takes the first steps towards building the Contoso Cookbook by creating and walking through a new Grid App Template project and modifying the project name displayed on the start page. Download the entire series' source code
In this lesson Bob kicks off the series talking about the organization, required setup and goals of the lessons, and provides some motivation and guidance for getting started. ResourcesC# Fundamentals: Development for Absolute Beginners Visual Studio Express 2012 Product Downloads Psst ... remember, you want "Express for Windows 8" Windows Dev Center Getting a Developer License Windows 8 Camp in a Box Download the entire series' source code