Building Your First Microservice With .NET

Build your first microservice with C#, ASP.NET Core, VS Code, MongoDB, and Docker. Step by Step.
English
English
What is a monolith and the typical issues it presents over time
What are microservices, the problems they solve and when to use them
A quick view of the building blocks of a .NET microservices based architecture
How to create a microservice from scratch using .NET 5 and Visual Studio Code
Use C# 9 record types to define Data Transfer Objects (DTOs)
How to implement a microservices REST API with ASP NET Core and Swagger UI
How to use the repository pattern to persist data into a MongoDB NoSQL database
What is Docker and how to run a MongoDB container in your box

Requirements

  • Basic C# knowledge
  • Basic web development experience
  • A computer with Windows, Mac OSX or Linux installed

Description

Is your team suffering the symptoms of the monolithic hell? Has your code base become so complex it's too hard to understand and modify? Does it take forever to build and deploy your system? Do you just want to know what's the latest in distributed systems architecture?

In this course you will learn why everyone is moving to microservices and how to get started with C# and the .NET platform.

Here for some of the things you will learn in this course:

  • What is a monolith and the typical issues it presents over time

  • What are microservices, the problems they solve and when to use them

  • A quick view of the building blocks of a .NET microservices based architecture

  • How to create a microservice from scratch using .NET 5 and Visual Studio Code

  • Use C# 9 record types to define Data Transfer Objects (DTOs)

  • How to implement a microservices REST API with ASP.NET Core and Swagger UI

  • How to use the repository pattern to persist data into a MongoDB NoSQL database

  • What is Docker and how to run a MongoDB container in your box

We will not jump straight to the ideal implementation, we will start with a very simple and "naïve" implementation, we will learn about common mistakes when implementing microservices, we will learn about multiple techniques and patterns in the microservices world and finally we will arrive to a nice implementation based on best practices.

This is a beginner level course, so I intentionally take my time to explain every new concept in a very didactic way to ensure you understand the purpose of the code you are about to write. You will find no magic code copied from external or hidden sources. We will start absolutely from scratch and I will explain every line of code as I add them to the projects.

You should have some basic C# knowledge and ideally some web development experience to make the most of this course. However, I make no assumptions on your previous knowledge of ASP.NET Core or of any of the other libraries, tools and techniques used during the course. As long as you are eager to learn by doing, I think you will really enjoy this course since I will explain everything I do as we write the code together.

By the end of this course, you will have a fully working .NET based microservice, but most importantly, you will understand every line of code and why we ended up with the final implementation.

Who this course is for:

  • Beginner C# / .NET developers wanting to get a deep understanding of the microservices building blocks
  • Experienced C# / .NET developers new to microservices that want to understand this modern architecture makes sense for their projects
  • Anyone willing to learn by doing. Even if you have never built an ASPNET Core app you should not have problems with this course since I will explain every line of code in detail

Course content

4 sections17 lectures1h 59m total length
  • Introduction
    04:06
  • Getting the source code
    00:19
  • Development environment setup
    08:08
  • What are microservices?
    09:46

Instructor

Passionate Software Engineer
Julio Casal
  • 4.5 Instructor Rating
  • 450 Reviews
  • 9,174 Students
  • 2 Courses

Hi, 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.