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  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  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