ASP.NET MVC 5 Using C# Training

Answers to Popular Questions:

Yes, this class can be tailored to meet your specific training needs.
Yes, we provide .NET consulting services.
Yes, group discounts are provided.

Course Description

This 3 day course provides a practical hands-on introduction to developing Web applications using ASP.NET MVC 5 and C#. This Web development framework from Microsoft emphasizes separation of concerns in the architecture and testability of applications. The course includes coverage of the Razor View Engine, Entity Framework 6 and ASP.NET Web API 2. It also introduces Windows Azure and the deployment of ASP.NET MVC applications to the Azure cloud. The course covers the fundamentals of the Model-View-Controller design pattern and its implementation in ASP.NET MVC. This technology is compared with classical ASP.NET Web Forms. The two technologies share a common ASP.NET infrastructure. Visual Studio 2013 with .NET 4.5.1 is used as a productive platform for creating ASP.NET MVC applications. After presenting the fundamentals of the technology with several examples, the main components of Model, Controller and View are covered in detail. The discussion of the Model incorporates modern Microsoft data access technologies, including LINQ and ADO.NET Entity Framework 6. The routing mechanism of ASP.NET MVC is covered. The course introduces automated unit testing of Web applications, one of the chief advantages of the new technology. Security is covered, with some hands-on illustrations of attacks and defenses against them. The course includes a discussion of how ASP.NET MVC and Web Forms can be used together in the same application. The course also includes an introduction to ASP.NET Web API and concludes with deployment to Windows Azure. An appendix covers deployment on IIS 7.5
Course Length: 3 Days
Course Tuition: $1390 (US)


Good working knowledge of C# and the .NET Framework. Basic knowledge of ASP.NET and HTML is also required.

Course Outline


1. Introduction to ASP.NET MVC
Review of ASP.NET Web Forms
Advantages and Disadvantages of Web Forms
Model-View-Controller Pattern
Advantages and Disadvantages of ASP.NET MVC
Goals of ASP.NET MVC
Unit Testing

2. Getting Started with ASP.NET MVC
An ASP.NET MVC 5 Testbed
Starter Application
Simple App with Controller Only
Action Methods and Routing
Action Method Return Type
Rendering a View
Creating a View in Visual Studio
The View Web Page
Dynamic Output
Razor View Engine
Embedded Scripts
Using a Modelwith a ViewBag
Controller Using the Model & ViewBag
View Using the Model and ViewBag
Using Model Directly
A View Using Model in Visual Studio
View Created by Visual Studio
Passing Parameters in Query String

3. ASP.NET MVC Architecture
The Controller in ASP.NET MVC
The View in ASP.NET MVC
The Model in ASP.Net MVC
How MVC Works
Using Forms
HTML Helper Functions
Handling Form Submission
Model Binding
Greet View
Input Validation
Nullable Type
Checking Model Validity
Validation Summary

4. The Model
Microsoft Technologies for the Model
SmallPub Database
Language Integrated Query (LINQ)
ADO.NET Entity Framework
SmallPub Tables
SmallPub Entity Data Model
Entity Data Model Concepts
Querying the EDM
Class Diagram
Context Class
List of Categories
List of Books
A LINQ Query
Using a Parameter
Modifying a Data Source
Entity Framework in a Class Library
Data Access Class Library
Client Code
ASP.NET MVC Database Clients
NuGet Package Manager
Visual Studio Extensions
Online Gallery
Entity Framework 6 via NuGet

5. The Controller
IController Interface
A Low Level Controller
Displaying Context
Add and Subtract
Controller Base Class
Action Methods
Math Controller
Invoking MathController
Receiving Input
Non-Nullable Parameters
Nullable Parameters
Using a Model
HTML Output
Asynchronous Controllers

6. The View
Action Results
JavaScript Object Notation
Action Method Attributes
View Responsibility
A Program without a View
A Program with a View
View Page
Passing Data to the View
Passing Lists to the View
HTML Helper Methods
Link-Building Helpers
Form Helpers
Validation Helpers
Templated Helpers
Validation in Model
Validation in Controller
ValidationMessage Helper

7. Routing
ASP.NET Routing
Routing in ASP.NET MVC
RouteCollectionExtensions Class
Default Values for URL Parameters
Using a Default Route
Home Controller
Assigning Parameter Values
Controller Code
View Code
Properties of Routes
UrlParameter Optional
A Problem with the Route Map
Matching URLs to Route
Route Debugging Utility
Multiple Matches
Fixing the Bug
Debugging Routes

8. Unit Testing
Test-Drive Development
Functional Tests
Unit Tests
Test Automation
Regression Testing
Unit Testing in ASP.NET MVC
Installing UNnit via NuGet
A Test Class Library
The Model
Testing the Model
Structure of Unit Tests
Visual Studio Unit Framework
Assert Class
CollectionAssert Class
StringAssert Class
Test Case
Test Methods, Class, Runner
Ignoring Tests
Fixing the Bug
Testing Controllers
Classes with External Dependencies
Dependency Injection
Mocking Frameworks
Using Moq
Index View
Monthly Payment View
Unit Tests
Inversion of Control (IoC) Containers

9. Security
Web Security
Input Forgery
Cross-Site Scripting
Entering JavaScript
The Attack
What Allowed the Attack
Blocking the Attack
Using Razor
Session Hijacking
Cross-Site Request Forgery
Controller and Model Code
View Code
Attacker Code
The Defense
SQL Injection
Using the MVC Framework Securely
Authorize Attribute
ChildAction Only Attribute
RequireHttps Attribute
ValidateInput Attribute

10. Combining ASP.NET MVC and Web Forms
Using Web Forms in an MVC
Linking and Redirecting from Web
Forms Pages to MVC Actions
Sharing Data between ASP.NET MVC and
ASP.NET Web Forms
Using Web Form Controls in MVC
Using MVC in a Web Forms Application
Steps to Create Hybrid MVC-Web
Forms Application
Web Forms MVC Interop in VS 2013

Representation, State and Transfer
Collections and Elements
Specifying a Start Page
Implementing PUT Verb
Using Fiddler
Composing a Request
Route Registration
HTTP Response Codes
POST Response Code
Web API Clients
Initializing HttpClient
Issuing a GET Request
Issuing a POST Request
Performing CRUD Operations
Book Repository
Exercise the Server Using Fiddler
Client Code: Book Class, Program Class
Update and Delete

12. Deployment on Windows Azure
What is Windows Azure?
A Windows Azure Testbed
Publish to Azure
Import Publish Settings
Manage Azure Subscriptions
Sign into Windows Azure
Download Subscripion File
New Publish Settings
Create a Site on Windows Azure
Web Deployment Completed
Modifying a Web Application
Publish to a New Site
Deploy to Original Site
Publish Preview

13. Appendix A: Learning Resources

14. Appendix B: Deployment in IIS 7.5
Internet Information Services
Installing IIS 7.5
MVC with IIS 7.5
.NET Framework Version
Registering ASP.NET
Convert to an Application
XCOPY Deployment

Course Directory [training on all levels]

Upcoming Classes