Fork me on GitHub

随笔分类 -  ABP

摘要:ABP 中异常处理的思路是很清晰的。一共五种类型的异常类。 AbpInitializationException用于封装ABP初始化过程中出现的异常,只要抛出AbpInitializationException异常就可以,无须做额外处理。这类异常往往是需要维护人员介入分析的。 其他四个异常都在Abp 阅读全文
posted @ 2016-05-29 10:44 ZHK的博客 阅读(5138) 评论(2) 推荐(10) 编辑
摘要:通过AD作为用户认证的数据源。整个管理用户认证逻辑就在LdapAuthenticationSource类中实现。 LdapSettingProvider:定义LDAP的setting和提供DefautValue。主要提供配置访问AD数据库的账号信息。 LdapSettings/ILdapSettin 阅读全文
posted @ 2016-05-19 20:42 ZHK的博客 阅读(2771) 评论(2) 推荐(4) 编辑
摘要:AbpZeroDbContext:配置ABP.Zero中定义的entity的Dbset EntityFrameworkModelBuilderExtensions:给PrimitivePropertyConfiguration添加了扩展方法用于创建Index。 AbpZeroDbModelBuild 阅读全文
posted @ 2016-05-14 15:55 ZHK的博客 阅读(2716) 评论(4) 推荐(3) 编辑
摘要:ABP Zero模块中需要配置的地方主要集中在三块:配置静态的role,配置外部认证源,以及配置本地化语言和资源。 UserManagementConfig/IUserManagementConfig:定义了一个配置项,用于配置外部认证源。默认情况下,ABP Zero使用AbpUser表作为身份认证 阅读全文
posted @ 2016-05-06 13:33 ZHK的博客 阅读(1940) 评论(1) 推荐(4) 编辑
摘要:ABP Zero模块扩展了ABP基础框架中的本地化功能,实现了通过数据库管理本地化的功能。其通过数据库保存本地化语言及其资源。 ApplicationLanguage:代表本地化语言的实体类。一种语言就是一个ApplicationLanguage实例。 ApplicationLanguageProv 阅读全文
posted @ 2016-05-05 12:49 ZHK的博客 阅读(2446) 评论(2) 推荐(2) 编辑
摘要:ABP Zero模块通过自定义实现Asp.Net Identity完成身份认证功能, 对Asp.Net Identity做了较大幅度的扩展。同时重写了ABP核心模块中的permission功能,以实现授权。注意:ABP仅仅使用了Asp.Net Identity的身份认证功能,但没有使用Asp.Net 阅读全文
posted @ 2016-05-04 14:10 ZHK的博客 阅读(5594) 评论(2) 推荐(6) 编辑
摘要:AuditLog: 继承自Entity<long>的实体类。封装AuditLog的信息。 AuditingStore: 实现了IAuditingStore接口,实现了将AuditLog的信息保存到数据库的功能。其通过IRepository<AuditLog, long>实例完成对数据库的操作。 Ba 阅读全文
posted @ 2016-05-02 10:40 ZHK的博客 阅读(2097) 评论(1) 推荐(4) 编辑
摘要:ABP的Zero模块以数据库为数据源实现了ABP框架中的tenant management (multi-tenancy), role management, user management, session, authorization (permission management), setti 阅读全文
posted @ 2016-05-01 17:45 ZHK的博客 阅读(3679) 评论(1) 推荐(5) 编辑
摘要:ABP对HangFire的集成主要是通过实现IBackgroundJobManager接口的HangfireBackgroundJobManager类完成的。 HangfireBackgroundJobManager:实现了接口IBackgroundJobManager中的方法EnqueueAsyn 阅读全文
posted @ 2016-04-27 14:50 ZHK的博客 阅读(2822) 评论(1) 推荐(2) 编辑
摘要:如果对OData不熟悉的话可参考OData的初步认识一文以获取OData的一些初步知识。 API.Odata 模块唯一用处就是提供了一个泛型版本的ODataController,实现了Controller代码的常用。 AbpODataEntityController<TEntity, TPrimar 阅读全文
posted @ 2016-04-26 19:56 ZHK的博客 阅读(1193) 评论(1) 推荐(3) 编辑
摘要:ABP提供Script Proxy WebApi为所有的Dynamic WebApi生成访问这些WebApi的JQuery代理,AngularJs代理以及TypeScriptor代理。这些个代理就是javascript脚本,通过这些代理可以简单的访问Dynamic webApi。 如下实例演示一个最 阅读全文
posted @ 2016-04-25 19:47 ZHK的博客 阅读(2823) 评论(1) 推荐(2) 编辑
摘要:这里的内容和ABP 动态webapi没有关系。除了动态webapi,ABP必然是支持使用传统的webApi。ABP.Web.Api模块中实现了一些同意的基础功能,以方便我们创建和使用asp.net webApi。 AbpApiController:这是一个抽象基类,继承自ApiController, 阅读全文
posted @ 2016-04-24 08:19 ZHK的博客 阅读(4065) 评论(4) 推荐(4) 编辑
摘要:动态WebAPI应该算是ABP中最Magic的功能之一了吧。开发人员无须定义继承自ApiController的类,只须重用Application Service中的类就可以对外提供WebAPI的功能,这应该算是对DRY的最佳诠释了. 如下图所示,一行代码就为所有实现了IApplicationServ 阅读全文
posted @ 2016-04-23 07:58 ZHK的博客 阅读(16028) 评论(7) 推荐(27) 编辑
摘要:ABP.Web.Mvc模块主要完成两个任务: 第一,通过自定义的AbpController抽象基类封装ABP核心模块中的功能,以便利的方式提供给我们创建controller使用。 第二,一些常见的基础功能的实现。 AbpController:这是一个抽象基类,继承自MVC Controller,是A 阅读全文
posted @ 2016-04-20 14:05 ZHK的博客 阅读(2203) 评论(2) 推荐(4) 编辑
摘要:ABP.Web模块并不复杂,主要完成ABP系统的初始化和一些基础功能的实现。 AbpWebApplication : 继承自ASP.Net的HttpApplication类,主要完成下面三件事一,在Application_Start完成AbpBootstrapper的初始化。整个ABP系统的初始化就 阅读全文
posted @ 2016-04-18 21:16 ZHK的博客 阅读(1849) 评论(1) 推荐(4) 编辑
摘要:Realtime Realtime是ABP底层模块提供的功能,用于管理在线用户。它是使用SignalR实现给在线用户发送通知的功能的前提 IOnlineClient/OnlineClient: 封装在线用户的信息 OnlineClientManager/IOnlineClientManager: 用 阅读全文
posted @ 2016-04-16 08:25 ZHK的博客 阅读(3229) 评论(2) 推荐(4) 编辑
摘要:这个模块封装了Automapper,使其更易于使用。 下图描述了改模块涉及的所有类之间的关系。 AutoMapAttribute,AutoMapFromAttribute和AutoMapToAttribute:这三个attribute用于标注一个类到另外一个类的map方向。 AutoMapperHe 阅读全文
posted @ 2016-04-14 22:29 ZHK的博客 阅读(3891) 评论(1) 推荐(4) 编辑
摘要:ABP 通过StackExchange.Redis类库来操作Redis数据库。 AbpRedisCacheModule:完成ABP.RedisCache模块的初始化(完成常规的依赖注入) AbpRedisCacheConfig:定义了connectionStringKey和databaseIdApp 阅读全文
posted @ 2016-04-13 22:24 ZHK的博客 阅读(3959) 评论(1) 推荐(2) 编辑
摘要:这个Module通过建立一个MongoDbRepositoryBase<TEntity> 基类,封装了对MongoDb数据库的操作。 这个module通过引用MongoDB.Driver,MongoDB.Bson,MongoDB.Driver.Core,MongoDB.Driver.Legacy类库 阅读全文
posted @ 2016-04-12 21:07 ZHK的博客 阅读(3679) 评论(8) 推荐(3) 编辑
摘要:这个模块简单,且无实际作用。一般实际项目中都有用数据库做持久化,用了数据库就无法用这个MemoryDB 模块了。原因在于ABP限制了UnitOfWork的类型只能有一个(前文以作介绍),一般用了数据库的必然要注入efUnitOfWork. 而注入了efUnitOfWork就不能在注入MemoryDb 阅读全文
posted @ 2016-04-11 20:26 ZHK的博客 阅读(1839) 评论(2) 推荐(3) 编辑