We may earn an affiliate commission when you visit our partners.
Neil Cummings

 Course has now been updated for .Net 8, NextJS 14 and Next-Auth v8

Microservices is the latest 'buzzword' and hot topic in the web development industry at the moment and nowadays having microservices as part of your skillset is becoming more and more essential.  This course aims to teach you how to build a microservices based app using .Net for the backend services and Next.js for the client app.   We start from nothing and build up the app until we have a completed app that we can publish to a Kubernetes cluster on the internet.

Here are some of the things that are covered in this course:

Read more

 Course has now been updated for .Net 8, NextJS 14 and Next-Auth v8

Microservices is the latest 'buzzword' and hot topic in the web development industry at the moment and nowadays having microservices as part of your skillset is becoming more and more essential.  This course aims to teach you how to build a microservices based app using .Net for the backend services and Next.js for the client app.   We start from nothing and build up the app until we have a completed app that we can publish to a Kubernetes cluster on the internet.

Here are some of the things that are covered in this course:

  • Creating several backend services using .Net that provide functionality for the app

  • Service to service communication using RabbitMQ and gRPC

  • Using IdentityServer as the identity provider.

  • Creating a gateway using Microsoft YARP

  • Building a client side app with Next.js using the new App Router functionality (since Next.js 13.4)

  • Using SignalR for push notifications to the client app

  • Dockerizing our different services

  • CI/CD workflows using GitHub actions

  • Adding ingress controllers

  • Publishing the app locally using docker compose

The goals of the main part of this course is to build this app and be able to run and publish everything locally without having to sign up or pay for any cloud services.   Once you have completed the main part of the course there are 3 optional Appendixes that cover:

  • Unit and integration testing

  • Publishing locally to Kubernetes

  • Publishing the app to a Kubernetes cluster on the internet

Tools you need for this course

In this course all the lessons are demonstrated using Visual Studio Code, a free (and fantastic) cross platform code editor.   You can of course use any code editor you like and any Operating system you like... as long as it's Windows, Linux or Mac.  Please ensure that your computer can run Docker as this is a requirement for this course (please see the pre-requisite lesson available as a preview to confirm this). 

Is this course for you?

This course is very practical, about 90%+ of the lessons will involve you coding along with me on this project.  If you are the type of person who gets the most out of learning by doing, then this course is definitely for you.  

On this course we will build an example Auction Application with several services that we will use to provide its functionality.   For the client side of things we are using Next.js to take advantage of its client side and server side capabilities which is an excellent fit for what we are building.  All you will need to get started is a computer with your favourite operating system that is capable of running Docker, and a passion for learning how to build a microservies based application using .Net and Next.js.    

Enroll now

What's inside

Learning objectives

  • To build an application with .net using microservices architecture
  • To build a client app for the application using nextjs
  • To use rabbitmq for service bus communications
  • To install and use identityserver in the microservices app
  • To be able to test the projects using unit and integration testing with xunit
  • To publish the microservices app to docker compose
  • To publish the microservices app to kubernetes cluster both locally and on the internet

Syllabus

Introduction
Course pre-requisites
Setting up the developer environment
Course assets and source code
Read more

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Uses .Net 8, which is a recent version and shows that the course is up-to-date with current technologies
Employs Next.js 14 and Next-Auth v8, which are cutting-edge tools for building client-side applications
Covers CI/CD workflows using GitHub Actions, which is a standard practice for automating software releases
Requires learners to be able to run Docker, which may require some learners to first familiarize themselves with containerization
Uses RabbitMQ and gRPC for service-to-service communication, which are valuable skills for building distributed systems
Includes optional appendices on unit and integration testing, which are essential for ensuring code quality and reliability

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Build microservices app with .net & nextjs

According to learners, this course offers a highly practical and hands-on approach to building a complex application using modern technologies like .Net 8 and NextJS 14. Students particularly appreciate that the course builds a complete application from scratch, covering a wide range of topics including RabbitMQ, IdentityServer, API Gateway, Docker, Kubernetes deployment, and CI/CD with GitHub Actions. Many find the instructor's explanations clear and the focus on learning by doing extremely effective. While some note the course covers advanced concepts and might have a steep learning curve for those new to either technology stack, the overall sentiment is overwhelmingly positive for its depth and real-world relevance. The frequent updates to the latest versions of the frameworks are also seen as a major strength, keeping the content current and valuable.
Docker setup is essential.
"Make sure your machine can run Docker effectively, it's crucial for this course."
"The course relies heavily on Docker for running services locally."
"Needed to troubleshoot my Docker setup before starting the main lessons."
Instructor explains complex topics well.
"The instructor is very clear and explains complex concepts in an understandable way."
"Followed along easily thanks to the instructor's concise explanations."
"Good teaching style, keeps you engaged while coding."
Wide range of microservices topics included.
"Covers so much more than just the basics: RabbitMQ, IdentityServer, Docker, K8s..."
"Impressed by the breadth of topics - from initial services to deployment."
"The course provides a solid overview of a complex microservices architecture."
Utilizes current .Net 8 and NextJS 14.
"Appreciate that it was updated for .Net 8 and NextJS 14. Very current technologies."
"Using the latest versions made the course immediately relevant to my work."
"Covers modern practices with .Net Core and the new NextJS App Router."
Excellent hands-on learning experience.
"The most valuable part was building a full microservices app hands-on."
"This course is super practical. I loved building along with the instructor step-by-step."
"It really helped solidify concepts by seeing them implemented in a realistic project."
Assumes prior tech knowledge.
"This course is not for absolute beginners. Need prior experience with .Net or NextJS."
"Found it challenging at times, definitely requires dedication and prior knowledge."
"The pace is fast and covers a lot. Be prepared for a challenging but rewarding ride."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Build a Microservices app with .Net and NextJS from scratch with these activities:
Review .NET Fundamentals
Solidify your understanding of .NET fundamentals to better grasp the backend service development in the course.
Browse courses on .NET
Show steps
  • Review C# syntax and data structures.
  • Practice building simple console applications.
  • Familiarize yourself with ASP.NET Core concepts.
Brush up on Next.js Basics
Strengthen your Next.js foundation to effectively build the client-side application in the course.
Browse courses on Next.js
Show steps
  • Review React components and JSX syntax.
  • Practice building simple Next.js pages and routes.
  • Understand data fetching in Next.js.
Read 'Microservices Patterns' by Chris Richardson
Gain a deeper understanding of microservices architecture and design patterns to enhance your project development.
Show steps
  • Read the book and take notes on key concepts.
  • Relate the patterns to the course project.
  • Discuss the patterns with peers in online forums.
Five other activities
Expand to see all activities and additional details
Show all eight activities
Follow RabbitMQ Tutorials
Master RabbitMQ concepts and implementation through practical tutorials to improve service-to-service communication.
Show steps
  • Work through the official RabbitMQ tutorials.
  • Experiment with different exchange types and routing keys.
  • Integrate RabbitMQ into a small test application.
Build a Simple API Gateway
Practice building an API gateway using YARP to reinforce your understanding of routing and authentication.
Show steps
  • Set up a basic YARP proxy.
  • Configure routing rules to different backend services.
  • Implement authentication and authorization.
  • Add rate limiting and other security features.
Read 'Production-Ready Microservices' by Susan J. Fowler
Learn best practices for deploying and managing microservices in production to ensure a robust and scalable application.
Show steps
  • Read the book and highlight key operational considerations.
  • Compare the book's recommendations with the course project's setup.
  • Research tools and technologies for monitoring and logging.
Contribute to a .NET Open Source Project
Gain practical experience by contributing to a .NET open-source project, solidifying your understanding of .NET and microservices.
Show steps
  • Find a .NET open-source project related to microservices.
  • Identify a bug or feature to work on.
  • Submit a pull request with your changes.
  • Respond to feedback and iterate on your contribution.
Create a CI/CD Pipeline Diagram
Visualize the CI/CD workflow for the microservices application to better understand the deployment process.
Show steps
  • Map out the steps in the CI/CD pipeline.
  • Choose a diagramming tool.
  • Create a visual representation of the pipeline.
  • Document the purpose of each step.

Career center

Learners who complete Build a Microservices app with .Net and NextJS from scratch will develop knowledge and skills that may be useful to these careers:
Backend Developer
A Backend Developer is responsible for building and maintaining the server-side logic, databases, and APIs that power applications. This course is exceptionally relevant for a backend developer, as it focuses on building microservices using .Net, a popular backend technology. The course teaches essential skills such as service-to-service communication with RabbitMQ and gRPC, creating API endpoints, and using IdentityServer for authentication. Additionally, the course covers the implementation of message queues for async communication which is essential knowledge for a successful backend developer. The hands-on approach of building an auction application from the ground up gives students real-world experience. This course helps build a strong functional understanding of the modern microservices architecture.
Software Engineer
A Software Engineer designs, develops, and maintains software applications, and this course is exceptionally beneficial due to its focus on practical application development. The course provides a broad exposure to different technologies from the back-end using .Net to the front-end using NextJS. A software engineer should be comfortable working on different parts of modern applications. The practical experience gained from building a microservices based application from scratch helps software engineers develop a strong foundation. The course also covers essential concepts such as service-to-service communication, API design, and database interaction, all critical for a software engineer.
API Developer
An API Developer specializes in designing, building, and maintaining application programming interfaces. This course directly supports this career path, as it teaches you how to create backend services using .Net that provide functionality for an application through APIs. You will also learn how to implement secure authentication with IdentityServer. The course goes into how to manage service-to-service communication using RabbitMQ and creating a gateway using Microsoft YARP. An API developer will need to understand these. The focus on building a real-world application gives you practical hands-on experience in designing and developing RESTful APIs.
Full-Stack Developer
A Full Stack Developer works on both the front-end and back-end of applications. This course provides a comprehensive overview of both, making it highly beneficial for full stack development. The course uses .Net for the backend services and NextJS for the client app, enabling the learner to gain proficiency in both. A full stack developer must understand how to connect the front and back end. The course teaches practical skills for doing so, such as utilizing APIs and sending data through message queues. The course also emphasizes deploying applications to containers and Kubernetes via Docker. This course gives a practical, hands-on learning experience for a full stack developer wishing to work with these technologies.
Microservices Architect
A Microservices Architect designs and oversees the implementation of microservices-based systems. This course is directly relevant to this role as it provides an understanding of building a complete microservices application using .Net and NextJS. The course covers essential aspects such as service-to-service communication using RabbitMQ and gRPC, identity management with IdentityServer, and creating a gateway using Microsoft YARP. A Microservices Architect must understand how all of these pieces interact. The course provides hands-on experience in building real world application based on microservices architecture. This practical experience is very beneficial to someone aiming for the architect role.
DevOps Engineer
A DevOps Engineer focuses on automating and streamlining the software development lifecycle, often utilizing containerization and orchestration tools. This course is directly relevant as it provides practical experience with essential DevOps technologies. The course teaches how to dockerize services, set up CI/CD workflows using GitHub actions and deploy applications to a Kubernetes cluster. A DevOps Engineer will need to understand all of these. The course also covers the implementation of message queues using RabbitMQ and gRPC which is useful for working with distributed systems. The hands-on nature of this course building a complete application is particularly beneficial for a DevOps engineer.
Site Reliability Engineer
A Site Reliability Engineer focuses on ensuring the reliability and performance of systems. This course is relevant to this role because it includes aspects of deployment, testing, and monitoring. The course covers Docker-izing different services, implementing CI/CD workflows, and deploying the application to Kubernetes clusters. A site reliability engineer would need to know these tools and how to use them. The course provides a practical understanding of how to manage and maintain the application and infrastructure. This may be helpful for a site reliability engineer who would benefit from the real world experience of building a microservices app.
Cloud Engineer
A Cloud Engineer manages and maintains cloud infrastructure, and this course is helpful for those looking to work with containerized applications and cloud deployments. The Cloud Engineer role involves working with tools like Docker, Kubernetes, and CI/CD pipelines. This course covers these topics in depth, teaching you how to dockerize different services, set up CI/CD workflows using GitHub actions, and publish the app locally using docker compose and Kubernetes. The experience of deploying an application to a Kubernetes cluster, both locally and on the internet, is directly useful for a cloud engineer. This course equips you with the tools and knowledge to successfully manage such deployments.
Application Architect
An Application Architect is responsible for the high-level design of software applications. This course can be very useful for an Application Architect as it provides hands-on knowledge for developing a microservices-based application using .Net and NextJS. This course covers the essential aspects involved including service-to-service communication, security, and deployment. An Application Architect will need to know the solutions available based on current trends. Building an application from scratch with this course can provide a good foundation. An Application Architect should understand how to handle modern application deployments and this course will be useful.
Integration Engineer
An Integration Engineer is focused on ensuring different systems and applications can work together. This course is directly relevant to this role, as it covers service-to-service communication via RabbitMQ and gRPC, and introduces the concept of a gateway using Microsoft YARP. These are essential for creating a robust, distributed application. An Integration Engineer will be working with these sorts of technologies consistently. The course also covers the implementation of message queues which are a common way for integrating different systems. The hands-on approach of building a microservices application is beneficial for real world experience. This course helps build the foundational understanding for this role.
Solutions Architect
A Solutions Architect designs and oversees the implementation of technology solutions, often involving complex systems. This course provides a practical understanding of microservices architecture and technologies, which are frequently used in modern solutions. A Solutions Architect must know different technologies and how they interact. The course provides experience with service-to-service communication using RabbitMQ and gRPC, identity management with IdentityServer, and the use of gateways with Microsoft YARP. The focus on hands-on learning through the creation of an application is particularly useful for a solutions architect. This course enhances the understanding of the underlying technologies and how they interact.
Systems Engineer
A Systems Engineer focuses on the overall design and maintenance of complex systems. This course is helpful because it covers the practical side of designing microservices. A systems engineer often needs to understand how different parts of a system work together. The course covers topics of service-to-service communication, the different technology solutions involved, and deployment. The course includes how to deploy containerized applications through Docker, along with publishing to Kubernetes. This experience is directly useful for a systems engineer, which is why this course is helpful.
Frontend Developer
A Frontend Developer builds the user interface of web applications. Although this course focuses more on the backend, it also covers building a client-side app with Next.js. The NextJS portion of the course introduces the new App Router functionality, fetching data from the API, and building components. This helps a frontend developer understand how to interact with data from a backend. A frontend developer who wishes to understand the full stack will find this course particularly useful due to its practical approach to learning. This course serves as an introduction, especially for those who wish to understand more about the flow of data from back to front.
Technical Lead
A Technical Lead provides technical guidance and direction to development teams. This course is helpful for a Technical Lead as it offers hands on experience in building a full application which is helpful for guiding the team more effectively. The course covers microservices architecture, utilizing message queues via RabbitMQ, implementing authentication and authorization with IdentityServer and API design. These skills and knowledge build a foundation for the leadership role. The course gives a well rounded experience that can help them understand the challenges and solutions needed by their team.
Software Development Manager
A Software Development Manager leads and manages software development teams. While this role is more managerial, understanding the technical aspects of the projects is essential. This course provides practical insights into the technologies and processes that the development teams use. This includes learning about microservices architecture, service-to-service communication and the deployment of applications using Docker and Kubernetes. A development manager gains a better perspective on the challenges and requirements of their teams, by having hands on experience with the technologies and tools.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Build a Microservices app with .Net and NextJS from scratch.
Provides a comprehensive overview of microservices architecture patterns. It covers various aspects such as service decomposition, communication, data management, and deployment strategies. Reading this book will give you a deeper understanding of the concepts behind microservices and help you design and implement robust and scalable applications. It valuable resource for anyone working with microservices.
Focuses on the operational aspects of running microservices in production. It covers topics such as monitoring, logging, alerting, and deployment strategies. Reading this book will help you understand the challenges of managing a microservices architecture and how to build a resilient and scalable system. It valuable resource for anyone deploying microservices to production environments and is best used as additional reading.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser