ASP.NET Core 3 Development

4 Days

ASP.NET Core 3 is the latest release of Microsoft’s cross-platform version of its ASP.NET Web development framework. This ASP.NET Core 3 Development training introduces attendees to ASP.NET Core development and teaches the skills necessary to design and build well-architected web and service-oriented applications that follow the MVC design pattern.
Note: This 4-day training course can be extended to five days with additional topics related to the C# programming language or Entity Framework Core.

Goals
  1. Understand the goals and benefits of the .NET Core platform
  2. Learn to make good decisions about application architecture and the choice of data access technology
  3. Use ASP.NET Core's routing system to achieve a REST-style architecture
  4. Learn how to build a compelling and maintainable HTML user interface using the Razor view engine and client-side JavaScript
  5. Gain experience using Blazor, Razor Pages, SignalR, and gRPC
  6. Learn how to extend and modify ASP.NET Core by creating custom components and templates
  7. Understand the different cross-platform deployment options available including via Docker containers
Outline
  1. Introduction
    1. What is .NET Core?
    2. .NET Core vs. Full Framework
    3. Overview of ASP.NET Core
  2. .NET Core SDK
    1. Installation
    2. Version Management
    3. Command-Line Interface (CLI)
    4. Hello World Application
  3. ASP.NET Core Application Architecture
    1. NuGet Packages and Metapackages
    2. Application Startup
    3. Hosting Environments
    4. Middleware and the Request Processing Pipeline
    5. Services and Dependency Injection
    6. MVC vs. Razor Pages
  4. Application Configuration
    1. Configure and ConfigureServices
    2. Configuration Providers and Sources
    3. Configuration API
    4. Options Pattern
    5. HTTPS and HTTP/2
  5. Request Routing
    1. RESTful Services
    2. Endpoint Routing
    3. Route Templates
    4. Route Constraints
    5. Attribute-Based Routing
  6. Models
    1. Persistence Ignorance
    2. Object-Relational Mapping
    3. Entity Framework (EF) Core
    4. Dapper ORM
  7. Controllers
    1. Responsibilities
    2. Requirements and Conventions
    3. Dependencies
    4. Action Results
  8. Views
    1. Responsibilities
    2. Conventions
    3. Razor Syntax
    4. Layouts
    5. ViewData and ViewBag
    6. Strongly-Typed Views
    7. Partial Views
    8. HTML and URL Helpers
    9. Tag Helpers
    10. View Components
    11. Client-Side Dependencies
    12. Razor Pages
    13. View Models
  9. HTML Forms
    1. Form Tag Helper
    2. Input Tag Helper
    3. Select Tag Helper
    4. Form Submissions
    5. Model Binding
  10. Data Validation
    1. Introduction
    2. Data Annotations
    3. Model Binding
    4. Input Tag Helpers
    5. Validation Tag Helpers
  11. Application State
    1. Client-Side vs. Server-Side
    2. HttpContext.Items
    3. Session State
    4. TempData
  12. Error Handling
    1. Best Practices
    2. HTTP Error Status Codes
    3. Status Code Pages
    4. Developer Exception Page
    5. Exception Filters
  13. Logging
    1. Configuration
    2. ILogger
    3. Serilog and Seq
  14. Testing
    1. Unit Testing
    2. xUnit
    3. Testing Controllers
    4. Integration Testing
  15. Authentication
    1. Introduction
    2. ASP.NET Core Identity
    3. Cookie Middleware
    4. Authorization
    5. Claims-Based Authorization
  16. Web APIs
    1. API Controllers
    2. Testing APIs
    3. CRUD Operations
    4. OpenAPI (Swagger)
    5. Cross-Origin Resource Sharing (CORS)
  17. Remote Procedure Calls (RPC)
    1. Introduction
    2. Protobuf
    3. Server
    4. Client
    5. Limitations
  18. Blazor
    1. Razon Components
    2. Blazor Server
    3. Blazor WebAssembly
  19. Deployment
    1. dotnet publish
    2. Kestrel
    3. IIS
    4. Docker
  20. Conclusion
Class Materials

Each student in our Live Online and our Onsite classes receives a comprehensive set of materials, including course notes and all the class examples.

Class Prerequisites

Experience in the following is required for this ASP.NET class:

  • Previous experience developing web-based applications with C#.
  • Some familiarity with HTML, CSS, and JavaScript.