前言:  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)的更多相关文章

  1. ABP架构设计交流群-上海线下交流会的内容分享(有高清录像视频的链接)

    点这里进入ABP系列文章总目录 ABP架构设计交流群-7月18日上海线下交流会内容分享 因为最近工作特别忙,很久没有更新博客了,真对不起关注我博客和ABP系列文章的朋友! 原计划在7月11日举行的AB ...

  2. ABP架构学习系列一 整体项目结构及目录

    本系列是基于aspnetboilerplate-0.8.4.0版本写的,其中原因是由于较高的版本太抽象难以理解和分析,对于还菜菜的我要花更多的时间去学习. abp的源码分析学习主要来源于 HK Zha ...

  3. ABP架构学习系列

    ABP实践学习系列 ABP Zero 本地化语言的初始化和扩展 ABP Zero 导航菜单之角色权限 ABP Zero示例项目问题总结  ABP后台服务之作业调度Quartz.NET   ABP架构学 ...

  4. ABP架构

    ABP架构 一.什么是ABP架构? ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ASP.NET Boilerplate 基于DDD的经典分层 ...

  5. ABP架构解析

    ABP总体介绍 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ASP.NET Boilerplate是一个用最佳实践和流行技术开发现代WEB应 ...

  6. ABP架构学习系列三:手工搭建ABP框架

    由于公司的项目才接触到ABP这个框架,当时就觉得高大上,什么IOC.AOP.ddd各种专业词汇让人激情 澎湃,但在使用过程中碰到了许多坑,可能也许是没有去看源码导致的,但工作确实没有那么多时间让人去慢 ...

  7. ABP架构学习系列二:ABP中配置的注册和初始化

    一.手工搭建平台 1.创建项目 创建MVC5项目,手动引入Abp.Abp.Web.Abp.Web.Mvc.Abp.Web.Api 使用nuget添加Newtonsoft.Json.Castle.Cor ...

  8. ABP架构学习系列四:集成Dapper

    之前,一直想集成Dapper到项目中,但是一直没成功,今天把abp升级到最新版,然后按教程来,就可以了,呵呵    现在,基于上一篇的源码进行升级和集成dapper,将abp升级到3.8.2   官方 ...

  9. abp架构添加实体并使用迁移功能生成表

    参考: https://aspnetboilerplate.com/Pages/Articles/Introduction-With-AspNet-Core-And-Entity-Framework- ...

随机推荐

  1. JAX-WS使用Handler实现简单的WebService权限验证

    WebService如果涉及到安全保密或者使用权限的时候,WS-Security通常是最优选择.WS-Security (Web服务安全) 包含了关于如何在WebService消息上保证完整性和机密性 ...

  2. (2)FluidMoveBehavior 之单击 Grid 中 Tile 进行排序

    在上一篇文章中,使用 FluidMoveBehavior 结合 FluidMoveSetTagBehavior 可以使数据从 ListBox 中的 数据显示时,产生缓慢的动画,从而更加生动.其实 Fl ...

  3. Windows Phone 解析手机型号DeviceStatus.DeviceName

    问题的产生 在WP开发过程中难免遇到统计等相关的数据回收,那么当使用DeviceStatus.DeviceName这个来获取设备的名称时经常会得到类似下面的设备信息:     可以看出这样的数据很不直 ...

  4. lua文件读写

    lua里的文件读写模型来自C语言,分为完整模型(和C一样).简单模型. 1.简单模型 io.input([file])  设置默认的输入文件,file为文件名(此时会以文本读入)或文件句柄(可以理解为 ...

  5. [接口]mmc/eMMC/SD-card

    转自:http://blog.csdn.net/yazhouren/article/details/46643321 MMC(multiMedia card)是一种通信协议,支持两种模式SPI和MMC ...

  6. webservice文件上传下载

    使用DataHandler实现webservice的文件上传下载 服务端代码: package com.hello.weChat.controller; import javax.activation ...

  7. HTML5关于上传API的一些使用(下)

    通过前面两篇的分享,我们已经搞定了单个文件的普通的上传,包括文件预览,图片预览,上传速度等前端界面的显示,这次我们来谈谈关于>XMLHttpRequest2.0在界面之后假如才用分片上传能做到一 ...

  8. myeclipse工程重名后怎么更改deploy location?

    http://zhidao.baidu.com/link?url=I9E16OYfxovPHqBrRWhYCI9TYNG_X-Whg_X7QrJiOBXBGEwi-6WYsC-Zi4Jcg9zd3ye ...

  9. [velocity] velocity详解

    (1)为什么要使用模版语言? 在服务器端可以使用 Velocity 处理模板和生成的动态内容(HTML.XML等).这和 JSP 技术的目标非常接近.但是,JSP 模型可以毫无阻碍地访问底层的 Ser ...

  10. SQLserver 设置自增为显式插入

    默认是状态是set IDENTITY_INSERT T2 off ,就是关闭了自动插入值的功能,为空时就会报错 ,,'') 报错: 消息 544,级别 16,状态 1,第 1 行当 IDENTITY_ ...