模块化
ABP本身是一个包含许多nuget包的模块化框架.它还提供了一个完整的基础架构来开发你自己的具有实体, 服务, 数据库集成, API, UI组件等等功能的应用程序模块.
模块化是根据项目进行划分的,具体怎么划分应该根据业务来定义,abp对模块化的项目做了一些包装。
继承AbpModule
比如EntityFramework模块吧,有如下源码
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp;
using Volo.Abp.EntityFrameworkCore;
using Volo.Abp.Modularity;
namespace LY.Shop.EntityFrameworkCore
{
[DependsOn(
typeof(ShopDomainModule),
typeof(AbpEntityFrameworkCoreModule)
)]
public class ShopEntityFrameworkCoreModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
context.Services.AddAbpDbContext<ShopDbContext>(options =>
{
options.AddDefaultRepositories();
/* Add custom repositories here. Example:
* options.AddRepository<Question, EfCoreQuestionRepository>();
*/
});
}
public override void OnApplicationInitialization(ApplicationInitializationContext context)
{
base.OnApplicationInitialization(context);
}
}
}
这里有两个常用的方法
ConfigureServices
这个方法可以理解成startup中的ConfigureServices方法
OnApplicationInitialization
这个方法可以理解成startup中的Configure
总结
关于模块化确实我理解的也就这么多,没有太多可记录的,总之就是按照abp的约束做,这样才能保证一个统一的风格。
abp的模块化分层
请看官方文档,说的非常清楚
https://docs.abp.io/zh-Hans/abp/latest/Best-Practices/Module-Architecture
https://docs.abp.io/zh-Hans/abp/latest/Best-Practices/Module-Architecture