Developing ASP.NET Core MVC Web Applications - M20486 Course Outline

(5 Days) - Learning Credits Accepted

Overview

In this 5-day course, the professional web developers will learn to develop advanced ASP.NET Core MVC applications using .NET Core tools and technologies. The focus will be on coding activities that enhance the performance and scalability of the Web site application. This course will also prepare the student for exam 70-486.

Audience Profile

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.

Prerequisites

Before attending this course, students must have:

  • Experience with Visual Studio 2017.
  • Experience with C# programming, and concepts such as Lambda expressions, LINQ, and anonymous types.
  • Experience in using the .NET Framework.
  • Experience with HTML, CSS and JavaScript.
  • Experience with querying and manipulating data with ADO.NET.
  • Knowledge of XML and JSON data structures.

At Course Completion

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.
  • Configure the pipeline of ASP.NET Core web applications using middleware, and leverage dependency injection across MVC application.
  • Add Controllers to an MVC Application to manage user interaction, update models, and select and return Views.
  • Develop a web application that uses the ASP.NET Core routing engine to present friendly URLs and a logical navigation hierarchy to users.
  • Create Views in an MVC application that display and edit data and interact with Models and Controllers.
  • Create MVC Models and write code that implements business logic within Model methods, properties, and events.
  • Connect an ASP.NET Core application to a database using Entity Framework Core.
  • Implement a consistent look and feel across an entire MVC web application.
  • Write JavaScript code that runs on the client-side and utilizes the jQuery script library to optimize the responsiveness of an MVC web application.
  • Add client side packages and configure Task Runners.
  • Run unit tests and debugging tools against a web application in Visual Studio 2017.
  • Write an MVC application that authenticates and authorizes users to access content securely using Identity.
  • Build an MVC application that resists malicious attacks.
  • Use caching to accelerate responses to user requests.
  • Use SignalR to enable two-way communication between client and server.
  • Describe what a Web API is and why developers might add a Web API to an application.
  • Describe how to package and deploy an ASP.NET Core MVC web application from a development computer to a web server.

Course Outline

Module 1: Exploring ASP.NET Core MVC

Microsoft ASP.NET Core MVC and the other web technologies of the ASP.NET Core can help you create and host dynamic, powerful, and extensible web applications. ASP.NET Core, of which ASP.NET Core MVC is part, is an open-source, cross-platform framework that allows you to build web applications. You can develop and run ASP.NET Core web applications on Windows, macOS, Linux, or any other platform that supports it. ASP.NET Core MVC supports agile, test-driven development cycle. It also allows you to use the latest HTML standard and Front-End frameworks such as Angular, React, and more.

Lessons

  • Overview of Microsoft Web Technologies
  • Overview of ASP.NET 4.x
  • Introduction to ASP.NET Core MVC

Lab : Exploring ASP.NET Core MVC

  • Exploring a Razor Pages Application
  • Exploring a Web API Application
  • Exploring an MVC Application

After completing this course, students will be able to:

  • Understand the variety of technologies available in the Microsoft web stack.
  • Describe the different programming models available for developers in ASP.NET.
  • Choose between ASP.NET Core and ASP.NET 4.x.
  • Describe the role of ASP.NET Core MVC in the web technologies stack, and how to use ASP.NET Core MVC to build web applications.
  • Distinguish between MVC models, MVC controllers, and MVC views.

Module 2: Designing ASP.NET Core MVC Web Applications

Microsoft ASP.NET Core MVC is a programming model that you can use to create powerful and complex web applications. However, all complex development projects, and large projects in particular, can be challenging and intricate to fully understand. Without a complete understanding of the purposes of a project, you cannot develop an effective solution to the customer’s problem. You need to know how to identify a set of business needs and plan the Model-View-Controller (MVC) web application to meet those needs. The project plan that you create assures stakeholders that you understand their requirements and communicates the functionality of the web application, its user interface, structure, and data storage to the developers. By writing a detailed and accurate project plan, you can ensure that the powerful features of MVC are used effectively to solve the customer’s business problems.

Lessons

  • Planning in the Project Design Phase
  • Designing Models, Controllers and Views

Lab : Designing ASP.NET Core MVC Web Applications

  • Planning Model Classes
  • Planning Controllers
  • Planning Views
  • Architecting and MVC Web Application

After completing this module, students will be able to:

  • Plan the overall architecture of an ASP.NET Core MVC web application and consider aspects such as state management.
  • Plan the models, controllers, and views that are required to implement a given set of functional requirements.

Module 3: Configure Middlewares and Services in ASP.NET Core

ASP.NET Core is a framework that allows us to build many different kinds of applications. In this module, you will learn how to leverage the ASP.NET Core framework to handle requests and responses via existing, and custom middleware, and how to configure services for use in middleware and throughout other parts of the application, such as controllers. A middleware is a segment of code that can be used as part of the request and response pipeline that allows us to handle them according to any relevant parameter. This potentially allows multiple separate requests to be handled in a completely different fashion and receive separate responses. Services are classes that expose functionality which you can later use throughout different parts of the application, without having to keep track of scope manually in each individual location and instantiate any dependencies. This is done by using Dependency Injection. Dependency Injection is a technique used by ASP.NET Core that allows us to add dependencies into the code without having to worry about instantiating objects, keeping them in memory, or passing along required dependencies. This allows the application to become more flexible and to reduce potential points of failure whenever you change a service.

Lessons

  • Configuring Middlewares
  • Configuring Services

Lab : Configuring Middleware and Services in ASP.NET Core

  • Working with Static Files
  • Creating custom middleware
  • Using dependency injection
  • Injecting a service to a controller

After completing this module, students will be able to:

  • Use existing middleware to set up an ASP.NET Core application.
  • Create your own middleware and use it to define custom behavior.
  • Understand the basic principles behind Dependency Injection, and how it is used in ASP.NET Core.
  • Know how to create a custom service, configure its scope, and inject it to both middleware and ASP.NET Core MVC controllers.

Module 4: Developing Controllers

ASP.NET Core MVC is a framework for building web applications by using the Model-View-Controller (MVC) architectural pattern. The controller is essentially responsible for processing a web request by interacting with the model and then passing the results to the view. The model represents the business layer, sometimes referred to as the domain, and may include data objects, application logic, and business rules. The view uses the data that it receives from the controller to produce the HTML or other output that is sent back to the browser. In this module, you will learn how to develop controllers. Controllers are central to MVC applications. Understanding how controllers work is crucial to being able to create the appropriate model objects, manipulate them, and pass them to the appropriate views. A controller is a class. It contains several methods. These methods are called actions. When an MVC application receives a request, it finds which controller and action should handle the request. It determines this by using Uniform Resource Locator (URL) routing. URL routing is another very important concept necessary for developing MVC applications. The ASP.NET Core MVC framework includes a flexible URL routing system that enables you to define URL mapping rules within your applications. To maximize the reuse of code in controllers, it is important to know how to write action filters. You can use action filters to run code before or after every action in your web application, on every action in a