BodeAbp概述

BodeAbp框架基于github开源框架ASP.NET Boilerplate,abp项目地址:https://github.com/aspnetboilerplate/aspnetboilerplate

BodeAbp项目地址:https://github.com/liuxx001/BodeAbp

abp学习文章:

1、官方文档:http://www.aspnetboilerplate.com/Pages/Documents

2、tkb至简博客:http://www.cnblogs.com/farb/category/740324.html

3、阳光铭睿博客:http://www.cnblogs.com/mienreal/tag/ABP/

4、HK Zhang源码分析系列:http://www.cnblogs.com/1zhk/category/798531.html

BodeAbp的改动点:

1、前后端完全分离,舍弃作者提供的angular.js实现的前端,改用react.js

2、将EF的迁移方式改为自动迁移

3、功能模块化,使用abp提供的动态webapi实现功能模块的分离

4、去除多租户,另起一个分支去除多租户代码(现在用不到,后续可能会提供多租户的版本)

5、添加一些工具类

BodeAbp的初衷:

每个做过的项目都是有价值的,不管项目本身是成功还是失败,每个项目的代码都是我们的几个月甚至几年的心血。任何一个项目能让我们沉淀下来的东西我认为不仅仅是技术能力,也还有业务模块。一个新项目不应该是从零开始,而应该是在自身或者公司的技术以及业务积累之上开始。

好吧,接地气的说法就是我希望几年以后做项目是在业务模块库中拼拼凑凑,然后做一些细微调整就可以交给客户了。

BodeAbp的一些思想:

1、每一个业务模块应该是足够独立的,是能维护自身状态的。包括模型(数据表)、api、权限、菜单、设置项等。业务模块之间的依赖应该是尽可能小的。

2、关于EF的自动迁移,有褒有贬,但是为了业务模块中模型(数据表)的独立,还是采用了自动迁移,毕竟如果添加一个模块,都要在模块之外的DbContext中加许多属性这个设计就真的太不好了。

3、关于DDD,BodeAbp业务模块中并没有完全按照DDD的思想来设计,思想是方便和指导开发的,但总被思想束缚我认为也是不妥的,设计合理即可。当然也可能是我对DDD的理解还不够深刻。

4、关于多租户,我另外创建了一个分支删除了所有关于多租户的代码,现在用不到也加大了业务模块的复杂度,后续时间空余后可能会提供多租户的版本。

5、关于模块之间的通信,使用了abp提供的事件机制,模块间不会相互依赖,只会相互通知。

BodeAbp适用人群:

1、外包公司

2、喜欢接私单的小伙伴

3、abp框架的使用者

BodeAbp的缺点:

1、框架着眼于业务模块的重用,在意的是业务模块的通用性,对于专业性特别强的如银行、医疗、保险系统帮助不是很大

2、在宏愿完成之前,框架不能进行分布式部署,不适合互联网项目

3、对于abp框架的升级以及bug修复的时间会落后于直接使用原abp框架。

4、由于作者很懒,经常很久不更新,所以分享仅供交流,慎用。

BodeAbp的宏愿:

让每个业务模块都能集群部署。

时间: 2024-08-06 19:23:57

BodeAbp概述的相关文章

第一课 MongoDB 概述与安装

1.课程大纲 本次课主要介绍 MongoDB 背景知识和 MongoDB 的安装与配置,让大家对 MongoDB 有一个初认识. 其基本的知识点包含: NoSQL数据库概述 MongoDB 数据库简单介绍 Linux 下安装 MongoDB 数据库 Mac 和 Windows 下安装 MongoDB 数据库 2.课程简单介绍 MongoDB是由MongoDB.inc研发的一款NoSQL类型的文档型数据库,MonogoDB名字来源于英文单词humongous,这个单词的意思是巨大无比.暗喻Mong

java面向对象:面向对象的思想和概述

1:面向对象思想 面向对象是基于面向过程的编程思想. 面向过程:强调的是每一个功能的步骤 面向对象:强调的是对象,然后由对象去调用功能 2:面向对象的思想特点 A:是一种更符合我们思想习惯的思想 B:可以将复杂的事情简单化 C:将我们从执行者变成了指挥者 开发,设计,特征 面向对象开发 就是不断的创建对象,使用对象,指挥对象做事情. 面向对象设计 其实就是在管理和维护对象之间的关系. 面向对象特征 封装(encapsulation) 继承(inheritance) 多态(polymorphism

java基础总结——概述

  一.java语言概述 来自维基百科 https://zh.wikipedia.org/wiki/Java Java是一种计算机编程语言,拥有跨平台.面向对象.泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发. 任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言,应用在电视机.电话.闹钟.烤面包机等家用电器的控制和通信.由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划.随着1990

译-BMC Remedy Action Request System权限控制概述

原文链接:Access control overview 说明: BMC Remedy Action Request System是BMC ITSM产品平台,简称AR 或者Remedy,可实现基于ITIL标准的整个IT管理流程的实施定制.该平台可实现多种权限级别的管理,包括人员.组.角色,以及表.字段.行级别等.本文可以用作其他对权限要求比较精细的系统参考. 为了便于理解,部分名词翻译如下: Server:服务器Form (or table):表单Field (or column):字段Acti

Aircrack-ng: (1) 概述

作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 目录 一.概述 二.工具与命令介绍 Linux命令 (1) ifconfig (2) macchanger (3) iwconfig (4) iwlist Aircrack-ng 工具 (1) airmon-ng (2) airodump-ng (3) aireplay-ng (4) aircrack-ng 其他Aircrack-ng工具 一.概述 Aircrack-ng是一款用于破解无线

NHibernate框架与BLL+DAL+Model+Controller+UI 多层架构十分相似--『Spring.NET+NHibernate+泛型』概述、知识准备及介绍(一)

原文://http://blog.csdn.net/wb09100310/article/details/47271555 1. 概述 搭建了Spring.NET+NHibernate的一个数据查询系统.之前没用过这两个框架,也算是先学现买,在做完设计之 后花了一周搭建成功了.其中,还加上了我的一些改进思想,把DAO和BLL之中相似且常用的增删改查通过泛型T抽象到了DAO和BLL的父类中,其DAO 和BLL子类只需继承父类就拥有了这些方法.和之前的一个数据库表(视图)对应一个实体,一个实体对应一

排序算法--概述和参考

1 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存. 我们这里说说八大排序就是内部排序. 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序.堆排序或归并排序序. 快速排序:是目前基于比较的内部排序中被认为是最好的方法,当待排序的关键字是随机分布时,快速排序的平均时间最短: 2 参考 http://blog.csdn.net/hguisu/article/details/77

Css3之高级-7 Css动画(概述、关键帧、动画属性)

一.动画概述 动画概念 - 过渡属性只能模拟动画效果 - animation 属性可以制作类似 Flash 动画 - 通过关键帧控制动画的每一步 - 使元素从一种样式逐渐变化为另一种样式 - 实现复杂的动画效果 - 浏览器兼容性 - 最新版本支持良好 - Chrome 和 Safari 需要前缀 -webkit- - FireFox 需要前缀 -moz- - Opera 需要前缀 -o- 动画示例 - 声明动画 - 创建一个已命名的动画 - 使用 @keyframes 声明动画的关键帧 - 为元

android动画详解一 概述

动画和图形概述 Android 提供了大量的强大的API以应用于UI动画和绘制2D和3D图形.下面各节向你描述了这些API的预览和系统能力以帮助你决定怎么才是达到你需求的最佳方法. 动画 Android 框架提供了两个动画系统: 两种动画系统都是切实可用的,但是一般情况下属性动画系统是被首推使用的.因为它更灵活并且提供了更多的特性.在此两系统之外,你还可以使用Drawable动画,它使得你可以加载drawable资源并且一帧帧的显示它们. Property动画 从Android 3.0 (API