This course is meant for C# API Developers with some experience building HTTP-based APIs.
This course builds upon the material from the Web API 100 Course, and is intended to extend the knowledge and skills developers have received from that course and their subsequent project work.
A lot of this course is about "solving problems" you might encounter in API development, including frequent requirement changes, "errors in production", and performance demands.
This four-day course will prepare developers to HTTP-based APIs using Microsoft's .NET Platform (Currently .NET 9).
The class will include periods of lecture, "Code With Me", and short practice exercises. In addition, two multi-hour labs will be included to help developers integrate the concepts from the class.
Dedicated time will be allocated daily for questions and one-on-one code reviews.
This course is for software developers using C# and .NET to create APIs using ASP.NET MVC. It is expected the developers are proficient with C#, and have an understanding of DevOps practices like CI/CD, configuration management, and containers.
This course builds upon the Web API 100 course.
The purpose of this course is to provide developers with the skills and knowledge to design, plan, create and deploy services that expose an HTTP interface using .NET. At the conclusion of this class, developers will be able to:
- Modify the ASP.NET MVC Runtime for Performance
- Instrument Your API with Open Telemetry (OTEL) including Logs, Metrics, Tracing to Provide Observability For Your Application
- Using Insights from OTEL To Improve Your API and Fix Defects and Bugs
- Understanding Operating System Resources And Their Impact On your API (Threads, Processors, Memory)
- Special Considerations for APIs Deployed using Containers, Including Horizontal Scaling and Fault Tolerance
- Considerations for Designing and Maintaining an Open Host API
- Considerations for Designing and Maintaining a Consumer/Provider API
- Introduction to the Backend For Frontend Patter For UI-Facing APIs
- Deploying Your Applications using Kestrel In A Container
- Hosting Your API in a Pipeline for Testing Using the
WebApplicationFactory
- Implement a Reverse Proxy using Microsoft's YARP to Provide Resiliency and Seams for Refactoring Large Services
- Defining Service Boundaries
- Defining an "App" that Contains Multiple Services as Part Of Your Service Boundary
- Early Bound Sharing - NuGet Packages and Explicit Dependency Declarations
- Late Bound Sharing - Using and Implementing Backing Services
- Using Remote Procedure Calls (RPCs) To Integrate With Other Services
- Testing RPCs using Contract-Driven Tests
- Introduction to Asynchronous Messaging and Event-Driven Integration
- Message Queues and Event Streaming
- Minimizing To-To-Response In Your API
- Background Processing with Hosted Services
- Understand and Implement A Transactional Outbox
- Understand Resource Allocation For Your API
- Master
async/await
patterns for complex scenarios with error handling
The testing in this course will emphasize testing against backing services in isolation.
- Simulating Faults with Backing Services to Test Your APIs Resiliency
- Simulating Network Latency Between Services
- Validation Strategies for Messages from Backing Services
- Explore Consumer-Driven Contract Testing
At the conclusion of the Web APIs with .NET, developers will be able to:
- Correctly utilize HTTP-based APIs to provide business functionality.
- Utilize the ASP.NET Framework for developing a variety of HTTP-based services
- Develop services that run in a Cloud Native environment (inside containers)
- Troubleshoot, Debug, and Prevent common API issues, including performance issues and network reliability problems
- Understand, Implement, and Use Open Telemetry In Your APIs
- Learn Patterns for Destructuring Large APIs
- Test Your APIs for Resiliency
- Improve Perceived Performance of Your API with Background Asynchronous Processing