3 days
					Training Overview
					This 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 includes with 
					an introduction to ASP.NET Web API and concludes with deployment 
					to Windows Azure. An appendix covers deployment on IIS 7.5
					Numerous programming examples and exercises are provided. The 
					student will receive a comprehensive set of notes and all the 
					programming examples.
					
						Learning Objectives
					
						- Gain a thorough understanding of the philosophy and architecture of Web applications using ASP.NET MVC
- Acquire a working knowledge of Web application development using ASP.NET MVC 5 and Visual Studio 2013
- Access databases using ADO.NET, LINQ, and Entity Framework 6
- Perform automated testing of Web applications created using ASP.NET MVC and the built-in Visual Studio Unit Test Framework
- Implement security in ASP.NET MVC applications
- Combine ASP.NET MVC and Web Forms when appropriate
- Create HTTP services using ASP.NET Web API 2
- Deploy ASP.NET MVC applications to the Windows Azure cloud
						Prerequisites
					The student should have a good working knowledge of C# 
					and the .NET Framework. Basic knowledge of ASP.NET and 
					HTML is also required. 
					
						Training Outline
					
						- 
							Introduction to ASP.NET MVC
							
								- Review of ASP.NET Web Forms
- Advantages and Disadvantages of Web Forms
- Model-View-Controller Pattern
- ASP.NET MVC
- Advantages and Disadvantages of ASP.NET MVC
- Unit Testing
 
- 
							Getting Started with ASP.NET MVC
							
								- Installing ASP.NET MVC
- Using Visual Studio
- Hello World for ASP.NET MVC
- Rendering Views
- Razor View Engine
- Dynamic Output
 
- 
							ASP.NET MVC Architecture
							
								- The Controller in ASP.NET MVC
- The View in ASP.NET MVC
- The Model in ASP.NET MVC
- Helper Methods for HTML
- Form Submission
- Model Binding
- Input Validation
 
- 
							The Model
							
								- Microsoft Technologies for the Model
- ADO.NET
- LINQ
- ADO.NET Entity Framework 6
- CRUD Operations
- NuGet Package Manager
 
- 
							The Controller
							
								- IController Interface
- Controller Base Class
- Actions
- Retrieving Data from a Request
- Action Results
- Action Attributes
- Filters
- Asynchronous Controllers
 
- 
							The View
							
								- View Responsibility
- Using ViewBag
- Using Dynamic Objects
- Html Helpers
- Validation Attributes
 
- 
							Routing
							
								- Routing in ASP.NET MVC
- Properties of Routes
- Parameters in Routing
- Registering Routes
- Debugging Routes
 
- 
							8.	Unit Testing
							
								- Test-Driven Development
- Test Automation
- Refactoring
- Visual Studio Unit Test Framework
- Test Cases
- Test Classes
- Test Runners
- Testing ASP.NET MVC Applications
- Dependency Injection
- Mocking Frameworks
- Inversion of Control Containers
 
- 
							9.	Security
							
								- Input Forgery
- Cross-Site Scripting
- Session Hijacking
- Cross-site Request Forgery
- SQL Injection
- Using the MVC Framework Securely
 
- 
							10.	Combining ASP.NET MVC and Web Forms
							
								- Using Web Forms in an MVC Application
- Using MVC in a Web Forms Application
 
- 
							11.	ASP.NET Web API
							
								- ASP.NET Web API
- Representational State Transfer
- REST and Web API
- HTTP Services Using Web API
- Using Fiddler
- ASP.NET Web API Clients
- CRUD Operations
 
- 
							12.	Deployment on Windows Azure
							
								- What Is Windows Azure?
- A Windows Azure Testbed
- Deploying an Application to Azure
- Updating an Application on Azure
 
- 
							Appendix A. Learning Resources
						
- 
							Appendix B. Deployment in IIS 7.5
							
								- IIS 7.5
- MVC with IIS 7.5
- XCOPY Deployment
 
						System Requirements
					Required software is Visual Studio 2013, which includes 
					the LocalDB version of SQL Server. The preferred operating 
					system is Windows 7. Several free tools are also used. 
					These can all be downloaded from the Web. The last chapter 
					requires a connection to the Internet, a Windows Azure 
					account (a free trial account is available from Microsoft) 
					and the Windows Azure SDK. See the course Setup Notes for 
					details.
					A good minimal hardware profile for this course would 
					have a 1.8 GHz or equivalent CPU, 2 GB of RAM, and at 
					least 10 GB of free disk space for tools installation 
					and courseware.