Amazing course I'd recommend anybody who wants to quickly grasp the fundamentals of microservices based on the .NET stack in a very practical way. There's no fluff material and the content itself is structured pretty well.
Samuel Tóth

Building Microservices With .NET Online Course


Building Microservices With .NET is the complete learning path that will teach you how to master all the building blocks of a complete .NET microservices architecture that finally lets you continuously deliver resilient and scalable systems in minutes, not months.

You will learn:

  • How to create autonomous microservices that your teams can build quickly and deploy in minutes, not months
  • How to design distributed systems that can actually scale to handle production demands
  • How to modernize your software development skills and be ready for your next .NET job or project
  • How to go beyond the theory and start building microservices with .NET, step by step

The microservices learning path

This course teaches you WebApi, DI, new c# 9.0 functionalities, Docker, mongodb, microservices stuff and even some Postman stuff I wasn't aware of. Really went far beyond all my expectations. I did other individual courses about some of these topics (some considerably more expensive) and now I feel that most of these would not have been necessary had I watched this one first. Very likely the best programming course I ever did.
Eduardo Martins

Course Curriculum

Week 1: Fundamentals

01 Welcome to the course! 5 lessons
  • Course Introduction
  • Source code and other course downloads
  • Development environment setup
  • What's wrong with the monolith?
  • What are microservices?
02 Your first microservice 5 lessons
  • Creating a microservice via the .NET CLI
  • Introduction to the REST API and DTOs
  • Adding the DTOs
  • Adding the REST API operations
  • Handling invalid inputs
03 Adding database storage 7 lessons
  • Introduction to the repository pattern and MongoDB
  • Implementing a MongoDB repository
  • Using the repository in the controller
  • Introduction to Docker
  • Trying out the REST API with a MongoDB container
  • Introduction to Dependency Injection and Configuration
  • Implementing dependency injection and configuration
04 Preparing for the next microservice 7 lessons
  • Using Postman
  • Reusing common code via NuGet
  • Refactoring into a generic MongoDB repository
  • Refactoring MongoDB registration into extension methods
  • Moving generic code into a reusable NuGet package
  • Introduction to Docker Compose
  • Moving MongoDB to docker compose
05 Synchronous inter-service communication 8 lessons
  • Creating the Inventory microservice
  • Introduction to synchronous communication
  • Implementing synchronous communication via IHttpClientFactory
  • Understanding timeouts and retries with exponential backoff
  • Implementing a timeout policy via Polly
  • Implementing retries with exponential backoff
  • Understanding the circuit breaker pattern
  • Implementing the circuit breaker pattern
06 Asynchronous inter-service communication 7 lessons
  • Introduction to asynchronous communication
  • Defining the message contracts
  • Publishing messages via MassTransit
  • Standing up a RabbitMQ docker container
  • Refactoring MassTransit configuration into the reusable NuGet package
  • Consuming messages for eventual data consistency
  • Removing the inter-service synchronous communication
07 Initial Frontend Integration 6 lessons
  • Installing Node.js
  • Getting the React frontend source code
  • Getting started with the frontend
  • Understanding CORS
  • Adding the CORS middleware
  • Exploring the frontend to microservices communication

Week 2: Security

08 Identity in Microservices 4 lessons
  • Introduction to ASP.NET Core Identity
  • Creating the Identity microservice
  • Integrating ASP.NET Core Identity with MongoDB
  • Adding the Users REST API
09 Microservices Security Patterns and Techniques 4 lessons
  • Microservices authentication
  • Introduction to OAuth 2.0
  • Introduction to OpenID Connect
  • Introduction to IdentityServer
10 Implementing Microservices Security 7 lessons
  • Setting up IdentityServer
  • Requesting tokens via Postman
  • Understanding JSON Web Tokens
  • Securing the Catalog microservice
  • Generalizing how to add authentication to microservices
  • Securing the Inventory microservice
  • Securing the Identity microservice
11 Authorization in Microservices 6 lessons
  • Storing secrets during local development
  • Understanding Authorization in ASP.NET Core
  • Seeding users and roles
  • Adding users to the Player role
  • Implementing role-based authorization
  • Implementing claims-based authorization
12 Frontend Integration to Secure Microservices 7 lessons
  • Getting the React frontend source code
  • Configuring CORS in the Identity microservice
  • Adding the frontend client to the IdentityServer configuration
  • Fixing the logout experience
  • Using ID tokens in the frontend client
  • Using access tokens in the frontend client
  • Fixing the user registration experience

Week 3: Transactions

13 Transactions with Microservices 4 lessons
  • Database Transactions
  • Distributed Transactions
  • Introduction to Sagas
  • Choreographed VS Orchestrated Sagas
14 Preparing the Saga participants 5 lessons
  • Purchase Saga Overview
  • Publishing Catalog prices
  • Allowing services to customize the retry configuration
  • Granting and subtracting items via asynchronous messages
  • Debiting gil via asynchronous messages
15 Implementing the Purchase Saga 12 lessons
  • Creating the Trading microservice
  • Creating a MassTransit state machine
  • Initializing the state machine
  • Adding the Purchase controller
  • Configuring the Trading microservice
  • Trying out the state machine
  • Querying the state machine via a controller action
  • Consuming Catalog prices in the Trading microservice
  • Adding a custom state machine activity
  • Sending and consuming Inventory messages from the state machine
  • Unsing the MassTransit In-Memory Outbox
  • Sending and consuming Identity messages from the state machine
16 Compensation and Idempotency 6 lessons
  • Compensating actions in the state machine
  • Idempotency in microservices
  • Adding idempotency to a controller action
  • Handling out of order messages in the state machine
  • Handling message duplication
  • Implementing idempotent consumers
17 The Frontend Store Experience 9 lessons
  • Store experience overview
  • Publishing inventory updated events
  • Publishing user updated events
  • Consuming Inventory and Identity events in the Trading microservice
  • Implementing the Store controller
  • Trying out the updated Frontend portal
  • Real-time updates via SignalR
  • Configuring SignalR authentication
  • Sending real-time updates from the state machine via SignalR

Week 4: Docker and Microsoft Azure

18 Microservices and Source Control 5 lessons
  • Monorepo vs Multirepo
  • Installing Git
  • Using Git to add files to source control
  • Creating a GitHub organization
  • Uploading files to a GitHub repository
19 Publishing NuGet Packages to GitHub 4 lessons
  • Preparing NuGet packages for GitHub
  • Generating a GitHub Personal Access Token
  • Publishing to GitHub Packages
  • Consuming a NuGet package from GitHub
20 Dockerizing your microservices 5 lessons
  • Running your microservice anywhere via Docker
  • Adding a Dockerfile
  • Consuming NuGet packages within a Dockerfile
  • Building a Docker image
  • Running a Docker container
21 Getting Started with Microsoft Azure 3 lessons
  • Creating an Azure account
  • Installing the Azure CLI
  • Creating an Azure resource group
22 Using Azure Cosmos DB 3 lessons
  • Creating a Cosmos DB account
  • Adding Cosmos DB support to the Common library
  • Using Cosmos DB in a microservice
23 Using Azure Service Bus 3 lessons
  • Creating a Service Bus namespace
  • Adding Service Bus support to the Common library
  • Using Service Bus in a microservice
24 Using the Azure Container Registry 2 lessons
  • Creating an Azure Container Registry
  • Publishing Docker images to Azure Container Registry

Week 5: Cloud Deployment

25 Deploying microservices to Azure Kubernetes Service 6 lessons
  • Introduction to Kubernetes
  • Creating a Kubernetes cluster
  • Defining a Kubernetes deployment
  • Using Kubernetes secrets
  • Creating a Kubernetes pod
  • Creating a Kubernetes service
26 Reporting the microservices health 4 lessons
  • Adding a basic health check
  • Creating a custom database health check
  • Adding Kubernetes health probes
  • Generalizing the health check configuration
27 Storing Secrets in Azure Key Vault 5 lessons
  • Creating an Azure Key Vault
  • Reading secrets from Azure Key Vault
  • Creating AAD pod-managed identities
  • Using AAD pod-managed identities
  • Generalizing the Azure Key Vault configuration
28 Adding the API Gateway 6 lessons
  • Introduction to the API Gateway
  • Installing Helm
  • Installing the Emissary-ingress API Gateway
  • Configuring Routing to a Microservice
  • Running the Identity microservice behind the API gateway
  • Using Postman environments
29 Enabling HTTPS and TLS Termination 6 lessons
  • Installing cert-manager
  • Generating a TLS certificate
  • Enabling HTTPS and TLS termination in Emissary-ingress
  • Forwarding headers to the Identity microservice
  • Creating a signing certificate
  • Using the signing certificate in the Identity microservice
30 Running the system in Production 2 lessons
  • Deploying the Catalog microservice to AKS
  • Trying out the Frontend in Production

Week 6: DevOps and Observability

31 Using Helm charts to simplify microservices deployment 7 lessons
  • Creating a Helm chart (Part 1)
  • Creating a Helm chart (Part 2)
  • Creating a Helm chart (Part 3)
  • Deploying a microservice using a Helm chart
  • Generalizing the Helm chart
  • Publishing a Helm chart to ACR
  • Deploying a microservice using a Helm chart from ACR
32 Microservices and Continuous Integration 5 lessons
  • Introduction to CI/CD
  • Creating a CI/CD pipeline with GitHub Actions
  • Generating version numbers via GitHub Actions
  • Publishing NuGet packages via GitHub Actions
  • Building docker images via GitHub Actions
33 Microservices and Continuous Deployment 4 lessons
  • Authenticating GitHub repositories with Azure
  • Logging in to Azure via GitHub Actions
  • Publishing docker images via GitHub Actions
  • Deploying a microservice to AKS via GitHub Actions
34 Adding Logging 8 lessons
  • Introduction to Logging
  • Writting logs via ILogger
  • Standing up a Seq Docker container
  • Sending logs to Seq in your local box
  • Generalizing the Seq configuration
  • Deploying Seq to Kubernetes
  • Adding Seq support to the microservice helm chart
  • Sending logs to Seq in AKS
35 Adding Distributed Tracing 11 lessons
  • Introduction to Distributed Tracing
  • Upgrading the Common library to MassTransit v8
  • Upgrading all microservices to MassTransit v8
  • Using OpenTelemetry to collect and export distributed traces
  • Standing up a Jaeger Docker container
  • Exporting distributed traces to Jaeger
  • Generalizing the distributed tracing configuration
  • Adding distributed tracing to all microservices
  • Deploying Jaeger to Kubernetes
  • Adding Jaeger support to the microservice helm chart
  • Sending distributed traces to Jaeger in AKS
36 Adding Monitoring 7 lessons
  • Introduction to Monitoring
  • Using OpenTelemetry to collect and export metrics
  • Standing up a Prometheus Docker container
  • Generalizing the monitoring configuration
  • Deploying Prometheus and Grafana to Kubernetes
  • Letting Prometheus discover microservices in AKS
  • Getting a microservice monitored by Prometheus and Grafana in AKS

Is Building Microservices With .NET right for you?

This online course is perfect for:

  • Dev leads looking for best practices to fix the issues of their current .NET systems.
  • Software architects planning the design of their next .NET project.
  • .NET developers trying to make sense of the latest tech to advance their careers.

    This online course is not for:

  • People who has never coded or just starting with C#.
  • Devs who have never done any sort of backend web development.
  • Non self-learners. You take the lessons at your own pace, in your own schedule. No live training here.

Meet your instructor

My name is Julio Casal. I'm a passionate software engineer with almost two decades of experience building all sorts of applications and systems based on the .NET platform.

I like to continuously explore the latest software engineering trends and practices and use them to solve real world problems.

I believe reducing complex concepts into simple step by step instructions is incredibly valuable and helps to make coding accessible and fun for everyone.

What others are saying

What you get when you enroll

34+ hours on-demand video

A massive collection of didactic, high-quality video lessons, specifically designed for learning purposes.

Full Source Code

Full source code linked to every coding lesson so you can easily compare and troubleshoot.

Prebuilt Modern Frontend

Excercise your microservices from a ready to go, interactive, real world frontend portal.

All Postman Collections

Ready to use collections you can quickly import into Postman to start testing with your microservices.

Full English captions

In case you need them, English captions can be turned on quickly for any of the lessons.

Ask The Instructor Any Time

Reach out to the instructor any time you have a question or need advice. You'll get an answer in 24 hours max.

Select Which Option is Best for You:

$ 497
instant access

  • Everything in the ESSENTIALS Package
  • Microservices and Source Control
  • Publishing NuGet Packages to GitHub
  • Dockerizing your microservices
  • Getting Started with Microsoft Azure
  • Using Azure Cosmos DB
  • Using Azure Service Bus
  • Using Azure Container Registry
  • Deploying microservices to Azure Kubernetes Service
  • Reporting the microservices health
  • Storing secrets in Azure Key Vault
  • Adding the API Gateway
  • Enabling HTTPS and TLS termination
  • Running the entire system in Production
  • Using Helm charts to simplify microservices deployment
  • Microservices and Continuous Integration
  • Microservices and Continuous Deployment
  • Adding Logging
  • Adding Distributed Tracing
  • Adding Monitoring
$ 197
instant access

  • Full source code
  • All Postman collections
  • Full English captions
  • Ask the instructor any time
  • Prebuilt modern frontend portal
  • Your first microservice
  • Adding database storage
  • Preparing for the next microservice
  • Synchronous inter-service communication
  • Asynchronous inter-service communication
  • Identity in Microservices
  • Microservices Security Patterns and Techniques
  • Implementing Microservices Security
  • Authorization in Microservices
  • Transactions with Microservices
  • Preparing the Saga participants
  • Implementing the Purchase Saga
  • Compensation and Idempotency
  • The Frontend Store Experience

Money Back Guarantee

I do my best to provide high-quality content that will meet or exceed your expectations. But if for whatever reason you find this course isn't for you, you can request a refund during the first 30 days.


When does the course start and finish?

Building Microservices With .NET is a completely self-paced online course. You decide when you start and when you finish.

Can you provide an invoice to request reimbursement from my employer?

Yes, I can provide an invoice upon your request. I will only need you to provide billing details.

Do you offer a certification on course completion?

Yes, you will get a certificate at no additional cost after completing all the course lessons and assignments.

How long will I have access to the content?

Your enrollment includes unlimited lifetime access and free updates for life.

Can I upgrade from Essentials to Ultimate later?

Yes, students enrolled in the Essentials package can upgrade to the Ultimate package at any time by paying only the price difference.

I have more questions!

Happy to help! Send me an email: [email protected]