Learn your way! Get started

Windows Phone 7 Adv Development Using Visual Studio 2010

with expert Bret Stateham


Course at a glance

Included in these subscriptions:

  • Dev & IT Pro Video
  • Dev & IT Pro Power Pack

Release date 1/6/2012
Level Intermediate
Runtime 12h 29m
Closed captioning N/A
Transcript N/A
eBooks / courseware N/A
Hands-on labs N/A
Sample code Included
Exams Included


Enterprise Solutions

Need reporting, custom learning tracks, or SCORM? Learn More



Course description

This Windows Phone 7 course takes a deeper look at the mobile OS from Microsoft. Starting with the use of MVVM and why you need to use MVVM. The course then moves in to unit testing so you as the developer can test your code right away. The exchange and storage of data is covered next including how to use LINQ to SQL for the phone OS. As part of any data exchange there needs to be a network, how to use WCF or OData services for this exchange is covered. Next the course moves on to tiles and notifications then search integration. Next graphics for applications and games from Silverlight and XNA are covered for application development. The final subject is on background operations and how it effects an application.

Prerequisites

This course assumes that you have some programming background and experience using Visual Studio 2010. In addition, the course assumes knowledge of C# in the Windows environment. Some basic knowledge of Silverlight 4 is helpful, as well. A very basic understanding of XML is also required.

Meet the expert

Bret Stateham is the owner of Net Connex, a technical training and consulting company. He has been both working and teaching on Microsoft platforms since the DOS days, has over 20 years of experience in the IT field, and has over a decade of experience as a trainer. Bret has contributed to multiple technical books and is a frequent speaker at regional events.

Course outline



Module 1

Introduction to MVVM (12:26)
  • Introduction (04:11)
  • Introduction to MVVM (01:12)
  • What MVVM Is / Is not (01:40)
  • MVVM Foundations (01:15)
  • MVVM Visualization (03:02)
  • When you need MVVM (00:51)
  • Summary (00:12)
Creating a View Mode (14:43)
  • Introduction (00:29)
  • Creating A Model (01:30)
  • Accessing Model Instances (01:04)
  • The Chicken or the Egg (00:42)
  • Creating a ViewModel (00:30)
  • ViewModel Requirements (01:15)
  • Demo: Creating a ViewModel (08:52)
  • Summary (00:17)
Creating a View (14:51)
  • Introduction (00:30)
  • Creating a View (01:08)
  • To Code Behind or Not (01:59)
  • Demo: Creating a View (11:01)
  • Summary (00:12)
Creating Commands (29:35)
  • Introduction (00:33)
  • Creating Commands (02:23)
  • Controls That Support ICommand (00:53)
  • Passing Parameters to Commands (00:59)
  • ICommand.CanExecute() Method (01:51)
  • ICommand.Execute() Method (01:04)
  • Demo: Creating a Command (15:41)
  • Review (00:41)
  • What was cool in the demos (01:08)
  • What was not cool (01:07)
  • What can be done? (01:38)
  • MVVM Frameworks (01:13)
  • Summary (00:16)

Module 2

Simplifying View Models (26:18)
  • Introduction (00:36)
  • A Quick Review of MVVM (01:09)
  • What MVVM Is / Is not (01:21)
  • What is Good About MVVM (01:17)
  • What is difficult about MVVM (01:11)
  • Easing the pain (01:12)
  • Simplyfying ViewModel Creation (00:35)
  • INotifyPropertyChanged (00:46)
  • Visual Studio Code Snippets (01:33)
  • Demo: View Model and Snippets (16:13)
  • Summary (00:19)
Simplifying Commands (19:14)
  • Introduction (00:31)
  • Simplifying Command Creation (01:30)
  • Creating the DelegateCommand (02:11)
  • Demo: DelegateCommand (14:45)
  • Summary (00:15)
View Model Assignment (11:43)
  • Introduction (00:37)
  • Simplifying ViewModel (01:44)
  • Creating a Service Locator (01:12)
  • Demo: Service Locator (07:57)
  • Summary (00:12)
Third Party Frameworks (16:14)
  • Introduction (00:35)
  • Using Third Party Frameworks (01:05)
  • Framework Choices (01:58)
  • MVVMLight Introduction (01:32)
  • Getting & Installing MVVMLight (01:02)
  • Demo: MVVMLight (09:47)
  • Summary (00:12)

Module 3

Unit Test Introduction (07:45)
  • Introduction (00:27)
  • Introduction to Unit Testing (01:14)
  • WP7(+) Unit Testing Frameworks (01:32)
  • Silverlight Unit Testing Framework (02:01)
  • Demo: Unit Testing (02:14)
  • Summary (00:16)
Unit Test Projects (16:35)
  • Introduction (00:28)
  • Creating a WP7 Unit Test Project (02:09)
  • Customize the MainPage.xaml.cs (03:31)
  • To Run the Test Project (01:09)
  • Demo: Unit Test Project (09:05)
  • Summary (00:12)
Creating Unit Tests (33:11)
  • Introduction (00:23)
  • Creating and Running Tests (02:42)
  • How Many Tests? (03:50)
  • Creating Basic Tests (01:49)
  • Making Assertions (00:47)
  • Assert Methods (01:40)
  • Unit Test UI (01:02)
  • When Tests Fail (00:39)
  • Demo: Writing Unit Tests (19:59)
  • Summary (00:15)
Additional Test Scenarios (26:38)
  • Introduction (00:29)
  • Additional Test Scenarios (01:22)
  • Expecting Exceptions (01:40)
  • Accessing Internal Members (01:21)
  • Testing Asynchronous Methods (01:15)
  • Running a Subset of Tests (01:19)
  • Demo: Test Subsets (18:57)
  • Summary (00:12)

Module 4

Local Database Introduction (14:03)
  • Introduction (00:27)
  • Local Database Introduction (00:47)
  • Limitations (01:51)
  • LINQ to SQL on the Phone (02:51)
  • Database Storage (02:59)
  • Database Creation Options (02:34)
  • Demo: Database Application (02:15)
  • Summary (00:16)
Creating the Data Context (35:48)
  • Introduction (00:32)
  • Creating the DataContext (01:15)
  • Creating Your Table Entities (00:45)
  • Creating Columns (01:32)
  • Creating Relationships (03:48)
  • Demo: Creating A DataContext (27:41)
  • Summary (00:12)
Creating the DataBase (12:46)
  • Introduction (00:24)
  • Connection Strings (01:42)
  • Creating the Database (01:21)
  • Demo: Database Creation (09:05)
  • Summary (00:12)
Querying and Updating Data (25:42)
  • Introduction (00:28)
  • Querying the Database (01:36)
  • Updating, Deleting & Inserting (23:22)
  • Summary (00:14)

Module 5

Networking Introduction (27:45)
  • Introduction (00:28)
  • Windows Phone Networking Intro (00:48)
  • Networking Options (01:42)
  • Network Access is Asynchronous (03:53)
  • Detecting Network Status (01:54)
  • Responding to Network Changes (01:16)
  • Resolving Host Name to IP (01:56)
  • Demo: DeviceNetworkInfo (15:26)
  • Summary (00:17)
Connecting to the Web (18:44)
  • Introduction (00:31)
  • Connecting to Web Content (01:48)
  • Web Access Option (02:15)
  • No Cross-Domain Access Limits (01:46)
  • Basic WebClient Download (02:08)
  • Demo: Download (09:57)
  • Summary (00:15)
Accessing Web Services (32:06)
  • Introduction (00:33)
  • Accessing Web Services (01:51)
  • Web Service Configuration (01:10)
  • Proxy Types (01:53)
  • Proxy Type Interfaces (01:36)
  • Configuring Proxy Generation (00:54)
  • Demo: Creating a WCF Service (23:54)
  • Summary (00:13)
OData Services (13:14)
  • Introduction (00:29)
  • Connecting to OData Services (00:46)
  • Windows Phone OData Client (01:04)
  • Demo: OData Client (10:41)
  • Summary (00:12)

Module 6

Phone Tiles (18:31)
  • Introduction (00:32)
  • Introduction to Tiles (01:15)
  • Two Types of Tiles (02:03)
  • Tile Properties (03:58)
  • Background Images (00:46)
  • Your Application Tile Defaults (00:45)
  • Demo: Tiles (08:58)
  • Summary (00:12)
Programming Tiles (31:39)
  • Introduction (00:36)
  • Working with Tiles in Code (00:57)
  • Getting Existing Tiles (01:58)
  • Creating, Updating & Deleting (02:42)
  • Demo: Working With Tiles (25:01)
  • Summary (00:22)
Push Notifcations (27:45)
  • Introduction (00:34)
  • Push Notifications (02:59)
  • Limitations (02:25)
  • Push Notification Workflow (04:25)
  • Demo: Push Notification (17:01)
  • Summary (00:18)

Module 7

Search Integration (10:08)
  • Introduction (00:35)
  • Search Extensibility Overview (01:43)
  • Application Activation (02:30)
  • Marketplace Registration (02:06)
  • Demo: Application Search (02:54)
  • Summary (00:17)
Application Connect (16:13)
  • Introduction (00:31)
  • Extending Search w/ App Connect (01:23)
  • You Control Search Results (00:49)
  • Demo: App Connect (13:07)
  • Summary (00:21)
Application Instant Answers (08:18)
  • Introduction (00:32)
  • App Instant Answer (01:22)
  • Getting Search Information (00:32)
  • Demo: Instant Answer (05:36)
  • Summary (00:14)
Introduction to XNA (18:56)
  • Introduction (00:28)
  • Introduction to XNA (01:26)
  • This is NOT Silverlight (01:13)
  • Retained Mode vs Immediate Mode (01:40)
  • XNA Game Loop (03:11)
  • Update, Draw (01:20)
  • XNA Project Structure (01:23)
  • XNA Blue Screen (01:33)
  • Demo: XNA Application (06:22)
  • Summary (00:16)

Module 8

Sprites (43:54)
  • Introduction (00:30)
  • Working with Assets (00:48)
  • Introducing Sprites (01:43)
  • Transparency in Sprites (01:46)
  • Drawing a Sprite (03:12)
  • Making Things Move (01:08)
  • Using Sprite Sheets (01:46)
  • Demo: Adding Sprites (17:30)
  • Demo: Moving Sprites (15:12)
  • Summary (00:14)
Accepting Input (16:06)
  • Introduction (00:27)
  • Accepting Input (01:01)
  • Accelerometer (02:16)
  • Demo: Accelerometer (12:05)
  • Summary (00:14)
Game Play (14:01)
  • Introduction (00:28)
  • Game Play (01:32)
  • Collision Detection (01:35)
  • Demo: Collision Detection (10:06)
  • Summary (00:18)

Module 9

Silverlight XNA (18:07)
  • Introduction (00:29)
  • Silverlight and XNA Integration (01:33)
  • Why Do We Need Integration? (02:43)
  • Silverlight and XNA Projects (01:38)
  • Silverlight Project Differences (02:19)
  • Demo: XNA and Silverlight App (09:11)
  • Summary (00:12)
Hosting XNA in Silverlight (25:38)
  • Introduction (00:23)
  • Implementing the XNA Game (03:17)
  • Adding Content (01:08)
  • Game Logic (00:53)
  • Demo: XNA in Silverlight Game (19:36)
  • Summary (00:18)
Hosting Silverlight in XNA (11:45)
  • Introduction (00:39)
  • Rendering Silverlight in XNA (03:51)
  • Demo: Silverlight in XNA (07:02)
  • Summary (00:12)

Module 10

Scheduled Actions (10:52)
  • Introduction (00:28)
  • Intro to Background Operations (03:43)
  • Scheduled Notifications & Tasks (03:23)
  • ScheduledActionService (02:00)
  • Basic Workflow (00:56)
  • Summary (00:18)
Scheduled Notifcations (30:34)
  • Introduction (00:25)
  • Scheduled Notifications (02:17)
  • Demo: Notifications (27:39)
  • Summary (00:12)
Scheduled Tasks (37:48)
  • Introduction (00:31)
  • Scheduled Tasks (03:53)
  • PeriodicTasks (01:42)
  • ResourseIntensiveTask (01:12)
  • The ScheduledTaskAgent (01:42)
  • ScheduledAgent.OnInvoke() (01:33)
  • Dual Purpose Agent (01:13)
  • Debugging Agents (01:57)
  • Demo: IntensiveTasks (05:51)
  • Demo: Debugging Agents (01:37)
  • Demo: ScheduledTaskAgent (16:17)
  • Summary (00:15)