Web API Development with ASP.NET Core 6 (ASPNETTL502)
Course Length: 3 days
Delivery Methods:
Available as private class only
Course Overview
This ASP.NET Core 6 training course teaches attendees how to design and build high-performance, secure, well-architected REST APIs that can be consumed by a variety of clients. This course focuses specifically on APIs and does not include coverage of web UI topics such as Views and Razor Pages. An introduction to Blazor is included but it is not covered in-depth.
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.
Course Benefits
- Understand the goals and benefits of ASP.NET Core 6.0.
- Learn to make good decisions about application architecture and data access technology.
- Use ASP.NET’s routing system to achieve a REST-style architecture.
- Gain experience building a service that makes data available via a modern web API.
- Learn best practices for employing unit testing, logging, and error handling.
- Understand different authentication choices for securing a web API.
- Get an introduction to Blazor and gRPC.
- Understand the different cross-platform deployment options available including via Docker containers.
Course Outline
- Introduction
- Evolution of .NET and .NET Core
- .NET SKDs and Runtimes
- Visual Studio and Visual Studio Code
- .NET 6.0 SDK
- Installation
- Version Management
- Command-Line Interface (CLI)
- What’s New in C#
- Record Types
- Init Only Setters
- Nullable Reference Types
- Global Using Directives
- File-Scoped Namespace Declarations
- Top-Level Statements
- ASP.NET Core Application Architecture
- NuGet Packages
- Application Startup
- Hosting Environments
- Middleware and the Request Pipeline
- Services and Dependency Injection
- Application Configuration
- Configuration Providers and Sources
- Configuration API
- Options Pattern
- HTTPS and HTTP/2
- Request Routing
- RESTful Services
- Endpoint Routing
- Route Templates
- Route Constraints
- Route Template Precedence
- Attribute-Based Routing
- Models
- Persistence Ignorance
- Dependency Inversion
- Asynchronous Data Access
- Object-Relational Mapping
- Entity Framework Core
- Dapper ORM
- Controllers
- Responsibilities
- Requirements and Conventions
- Dependencies
- Action Results
- ApiController Attribute
- Web APIs
- API Controllers
- Minimal APIs
- OpenAPI / Swagger
- Testing APIs
- Content Negotiation
- CRUD Operations
- Patch Requests
- Microservice Architecture
- API Gateway Pattern
- Cross-Origin Resource Sharing (CORS)
- Data Validation
- Data Annotations
- Model Binding
- Error Handling
- Best Practices
- HTTP Error Status Codes
- Exception Handling Middleware
- Logging
- Configuration
- ILogger
- Serilog and Seq
- Testing
- Unit Testing
- xUnit
- Testing Controllers
- Integration Testing
- Security
- Authentication
- ASP.NET Identity
- Authorization
- Web API Authentication
- JSON Web Tokens (JWT)
- OAuth 2.0 and OpenID Connect
- Secrets Management
- Remote Procedure Calls (gRPC)
- Protobuf
- Server
- Client
- Limitations
- Blazor
- Razor Components
- Blazor Server
- Blazor WebAssembly
- Deployment
- dotnet publish
- Kestrel
- IIS
- Docker
Class Materials
Each student will receive 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.
Prerequisite Courses
Courses that can help you meet these prerequisites:
Live Private Class
- Private Class for your Team
- Live training
- Online or On-location
- Customizable
- Expert Instructors