ASP.NET MVC 5 Development
In this course, students will learn to develop advanced ASP.NET MVC applications using .NET Framework tools and technologies. The focus will be on coding activities that enhance the performance and scalability of a web application. ASP.NET MVC will be introduced and compared with Web Forms so that students know when each should/could be used. This course will also prepare the students for exam 70-486.
After completing this course, students will be able to:
- Describe the Microsoft Web Technologies stack and select an appropriate technology to use to develop any given application.
- Design the architecture and implementation of a web application that will meet a set of functional requirements, user interface requirements, and address business models.
- Create MVC Models and write code that implements business logic within Model methods, properties, and events.
- Add Controllers to an MVC Application to manage user interaction, update models, and select and return Views.
- Create Views in an MVC application that display and edit data and interact with Models and Controllers.
- Run unit tests and debugging tools against a web application in Visual Studio and configure an application for troubleshooting.
- Develop a web application that uses the ASP.NET routing engine to present friendly URLs and a logical navigation hierarchy to users.
- Implement a consistent look and feel, including corporate branding, across an entire MVC web application.
- Use partial page updates and caching to reduce the network bandwidth used by an application and accelerate responses to user requests.
- Implement a complete membership system in an MVC web application.
- Build an MVC application that resists malicious attacks and persists information about users and preferences.
- Describe how to write a Microsoft Azure web service and call it from and MVC application.
- Describe what a Web API is and why developers might add a Web API to an application.
- Modify the way browser requests are handled by an MVC application.
- Describe how to package and deploy an ASP.NET MVC web application from a development computer to a web server for staging or production.
This course is intended for professional web developers who use Microsoft Visual Studio in an individual-based or team-based, small-sized to large development environment. Candidates for this course are interested in developing advanced web applications and want to manage the rendered HTML comprehensively. They want to create websites that separate the user interface, data access, and application logic.
Before attending this course, students must have a minimum of two to three years of experience developing web-based applications by using Microsoft Visual Studio and Microsoft ASP.NET, proficiency in using the .NET Framework, and some familiarity with the C# language.
Delegates, Anonymous Methods, and Lambdas
Extension Methods, Anonymous Types, and Dynamic Types
• Understanding extension methods • Using extension methods in ASP.NET MVC 5 • Understanding Anonymous Types • Using Anonymous Types in ASP.NET MVC 5 • Understanding the dynamic keyword • Using dynamic Types in ASP.NET MVC 5 • Introduction to the Task Parallel Library (TPL) • Using the TPL in ASP.NET MVC 5
Introduction to LINQ
• Understand the motivation behind LINQ • Visual Studio LINQ support • Debugging LINQ query expressions • Work with query operators and query expressions • Program with LINQ to Objects • Understand deferred and immediate execution • Know the role of the System.Linq.Enumerable type • Know the role of the System.Func delegate type • Understanding the query operators / delegates / lambda relationship
Introduction to ASP.NET MVC 5
ASP.NET MVC Architecture
• ASP.NET Platform • Controllers, Models, and Views • URL Routing • Controller Actions • Razor View Engine • Extensibility
Defining the Model
• Persistence Ignorance • Repository Pattern • Object Relational Mapping (ORM) • Entity Framework • Using an IoC Container
Routes and URLs
• Introduction to Routing • Defining Routes • Route Evaluation • The Controller Factory • Constraints • Exempting URLs • Constructing Outgoing URLs • Unit Testing Routes
Controllers and Actions
• IController, ControllerBase, and Controller • Defining Actions • Action Selectors • Action Filters • HTTP Verbs • HttpContext and RouteData • Maintaining Testability • Returning Data with ActionResult • Parameters and the Model Binder • Asynchronous Action Methods
• View Engines • Templates and Scaffolding • Bootstrap Framework • Razor Syntax • ViewData and ViewBag • Strongly-Typed Views • Layout Pages • Custom Sections • Partial Views • Child Actions • Using a ViewModel Object
• Basic Helpers • Strongly-Typed Helpers • Creating Custom Helpers • Declarative Helpers
• Data Annotations • Validation HTML Helpers • ModelState • IValidatableObject • Client Side Validation
Authentication and Authorization
• ASP.NET Identity • Using Windows Authentication • Building a Custom Account Controller • Configuring Forms Authentication • Using the Authorize Attribute • Authentication Filters • OAuth2 and OpenID
• Controller Actions for Ajax • Ajax Helpers • Unobtrusive Ajax • Ajax with jQuery
Web API 2
• Using HTTP as an Application Protocol • Content Negotiation • Routing • Attribute Routing • ApiController • MediaTypeFormatters • Cross Origin Resource Sharing (CORS) • Open Web Interface for .NET (OWIN) • Web API OData
Building a Rich Client-Side UI
• jQuery UI • jQuery Templates
• CSS 3 Media Queries • Responsive vs. Adaptive • Mobile-Specific Views • Using a View Switcher
Customizing and Extending ASP.NET MVC
• ASP.NET MVC Pipeline • Advanced Routing • Custom Global Filters • Customizing MVC Code Templates • Creating a Custom Controller Factory
• Server Requirements • Configuration Options