个人未完成的网站

abp学习日志六(模块化开发)

模块化

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

posted on 2020-03-16 21:29  我是小虫  阅读(340)  评论(0编辑  收藏  举报

导航