home > training > DEV500: Building an HTML5 End-to-End Web Application with ASP.NET MVC5, EF Code First and jQuery

DEV500: Building an HTML5 End-to-End Web Application with ASP.NET MVC5, EF Code First and jQuery


  • 5 Days
  • Taught by Microsoft MVP Dan Wahlin
  • Replay™ Class Recordings Included

Interested in scheduling a date for this course?
Request A Date
  • This field is for validation purposes and should be left unchanged.

Course Description

This course provides an end-to-end look at building an HTML5 Web application using Visual Studio 2013 along with different technologies such as ASP.NET MVC, Entity Framework Code First, and jQuery. Throughout the course you’ll see how different server-side and client-side technologies can be integrated to create a robust application that provides flexible data display options to end users.

Topics covered include data access with Entity Framework Code First, using the repository pattern, serving up HTML5 and JSON content using ASP.NET MVC and the ASP.NET Web API, working with dependency injection, parsing data using LINQ to XML, jQuery DOM manipulation and event handling, HTML5 Boilerplate integration, the role of object literals in JavaScript, jQuery UI features, applying patterns to structure JavaScript code to make it more maintainable, as well as several HTML5 technologies including SVG, canvas, video, and more. If you’re looking for an “end to end” course that shows how different technologies can integrate then this is the course for you.


1. Introduction to the Application Technologies

  • Introducing the Account at a Glance Application
  • Application Technology Overview
  • Project Structure
  • Using NuGet
  • Data Technologies
  • Lab: Creating the Application Projects

2. Unit Testing Fundamentals

  • Testing Terminology and Concepts
  • Introduction to Unit Testing
  • Creating Unit Test Projects
  • Writing Unit Tests
  • Running Unit Tests
  • Lab: Creating Unit Tests

3. Creating Model Classes

  • Creating Model Classes
  • Adding Validation Attributes
  • Schema Mapping Attributes
  • Lab: Creating Model Classes and Testing Validation

4. Creating the DbContext

  • The Role of DbContext
  • Creating a DbContext Class
  • Extending DbContext Functionality
  • Creating a Seed Class
  • Modifying a Database
  • Lab: Creating the DbContext Class

5. Creating Repository Classes

  • Repository Pattern Fundamentals
  • The Base Repository Interface and Class
  • Creating Repository Interfaces and Classes
  • Querying with LINQ and Lambdas
  • Querying with Repository Classes
  • Lab: Creating Repository Classes

6. Retrieving and Storing Distributed Data

  • Parsing XML Data with LINQ to XML
  • Creating a StockEngine Class
    Calling Stored Procedures with EF Code First
  • Adding Repository Methods
  • Lab: Creating a StockEngine Class and Repository Methods

7. Creating ASP.NET MVC Controllers

  • Server-Side Technology Overview
  • Application Controllers
  • Customizing Routes
  • The ASP.NET Web API
  • Lab: Creating Controllers and Actions

8. Creating ASP.NET MVC Views

  • HTML5 Boilerplate and _Layout.cshtml
  • Working with ASP.NET MVC Views
  • Bundling CSS and JavaScript Files
  • Lab: Creating Views and Working with Bundles

9. Working with Dependency Injection

  • Dependency Injection Overview
  • Introduction to Unity
  • The ModelContainer Class
  • Using ASP.NET MVC's Dependency Resolver
  • Refactoring the DataService Controller
  • Lab: Working with Dependency Injection

10. Client-Side Technologies

  • Client-Side Technology Overview
  • jQuery Fundamentals
  • Introduction to qUnit
  • Understanding JSON and Object Literals
  • JavaScript Patterns for Structuring Code
  • Lab: Using JavaScript Patterns, jQuery, and qUnit

11. Client-Side Templates

  • Application Scripts
  • Defining Tiles in scene.layoutservice.js
  • Creating Tiles in scene.statemanager.js
  • Creating Client-Side Templates
  • Rendering HTML into Tiles
  • Lab: Creating Tile Scripts and Templates

12. Retrieving JSON Data from the Server

  • jQuery Ajax Functions
  • Creating a Client-Side Data Service
  • Using Promises
  • Rendering JSON Data using Templates
  • Lab: Retrieving JSON Data and Rendering Tiles

13. HTML5 Technologies

  • Integrating HTML5 Video
  • Drawing with the HTML5 Canvas
  • Drawing with SVG
  • Lab: Integrating HTML5 Technologies

This class is intended for developers with existing experience building dynamic Web applications with one or more years of experience working with Web technologies including JavaScript, CSS, C# and HTML. To get the most out of this class, students should feel comfortable writing C# code.


This class is for developers who are comfortable working with C# and familiar with JavaScript. It is required that attendees have a minimum of one or more years of hands-on experience working with Web technologies including JavaScript, CSS, and HTML. Students must also have a minimum of one or more years of hands-on experience working with the C# language. Developers new to .NET or Web technologies must take the following prerequisite courses first before taking this class due to its fast pace.

CS214: C#5 Programming with Visual Studio 2012
CS314: Advanced C#5 Programming with Visual Studio 2012
JQRY300: Mastering jQuery

In addition, it is recommended, but not required that students have completed the following courses or have equivalent experience:

HTML500: Web Development Training with HTML5 and CSS3
ASPMVC5: Microsoft ASP.NET MVC 5 Web Developer Training
CS410: C# Design and Application Patterns


What You Will Learn

After attending this course, students will be able to:

  • Create reusable projects in Visual Studio 2013
  • Integrate NuGet packages into projects
  • Unit testing fundamentals
  • Create a fakes assembly in Visual Studio 2013
  • How JSON data can be served to clients using the ASP.NET Web API
  • Database generation techniques with Entity Framework Code First
  • The role of code first migrations for handling changes to models and tables
  • The role of Fluent Mappings in the DbContext class
  • Benefits of the Repository Pattern for data access
  • How HTML5 Boilerplate can be integrated into ASP.NET MVC layout pages
  • Key JavaScript patterns that can be used to structure code
  • jQuery Ajax features and how promises can be used to detect success or failure
  • jQuery UI drag/drop features
  • How JSON data can be bound to Handlerbars templates to generate HTML on the client
  • JavaScript unit testing with qUnit
  • HTML5 technologies such as canvas and SVG
  • Much more…