Presentation is loading. Please wait.

Presentation is loading. Please wait.

作者:梁桐铭 博客: 微信公众号:角落的白板报

Similar presentations


Presentation on theme: "作者:梁桐铭 博客: 微信公众号:角落的白板报"— Presentation transcript:

1 作者:梁桐铭 博客:http://www.cnblogs.com/wer-ltm/ 微信公众号:角落的白板报
基于DDD的.NET开发框架-ABP介绍 作者:梁桐铭 博客: 微信公众号:角落的白板报 公众号

2 内容提要 ABP的总体介绍 ABP实现的功能特性 Module Zero 基于DDD的分层结构 ABP案例展示
ABP Code Generator(代码生成器)

3 ABP的总体介绍 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称。
ABP框架于2014年5月4日首次在Github开源,截止到2017年4月7日,总共进行了3023次代码提交,124次版本发布,现在的版本号是2.0预览版。 ABP的定位,快速开发。

4 什么是ASP.NET Boilerplate?
ASP.NET Boilerplate是一个用最佳实践和流行技术开发现代WEB应用程序的新起点,它旨在成为一个通用的WEB应用程序框架和项目模板。 ASP.NET Boilerplate 基于DDD的经典分层架构思想,实现了众多DDD的概念(但没有实现所有DDD的概念)。

5 什么是ASP.NET Boilerplate?
服务端 ASP.NET MVC和Web API。 实现域驱动设计(实体,存储库,领域服务,应用程序服务,DTO,Unif Of Work ...等) 实现分层架构(领域,应用程序,表示和基础结构层)。 提供一个基础设施,为大型项目开发可重用和可组合的模块,使其易于使用依赖注入(使用Castle Windsor作为DI容器)。 提供一个严格的模型和基类,以轻松使用对象相关映射(直接支持EntityFramework和NHibernate)。 支持和实现数据库迁移。 包括一个简单灵活的本地化系统。 包括服务器端全局领域域事件的EventBus。 管理异常处理和验证。 为应用程序服务创建动态Web API层。 提供基本和辅助类来实现一些常见任务。 使用约定优于配置原则。

6 什么是ASP.NET Boilerplate?
客户端 提供的项目模板为单页的应用程序(AngularJs)和多页应用。模板基于Bootstrap。 最常用的javascript库或者angular库 创建动态JavaScript代理以轻松调用应用程序服务(使用动态Web API图层)。 包括一些独特的任务API:如友好提示(SweetAlert),通知管理,blocking UI ,发送ajax请求

7 文档和开源地址 官方文档: http://www.aspnetboilerplate.com/Pages/Documents
群友文档: 新手教程:

8 EntityFramework Core集成 Nhibernate集成 领域层 实体 值对象 仓储 领域服务 规约管理 工作单元 领域事件
ABP实现的功能特性 展现层 Asp.Net MVC MVC控制器 MVC视图 异常处理 嵌入资源文件 本地化 菜单导航 嵌入资源 JavaScript API CSRF/XSRF保护 应用层 应用服务 数据传输对象(DTO) 验证数据传输对象 授权 功能(feature)管理 审计日志 Web API WebAPi控制器 动态WebApi层 Odata集成 SwaggerUI集成 ORM EntityFramework集成 EntityFramework Core集成 Nhibernate集成 领域层 实体 值对象 仓储 领域服务 规约管理 工作单元 领域事件 数据过滤 共用结构 依赖注入 Session管理 缓存机制 日志管理 键值管理 时间管理 后台服务 后台作业 Hangfire集成 Quartz集成 实时服务 通知系统 Signal集成

9 Module Zero ABP框架是可以独立服务于其他任何数据库的,并且尽可能的使用他们能够通用。因此也就没有实现有关储存数据的功能(如:审计日志、Session管理、授权) Module Zero实现了ASP.NET Boilerplate框架的所有基础概念,如租户管理(多租户),角色管理,用户管理,session,授权(权限管理),设置管理,语言管理,审计日志等等。 Microsoft ASP.NET Identity框架

10 ABP+ZERO=? 博客园阳铭

11 介绍github上的项目都是什么

12 基于DDD的分层结构-DDD简述 领域驱动设计(Domain-driven Design) 一种模型驱动的软件设计方式 以上来自汤雪华的博客

13 领域驱动设计的经典分层架构 用户界面/展现层 应用层 领域层 基础设施层 负责向用户展现信息以及解释用户命令。更细的方面来讲就是:
请求应用层以获取用户所需要展现的数据; 发送命令给应用层要求其执行某个用户命令; 应用层 很薄的一层,定义软件要完成的所有任务。对外为展现层提供各种应用功能(包括查询或命令),对内调用领域层(领域对象或领域服务)完成各种业务逻辑,应用层不包含业务逻辑。 领域层 负责表达业务概念,业务状态信息以及业务规则,领域模型处于这一层,是业务软件的核心。 基础设施层 本层为其他层提供通用的技术能力;提供了层间的通信;为领域层实现持久化机制;总之,基础设施层可以通过架构和框架来支持其他层的技术需求;

14 ABPZero的项目分层架构图(DDD)
图片来自阳铭

15 项目结构-案例项目结构

16 Thanks!


Download ppt "作者:梁桐铭 博客: 微信公众号:角落的白板报"

Similar presentations


Ads by Google