Course Overview

This .NET Core training course begins with a general introduction to the architecture of .NET Core, and the tools and deployment options for building any type of application. The course then focuses on various aspects of writing a large-scale server application in .NET Core.  Web development requires a thorough understanding of ASP.NET Core, so the class includes coverage of the anatomy of an ASP.NET core application, the built-in dependency injection mechanism, and the startup and middleware code necessary for writing a loosely coupled server application.  Modern server applications are required to manage large amounts of data, which necessitates coverage of configuration and data access using Entity Framework Core and the Repository and Unit of Work Patterns.  Testing is another critical aspect of the software development process, so the course presents the de facto testing frameworks for .NET Core, xUnit and Moq.  For web UI development, the new view features in MVC, tag helpers and view components, provide a much cleaner markup syntax.  Finally, the course concludes with a discussion of how to migrate an existing .NET application to .NET Core, and how to use Visual Studio’s built-in support for the modern web tools, Gulp, Grunt, and Bower.

Key Learning Areas

  • What is .NET Core and why write applications for it?
  • How to use both the command line and Visual Studio to develop for .NET Core
  • The deployment options for a .NET Core application
  • The structure of an ASP.NET Core application
  • Dependency Injection in ASP.NET Core
  • The new way of specify and parsing configuration settings
  • The differences between Entity Framework and Entity Framework Core
  • Best practices for data access in .NET Core using Repository and Unit of Work Patterns
  • Startup and middleware code in ASP.NET Core
  • How to unit test an ASP.NET Core controller using xUnit , Moq, and the new in memory database
  • The new MVC Core view features: tag helpers and view components
  • Migrating a .NET framework application to .NET Core
  • How to effectively use familiar web tools, specifically gulp, grunt & bower, in Visual Studio

Course Outline

.NET Core Introduction and Architecture

  • What is .NET Core?
  • Building a .NET Core application
  • Building a .NET Core library
  • Deploying a .NET Core application

ASP.NET Core

  • Anatomy of an ASP.NET Core application
  • Startup and middleware

Dependency Injection in ASP.NET Core

  • Creating services and injecting them into a web application

Configuration

  • Initialization and retrieval from .NET Core configuration files
  • Binding and reloading

Data Access

  • Entity Framework Core
  • Repository and Unit of Work patterns

Unit Testing

  • xUnit and Moq
  • Testing an ASP.NET Core Controller

ASP.NET Core MVC View Features

  • Tag helpers
  • View Components

Migrating from .NET to .NET Core

  • Strategies and tools for porting an existing application
  • Discontinued technologies in .NET Core
  • Porting an ASP.NET Controller to .NET Core

Using Visual Studio with web development tools

  • Gulp
  • Grunt
  • Bower

Who Benefits

This class introduces developers who are already familiar with .NET and web development to the new features and best practices of developing for .NET Core.  The primary emphasis is on presenting what is new in .NET Core and on highlighting the differences versus .NET Framework.

Prerequisites

The expected audience for this course is C# developers with at least 6 months experience.