Course Outline
ASP.NET MVC 5 Development Training Course ASPNETMVC5: 5 days Instructor Led
About this Course
ASP.NET MVC 5 is Microsoft's last MVC release based on both the .NET Framework or .NET Core 1.0 for building scalable, standards-based web applications using well-established design patterns and the power of ASP.NET and the .NET Framework. Version 5 of ASP.NET MVC adds many new features such as template- based views based on on the Bootstrap framework, attribute routing, support for Entity Framework 6, and more. This 5-day course spends Day 1 covering advanced C# and .NET framework topics most commonly used with ASP.NET MVC 5 including delegates, lambdas, anonymous objects, dynamic objects, LINQ, and much more. The remaining four days introduce and educate students on all the necessary ASP.NET MVC 5 skills needed to design and build well-architected web applications.
Note that Days 5 wraps up with a chapter and lab that introduces .NET Core, ASP.NET Core 1.0, MVC Core 1.0, and much more. During the course, attendees build a fully functional data-driven ASP.NET MVC web application through a series of hands-on lab exercises.
Prerequisites
Prior .NET experience and basic skills with HTML and JavaScript is assumed. Visual Studio 2012+ (Professional edition or greater). Note that students will be using Visual Studio 2015 Enterprise (classroom or virtual).
Learning Objectives
Learn advanced C# skills to more easily embrace the MVC framework including anonymous types, extension methods, partial types, anonymous methods, dynamic types, the Thread Parallel Library (TPL), the lambda operator, Language INtegrated Query (LINQ), and Entity Framework. Learn to understand the MVC design pattern and how it is applied in ASP.NET MVC. Learn to recognize the benefits and drawbacks of using ASP.NET MVC. Learn to make good decisions about application architecture and the choice of data access technology. Learn to use ASP.NET MVC's routing system to achieve a REST-style architecture. Learn to build a compelling and maintainable HTML user interface using the Razor view engine and client-side JavaScript. Learn Visual Studio scaffolding and how to take advantage of it for code generation. Learn to use C# attributes for validation and display data annotations and filters.
120 Wood Avenue South | Suite 405 www.ctgtraining.com 330 West 38th Street | Suite 301 Iselin, New Jersey 08830 732-635-9033 New York, New York 10018 Plus 47 other locations throughout the United States
Course Outline
Learn JavaScript references and bundling and minification. Learn routing with classical route table manipulation and the new MVC 5 attribute routing. Learn to add models, views, controllers, and areas to an MVC website. Learn the best practices of using ViewBag, ViewData, and TempData. Learn the three (3) MVC Helper objects and create custom helper extension methods. Learn the basics of using Bootstrap within your MVC application for responsive web design. Learn to use the new Web API framework to simplify the creation of HTTP services. Learn to gain experience with using adaptive rendering, mobile-specific views, and a view switcher to support a variety of mobile devices. Learn to create asynchronous controllers using TPL for greater control over the IIS thread pool. Learn to extend and modify ASP.NET MVC 5 by creating custom components and templates. Learn the best practices to deploying an ASP.NET MVC 5 website. Learn the new .NET Core 1.0 framework, ASP.NET Core 1.0, MVC 6, Task Runner, Startup.cs, Configuration, the wwwroot folder, and publishing.
Course Outline
Introduction
Goals of Modern Web Development ASP.NET MVC Model-View-Controller Design Pattern Basics of Unit Testing Convention Over Configuration Managing Dependencies Introduction to Case-Study Application for Labs
Routing
Request Pipeline Route Configuration RouteValueDictionary Route Constraints Writing a Custom Constraint with IRouteConstraint Catch-All Parameter Ignoring Routes Attribute Routing
120 Wood Avenue South | Suite 405 www.ctgtraining.com 330 West 38th Street | Suite 301 Iselin, New Jersey 08830 732-635-9033 New York, New York 10018 Plus 47 other locations throughout the United States
Course Outline
Controllers
Introduction Naming and Location Conventions Request Pipeline and Controller Factory IController and Controller Class Hierarchy ActionResult Convenience Methods
Models
Introduction
Data Access
Persistence Ignorance Moving from ADO.NET to EF Object-Relational Mapping (ORM) Frameworks Entity Framework Using Code First Data Annotations Application Initialization
Views
Introduction View Implementation with ViewContext WebViewPage View Engines and IView View Naming Convention Building a Custom View Engine Razor View Engine Syntax T4 View Templates Introduction to Bootstrap Framework Layouts Render Methods in Layouts
120 Wood Avenue South | Suite 405 www.ctgtraining.com 330 West 38th Street | Suite 301 Iselin, New Jersey 08830 732-635-9033 New York, New York 10018 Plus 47 other locations throughout the United States
Course Outline
Helpers
Introduction Three HTML Helper Objects Html Helpers Html.ActionLink() Url.Action() Strongly-Typed Helpers Helper Attributes Custom Helpers Inline Razor Helpers
Strongly-Typed Views
Introduction ViewData and ViewBag Creating Strongly-Typed Views Passing Model Objects Controller Inheritance
HTML Forms
Introduction, GET/POST Html Helpers Html.BeginForm() AntiForgery Token Validation
Action Selectors
Action Selectors HttpGet, HttpPost, etc. Multiple Accept Verbs Model Binding Default Model Binder Determining Valid Model State Using FormCollection UpdateModel() and TryUpdateModel()
120 Wood Avenue South | Suite 405 www.ctgtraining.com 330 West 38th Street | Suite 301 Iselin, New Jersey 08830 732-635-9033 New York, New York 10018 Plus 47 other locations throughout the United States
Course Outline
Partial Views
Partial Views Html.Partial() and Html.Action()
Child Actions
ChildActionOnly Attribute Display/Edit Data Annotations
ViewModels
Introduction Remote Attribute for Validation Model Binding Prefix Inheritance
Data Validation
Introduction Validation Attributes/Data Annotations ModelState IValidatableObject
Ajax
Introduction to jQuery jQuery Selectors Unobtrusive JavaScript Ajax Helpers ActionLink() and BeginForm() AjaxOptions jQuery UI
Introduction Datepicker Widget Autocomplete Widget Other Front-End Frameworks
120 Wood Avenue South | Suite 405 www.ctgtraining.com 330 West 38th Street | Suite 301 Iselin, New Jersey 08830 732-635-9033 New York, New York 10018 Plus 47 other locations throughout the United States
Course Outline
Action Filters
Introduction OutputCache HandleError RequireHttps Authorization Global Filters Custom Filters
Asynchronous Controller Actions
Introduction IIS Thread Pool Threads Example: Sync vs. Async Timeouts
Mobile Clients
Introduction Bootstrap and RWD Overriding Views .Mobile Views Custom Client Views jQuery Mobile
Web API
Introduction ApiController Four HTTP Verbs and CRUD Action Parameters Exceptions Configuration Routing Model Binding Formatters Status Codes
120 Wood Avenue South | Suite 405 www.ctgtraining.com 330 West 38th Street | Suite 301 Iselin, New Jersey 08830 732-635-9033 New York, New York 10018 Plus 47 other locations throughout the United States
Course Outline
Security
Authentication Cross-Site Scripting (XSS) Cross-Site Request Forgery (CSRF) Over-Posting
Deployment
Introduction Web.config Transformations IIS Best Practices
Introduction to ASP.NET Core 1.0
The Design of ASP.NET Core Visual Studio Projects The wwwroot folder Application Configuration Task Runner Explorer Startup.cs ASP.NET MVC 6 and Web API Publishing ASP.NET Core Applications
120 Wood Avenue South | Suite 405 www.ctgtraining.com 330 West 38th Street | Suite 301 Iselin, New Jersey 08830 732-635-9033 New York, New York 10018 Plus 47 other locations throughout the United States