Published on

.NET Microservice with ABP - Full Series

3 min read

Posts in the Series

Part 1. Initial Setup

Part 2. Shared Project

Part 3. Administration Service

Part 4. Identity Service

Part 5. SaaS Service

Part 6. DB Migration

Part 7. Yarp and Tye

Part 8. Identity server and Angular App

Part 9. Distributed event bus

Part 10. Docker and CI/CD

Part 11. Add a New service

Part 12. Central Logging

Table of Contents

Intro

This post consolidates all the parts of the microservice development in the single place.

What is ABP?

ABP framework is a complete infrastructure to create modern web applications by following the best practices and conventions of software development. ABP offers a complete, modular and layered software architecture based on Domain Driven Design principles and patterns. There are a lot of features provided by the ABP Framework to achieve real world scenarios easier, like Event Bus, Background Job System, Audit Logging, BLOB Storing, Data Seeding, Data Filtering, etc. ABP also simplifies (and even automates wherever possible) cross cutting concerns and common non-functional requirements like Exception Handling, Validation, Authorization, Localization, Caching, Dependency Injection, Setting Management, etc.

You can find more info here: https://github.com/abpframework/abp

You can find the documentation here: https://docs.abp.io/en/abp/latest

Here is the Quick Start Guide

Why Microservice with ABP?

One of the major goals of the ABP framework is to provide a convenient infrastructure to create microservice solutions. To make this possible,

  • Provides a module system that allows you to split your application into modules where each module may have its own database, entities, services, APIs, UI components/pages... etc.
  • Offers an architectural model to develop your modules to be compatible to microservice development and deployment.
  • Provides best practices guide to develop your module standards-compliance.
  • Provides base infrastructure to implement Domain Driven Design in your microservice.
  • Provide services to automatically create REST-style APIs from your application services.
  • Provide services to automatically create C# API clients that makes easy to consume your services from another service/application.
  • Provides a distributed event bus to communicate your services.

Purpose

By default when you create a ABP application it will be a monolith. There is no definitive guide on how to create a microservice application with all the modules. The purpose of this blog series is to have a base solution of the ABP running as a microservice application. We will have a SaaS service for Tenant Management and Identity Service for Identity and IdentityServer and Admin Service for features, permissions, settings and audit logs. this will be a great base solution for your microservice and you will see how to setup the microservice from the scratch.

Template

I have created a template for creating a microservice application based on this series. You can find the template here: https://github.com/antosubash/AbpMicroservice. You can use this template to create your microservice application.