- Course number: NET-602
- Duration: 3 days
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.
Each student receives a printed copy of all the material presented by the instructor.
Each student receives a lab manual consisting of a series of hands-on lab exercises that take students through the building of a data-driven 3-tier ASP.NET Core Web API.
The instructor receives a electronic version of the material suitable for presentation during class and a guide with recommended timing and additional information related to the hands-on lab exercises.
Prior .NET experience and basic skills with HTML and JavaScript is assumed.
.NET 6 SDK
Visual Studio 2022 (any edition)
Postman application (www.getpostman.com)
Lab file bundle provided with the course
-
Introduction
- Evolution of .NET and .NET Core
- .NET SDKs 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
- OpenAPI / Swagger
- Testing APIs
- Content Negotiation
- CRUD Operations
- Patch Requests
- Cross-Origin Resource Sharing (CORS)
-
Data Validation
- Introduction
- Data Annotations
- Model Binding
-
Error Handling
- Best Practices
- HTTP Error Status Codes
- Developer Exception Page
-
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)
- Introduction
- Protobuf
- Server
- Client
- Limitations
-
Deployment
- dotnet publish
- Kestrel
- IIS
- Docker
- Conclusion