Orchard 与 ABP架构比较 (aspnetboilerplate)
前言: ABP框架经常在一些.NET群中听群友提起,以前也浏览过官网,大致了解它是一个框架,直到今天本人才正式下载源码入门 ...
经过两个小时的ABP中文文档入门(感谢各位辛勤的翻译者) ,大致了解到 ABP框架提供了一些类似 Orchard的功能,如 日志,多租户,事件总线,多语言等.
由于刚刚接触ABP框架,下面来谈谈我对它的基本理解,不当之处敬请各位指正 :
| Abp | Orchard | 作用 | |
| 项目定位 | 开发框架 | 内容管理系统(CMS)+开发框架 | |
| 基础框架 | aspnetboilerplate(ABP.dll) (源码) | Orchard.Framework | 两者都不能独立运行, 提供框架基础架构 |
| 核心实现 | module-zero (源码), 纯库,没有UI实现部分,不能独立运行 | Orchard.Core(核心模块集合,里面的每一个文件夹均为一个模块), 有UI实现. |
ABP提供常用的基础功能,ABP有用户,角色,多租户,配置管理,Orchard有CMS相关的核心模块 |
| 模块生成 | module-zero-template(源码),提供在线版. | Orchard.CodeGeneration(命令行) | ABP官网提供一个在线的模块创建功能(地址),此生成器有两个版本: 1.仅依赖核心ABP 2.依赖Module-Zero. ABP在创建模块的时候并没有提供输入一些meta信息,而orchard可以. |
一直以来,很多.NET开发者都非常喜欢Orchard这个项目,但是部分有洁癖的开发者总是想方设法将它剥离成一个干净的框架,如OrchardNoCms,
如今ABP可能是你最佳的选择:
1 .ABP拥有非常类似Orchard的项目结构(笔者甚至认为ABP的灵感取自Orchard).
2. 功能上也提供与Orchard同等的特性, 如多租户,模块,日志,用户,角色,授权等.
3. ABP没有附带任何额外的业务代码, 用户与角色这样核心功能也在是Zero模块中实现 ,如果你不喜欢可以不用.
利用ABP框架进行二次开发,如果不关注框架本身,直接使用线上的地址生成模块下载到本地, 再用nuget下载 Abp.dll和 Abp.zero.dll(可选)及其它三方依赖就可以直接开发Web应用程序.
ABP框架为企业用户提供一个付费的后台管理实现 : aspnetzero(地址,$699,$1699,$2799 三种license) , 利用这个增值模块, 你可以拥有一套基于Bootstrap的后台管理UI来管理多租户及用户角色等基本信息,当然你也可以使用它开发其它功能.
好了最后再说一句:
Abp尚在主力开发期,截止目前还未到达1.0版,接口变更很频繁,如果用于产品环境将要面临升级与不升级的纠结中!
如果你非侵入式的进行ABP二次开发,升级时改动略小, 如果是侵入式的,那么升级将是非常痛苦的事情!
Orchard是一个经历6年的项目,由微软ASP.NET小组成员主刀, 目前进入主力维护优化期,接口非常稳定,而且使用Orchard开发,可以尽可能的非侵入(本人一直是非侵入坚持者),
模块间并不需项目依赖,即使需要调用另一个模块的方法(模块通信),也可以使用Orchard强大的事件总线实现!
下面来一张ABP架构简图

Orchard 与 ABP架构比较 (aspnetboilerplate)的更多相关文章
- ABP架构设计交流群-上海线下交流会的内容分享(有高清录像视频的链接)
点这里进入ABP系列文章总目录 ABP架构设计交流群-7月18日上海线下交流会内容分享 因为最近工作特别忙,很久没有更新博客了,真对不起关注我博客和ABP系列文章的朋友! 原计划在7月11日举行的AB ...
- ABP架构学习系列一 整体项目结构及目录
本系列是基于aspnetboilerplate-0.8.4.0版本写的,其中原因是由于较高的版本太抽象难以理解和分析,对于还菜菜的我要花更多的时间去学习. abp的源码分析学习主要来源于 HK Zha ...
- ABP架构学习系列
ABP实践学习系列 ABP Zero 本地化语言的初始化和扩展 ABP Zero 导航菜单之角色权限 ABP Zero示例项目问题总结 ABP后台服务之作业调度Quartz.NET ABP架构学 ...
- ABP架构
ABP架构 一.什么是ABP架构? ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ASP.NET Boilerplate 基于DDD的经典分层 ...
- ABP架构解析
ABP总体介绍 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ASP.NET Boilerplate是一个用最佳实践和流行技术开发现代WEB应 ...
- ABP架构学习系列三:手工搭建ABP框架
由于公司的项目才接触到ABP这个框架,当时就觉得高大上,什么IOC.AOP.ddd各种专业词汇让人激情 澎湃,但在使用过程中碰到了许多坑,可能也许是没有去看源码导致的,但工作确实没有那么多时间让人去慢 ...
- ABP架构学习系列二:ABP中配置的注册和初始化
一.手工搭建平台 1.创建项目 创建MVC5项目,手动引入Abp.Abp.Web.Abp.Web.Mvc.Abp.Web.Api 使用nuget添加Newtonsoft.Json.Castle.Cor ...
- ABP架构学习系列四:集成Dapper
之前,一直想集成Dapper到项目中,但是一直没成功,今天把abp升级到最新版,然后按教程来,就可以了,呵呵 现在,基于上一篇的源码进行升级和集成dapper,将abp升级到3.8.2 官方 ...
- abp架构添加实体并使用迁移功能生成表
参考: https://aspnetboilerplate.com/Pages/Articles/Introduction-With-AspNet-Core-And-Entity-Framework- ...
随机推荐
- Xcode常见问题
今天真机测试的时候,突然出现了这个错误: not have an architecture that “Administrator”的 iPhone (3) can execute. 原因是我刚刚修 ...
- Ubuntu/Debian交叉编译安装ARM平台版本的ffmpeg
1 准备工作 (1)libmp3lame库 下载: wget http://downloads.sourceforge.net/lame/lame-3.99.tar.gz 解压 编译:./con ...
- SAP ECC6安装系列四:安装过程详解
原作者博客 http://www.cnblogs.com/Michael_z/ ======================================== 续接上篇,我们终于按下了 “Next” ...
- Django REST framework 知识点总结
一.安装DjangoREST framework #先安装Django #安装必要的包 pip install djangorestframework coreapi (1.32.0+) - Sche ...
- FreeRTOS 调试方法(printf---打印任务执行情况)
以下转载自安富莱电子: http://forum.armfly.com/forum.php 本章节为大家介绍 FreeRTOS 的调试方法,这里的调试方法主要是教会大家如何获取任务的执行情况,通过获取 ...
- 今天遇到个PHP不知原因的报内部错误
今天遇到个PHP不知原因的报内部错误 纠结了很久想尽了办法,1.apache日志 2.错误级别 ,还差点就把自己写的那个破烂不堪的日志系统加上去了 纠结了很久还是无果,在最终,最终发现了 原来是类命名 ...
- androidStudio简便安装
最近在公司由eclipse换为androidstudio,说句实话,androidstudio还是蛮好用的,但是自己刚刚安装的时候遇到很多的问题,问了度娘,各种说法都有,还是捣鼓不得,于是自己尝试,弄 ...
- Codeforces461A Appleman and Toastman 贪心
题目大意是Appleman每次将Toastman给他的Ni个数拆分成两部分后再还给Toastman,若Ni == 1则直接丢弃不拆分.而Toastman将每次获得的Mi个数累加起来作为分数,初始时To ...
- Unix系统编程()发送信号kill
与shell的kill命令类似,一个进程能够使用kill系统调用向另一进程发送信号. 之所以选择kill作为术语,因为早期UNIX实现中大多数信号的默认行为是终止进程. #include <si ...
- [Java] 高效快速导入EXCEL数据
需求1.高效率的以excel表格的方式导入多条数据.2.以身份证号为唯一标识,如果身份证号已存在,则该条数据不导入. 分析刚开始的时候是传统的做法,解析excel数据,获取单个对象,判断身份证是否已存 ...