Getting Started with the Code Camper SPA
- 24m 6s
—Course Overview
0m 49s
—The Code Camper User Story
2m 36s
—What is a SPA?
3m 59s
—First Look at the Code Camper Application
8m 21s
—Architecture
1m 42s
—Server Technologies
1m 59s
—Client Technologies
3m 59s
—Summary
0m 41s
Technologies and Patterns of the Code Camper SPA
- 16m 26s
—Introduction
0m 32s
—Exploring the Solution Structure
3m 0s
—Creating the Projects from Scratch
7m 0s
—Helpful Tools
2m 16s
—Responsive Design Tools
2m 52s
—Summary
0m 46s
Data Models, Entity Framework, and Data Patterns
- 49m 47s
—Introduction
1m 0s
—Data Layer Technologies
3m 52s
—Models and POCO
3m 34s
—Creating Models: Demo
4m 43s
—Entity Framework, DbContext, and Magical Unicorns
4m 37s
—Creating and customizing a DbContext: Demo
7m 34s
—Why Use the Repository Pattern
3m 31s
—Implementing the Repository Pattern: Demo
5m 40s
—Advanced Repositories: Demo
4m 41s
—Putting it Together in a Unit of Work
3m 6s
—Implementing the Unit of Work Pattern: Demo
6m 25s
—Summary
1m 4s
Surfacing JSON Data with ASP.NET Web API
- 45m 32s
—Introduction
1m 19s
—Why Use the ASP.NET Web API?
3m 41s
—Understanding Routes
1m 48s
—Creating Convention Based Controllers
6m 35s
—Using Inversion of Control with ASP.NET Web API
6m 22s
—Creating Custom Controller Actions and Routes
6m 4s
—Saving JSON Data from Fiddler
6m 0s
—Testing Web API Requests with QUnit
7m 35s
—Testing Model Validation and Other Customization
5m 8s
—Summary and Resources
1m 0s
Optimizing the Single Page
- 30m 15s
—Introduction
0m 55s
—Preparing the Page for HTML5
4m 37s
—Building the Page
6m 50s
—ASP.NET Web Optimization
2m 44s
—Optimizing the JavaScript
8m 14s
—Optimizing the CSS and LESS
5m 55s
—Summary
1m 0s
SPA Basics: Separating the Ravioli
- 33m 39s
—Introduction
1m 20s
—Modularity and Separating the Ravioli
4m 41s
—Bootstrapping the SPA with modules
9m 38s
—Managing Many Small Modules
1m 14s
—Defining the Module Dependency Problem
2m 43s
—How RequireJS Helps Modularity
2m 7s
—RequireJS Basics
4m 12s
—Applying RequireJS to a SPA
6m 7s
—Summary
1m 37s
Loading Views with MVVM and Knockout
- 36m 46s
—Introduction
1m 18s
—MVVM, Knockout, and Data Binding in a Nutshell
4m 46s
—Binding the Event Dates with Knockout
5m 56s
—Templates, Filters and Throttling
6m 29s
—Presenting Arrays in a Template
3m 37s
—Custom Binding Handler
5m 40s
—Activating the ViewModel
3m 31s
—Knockout Debugging Tips
2m 48s
—Summary
2m 41s
Data Services on the Client
- 45m 38s
—Introduction
2m 15s
—Why Use Data Services?
2m 21s
—AJAX and Model Mapping
5m 6s
—Creating A Data Service
3m 38s
—AmplifyJS
2m 11s
—Refactoring for AmplifyJS and Caching
5m 32s
—Mock Data and Testing the Data Services
7m 24s
—Role of the Data Context
1m 21s
—Creating a Data Context
8m 48s
—Navigating Models
4m 46s
—Recap and Future Options
2m 16s
Navigation, Transitions, Storage, and Messaging
- 40m 43s
—Introduction
1m 6s
—SPA Navigation Fundamentals
3m 18s
—Defining Routes
2m 16s
—Catching Routes
2m 42s
—Passing Parameters
4m 24s
—Event Delegation
5m 5s
—Transitions and the Presenter
1m 24s
—Animating Transitions
6m 10s
—Asynchronous Commands
3m 44s
—Adding Storage and Cancelation Features
1m 26s
—Canceling Navigation and Pub/Sub
4m 24s
—Local Storage
3m 37s
—Going Further with Navigation
1m 7s
Saving, Change Tracking and Validation
- 32m 54s
—Introduction
1m 36s
—Benefits of Change Tracking
0m 57s
—Applying and Testing Change Tracking
6m 50s
—Async Commands and Activity
2m 48s
—Async Updates via Commands and DataContext
2m 26s
—Implicit Saves
6m 23s
—Validation Overview
2m 22s
—Validating Data
8m 38s
—Recap and Resources
0m 54s
Mobility and Responsive Design with CSS and LESS
- 29m 23s
—The Drawing Board
2m 35s
—Debugging CSS in the Browser
6m 54s
—LESS Fundamentals
4m 0s
—Applying LESS to the SPA
5m 21s
—Responsive Web Design
2m 32s
—Media Queries and Tools
6m 42s
—Resources
1m 19s