-
Notifications
You must be signed in to change notification settings - Fork 3.8k
Description
Abp architecture for MicroServices/SOA
Goal: Create a working sample using Abp in order to illustrate MicroServices/SOA approach.
The concept I am willing to achieve is SOA Done Right, or Microservices, or BoundedContexts if you will. They all refer to the same concept like One Service (separated from main app) should be autonomous and do not depend on anything else.
In this concept of SOA services, whithin each service you are free to use DDD, CQRS, any database you want. For now, I am using Abp/DDD approach for the Blog Module because it is the first one being developed for this sample and will adhere better with Abp for our discussions.
Sample: https://github.com/brunobertechini/abp-microservices
- Service without reference to main app
- Main app without reference to service projects
- Migrations executed automatically for each service
- Features per Service
- Authorization (Permissions) per Service
- Localization per Service
- Implement ServiceBus Layer to be able to use DomainEvents, NServiceBus, MassTransit
- Implement UnitTest abstraction
- Discover Controllers (pure mvc controller) in custom module
- Migration seed for custom authorization providers
Items that need interaction/issues to be opened in AspnetBoilerplate:
- Move MimeTypeNames from Abp.AspNetZeroCore.Net to a more common project (avoid dependencie on Abp.AspNetZeroCore.Net only to have MimeTypeNames)
- Move IAppFolders to Core.Shared
- Move ErpServiceBase to Core.Shared
- Move EpPlusExcelExporterBase to Application.Shared
- Review Localization Provider for single/splitted approach for main and custom apps
- Flexible configuration for running migrations as part of PostInitialize of EntityFrameworkCoreModule
Pending: Add the full list of requirements to this post.
I will update this list whenever I have a time-frame available.
P.s.: I have edited this HEAD post in order to have a on-going task list for this issue.
------ Original Post ---------
Hello Halil,
I would like to manage to create a complete separate module using Abp / ModuleZero in order to have the nice features like multtenancy and so on.
I can't see a way to do that with current infrastructure provided by Abp. I would like to know if you have any tips for me so I can create a fork of Abp/Abp.Zero and make the necessary changes to do that.
Related to #88 (see my comments)
Lets state the main priorities
- Create a Abp module structure (like the BlogSample you have) without runtime dependency on MainApp Database.
- Use MultiTenancy
- Use Filters for automatic tenant set (using custom AbpSession)
- Use Automapper features
- Use custom dbcontext
If you just point me to the direction you have in mind I can work it out.
Bruno