abp总体介绍-入门介绍

jrsoft jrsoft     2022-11-03     805

关键词:

ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称。

ASP.NET Boilerplate是一个用最佳实践和流行技术开发现代WEB应用程序的新起点,它旨在成为一个通用的WEB应用程序基础框架和项目模板。

ASP.NET Boilerplate 基于DDD的经典分层架构思想,实现了众多DDD的概念(但没有实现所有DDD的概念)。

ABP框架于2014年5月4日首次在Github开源,截止到2015年5月25日,总共进行了1271次代码提交,49次版本发布,现在的版本号是0.6.1.1。

1.1.1 ABP采用了以下技术

服务器端:

  • ASP.NET MVC 5、Web API 2、C# 5.0
  • DDD领域驱动设计 (Entities、Repositories、Domain Services、Domain Events、Application Services、DTOs等)
  • Castle windsor (依赖注入容器)
  • Entity Framework 6 \ NHibernate,数据迁移
  • Log4Net(日志记录)
  • AutoMapper(实现Dto类与实体类的双向自动转换)

客户端:

  • Bootstrap
  • Less
  • AngularJs
  • jQuery
  • Modernizr
  • 其他JS库: jQuery.validate、jQuery.form、jQuery.blockUI、json2

1.1.2 ABP框架已实现了以下特性

  • 多语言/本地化支持
  • 多租户支持(每个租户的数据自动隔离,业务模块开发者不需要在保存和查询数时写相应代码)
  • 软删除支持(继承相应的基类或实现相应接口,会自动实现软删除)
  • 统一的异常处理(应用层几乎不需要处理自己写异常处理代码)
  • 数据有效性验证(Asp.NET MVC只能做到Action方法的参数验证,ABP实现了Application层方法的参数有效性验证)
  • 日志记录(自动记录程序异常)
  • 模块化开发(每个模块有独立的EF DbContext,可单独指定数据库)
  • Repository仓储模式(已实现了Entity Framework、NHibernate、MangoDB、内存数据库)
  • Unit Of Work工作单元模式(为应用层和仓储层的方法自动实现数据库事务)
  • EventBus实现领域事件(Domain Events)
  • DLL嵌入资源管理
  • 通过Application Services自动创建Web Api层(不需要写ApiController层了)
  • 自动创建Javascript 的代理层来更方便使用Web Api
  • 封装一些Javascript 函数,更方便地使用ajax、消息框、通知组件、忙状态的遮罩层

“Zero”的模块,实现了以下功能:

  • 身份验证与授权管理(通过ASP.NET Identity实现的)
  • 用户&角色管理
  • 系统设置存取管理(系统级、租户级、用户级,作用范围自动管理)
  • 审计日志(自动记录每一次接口的调用者和参数)

在其他项目中的很多优秀设计,在ABP项目中也已存在,而且可能实现得更好。ABP框架的代码,都通过xUnit进行了单元测试。作者一直在用ABP框架开发他们的实际项目,从Github和他官方论坛上的信息可以看到,有很多国外的开发者在将ABP用作生产项目的基础框架。如果需要直接使用ABP组件,可以通过Nuget安装(在VS的Nuget包管理界面搜索ABP)。

为了更好地将ABP适用于自己的项目,我对ABP的源码做了一些修改后使用的,没有直接使用ABP组件。

我希望更多国内的架构师能关注ABP这个项目,也许这其中有能帮助到你的地方,也许有你的参与,这个项目可以发展得更好。

今天只是作了一个大概介绍,希望有更多的朋友能去阅读源代码,然后参与讨论。

1.1.3 ABP适用的场景

中小规模WEB应用开发,可直接使用ABP框架。 较大型项目可以在ABP框架的源码基础上进行扩展,以实现分布式架构。

注:处理高并发并不是ABP的强项。需要非常高并发的DDD框架,建议去研究netfocus的ENode。

abp开发框架前后端开发系列---框架的总体介绍

ABP是ASP.NETBoilerplate的简称,ABP是一个开源且文档友好的应用程序框架。ABP不仅仅是一个框架,它还提供了一个最徍实践的基于领域驱动设计(DDD)的体系结构模型。学习使用ABP框架也有一段时间了,一直想全面了解下这个框架的整个... 查看详情

js总体介绍

一.总体介绍  结合近半年来前端的项目的经验,这里梳理一下JS常用知识,方便自己日后温习查找,同时给广大JS入门者提供一些帮助,文章中如有错误,欢迎指出。  这里从JS常用事件、Dom方法、数组、Dom操作、of... 查看详情

微搭低代码从入门到精通01-总体介绍

在过去我们开发小程序,要学习各类知识。比如前端知识、后端知识、服务器知识及各种中间件及数据库的知识。要想学会这些知识,既需要投入大量的学习时间,而且要经过相当的实践才可以掌握。如果立志从事开... 查看详情

微搭低代码从入门到精通01-总体介绍

在过去我们开发小程序,要学习各类知识。比如前端知识、后端知识、服务器知识及各种中间件及数据库的知识。要想学会这些知识,既需要投入大量的学习时间,而且要经过相当的实践才可以掌握。如果立志从事开... 查看详情

tensorflow2入门指南|11keras与tf.keras总体框架介绍

前言:本专栏在保证内容完整性的基础上,力求简洁,旨在让初学者能够更快地、高效地入门TensorFlow2深度学习框架。如果觉得本专栏对您有帮助的话,可以给一个小小的三连,各位的支持将是我创作的最大动力!系列文章汇总... 查看详情

微搭低代码入门教程02

微搭低代码入门教程第一章总体介绍上篇回顾我们在总体介绍部分讲解了本教程的一个总体规划和适用人群,并且初步介绍了账号的开通注册。本篇我们继续介绍一下账号相关的知识。版本介绍一般使用这类线上的环境的... 查看详情

magicodes.admin.core开源框架总体介绍

框架说明Magicodes.Admin.Core框架在ABP以及ASP.NETZERO的基础上进行了封装和完善,目前基于.NETCore2.0+(Framework版本),由于部分组件在.NETCore没有找到替代组件,所以真正意义上跨平台版本会在后续推出。目前本框架已经应用于团队的... 查看详情

abp学习入门系列

本文将介绍在ABP框架中使用代码创建一个数据库表1.下图是abp的体系结构。 我们要是实现创建数据库表的功能主要就是在下图中domain(领域层)做相应的一些操作。2,看一下解决方案,如下图。 core就是我们要做相应修... 查看详情

abp小功能介绍

...单操作,因为很多人不熟悉导致走了一些弯路。这篇文章介绍ABP框架中一些这样的小功能(仅限于不超过2步即可完成的功能),持续更新,欢迎补充。 这里是清单:默认账号、密码。默认语言。 这里是明细:1.默认账号... 查看详情

abp框架系列学习介绍篇(代码片段)

原文:【ABP框架系列学习】介绍篇(1) 0.引言该系列博文主要在【官方文档】及【tkbSimplest】ABP框架理论研究系列博文的基础上进行总结的,或许大家会质问,别人都已经翻译过了,这不是多此一举吗?原因如下:1.【tkbSimplest】... 查看详情

wpf入门教程系列六——布局介绍与canvas

...么普通用户会感觉这个软件没有多少使用价值。一. 总体介绍    WPF的布局控件都在System.Windows.Controls.Panel这个基类下 查看详情

wpf入门教程系列六——布局介绍与canvas

...么普通用户会感觉这个软件没有多少使用价值。一. 总体介绍    WPF的布局控件都在System.Windows.Controls.Panel这个基类下面,使用&n 查看详情

医美小程序实战视频教程01-总体介绍

医美小程序实战教程总体介绍 查看详情

elasticstack从入门到实践

...议第2章Elasticsearch篇之入门本章会对Elasticsearch篇进行一个总体的介绍,让大家对该篇每一章要讲解的内容有初步的了解。然后会讲解Elasticsearch中常见的术语、api,然后运行Elasticsearch并实际感受api的调用方式,为接下来的课程做... 查看详情

abp框架系列学习介绍篇(代码片段)

 0.引言该系列博文主要在【官方文档】及【tkbSimplest】ABP框架理论研究系列博文的基础上进行总结的,或许大家会质问,别人都已经翻译过了,这不是多此一举吗?原因如下:1.【tkbSimplest】的相关博文由于撰写得比较早的,... 查看详情

网络云盘项目——总体介绍附源码链接

...度云盘的项目。本项目分为6篇博客文章完成:1.项目总体介绍:本文介绍。2.Redis部署、MySQL部署、MySQL表设计:https://blog.csdn.net/qq_41453285/article/details/107871620。3.FastDFS集群部署:https://blog.csdn.ne 查看详情

angularjs学习笔记1——总体介绍

...中午闲暇时间继续分享Angularjs相关,今天主要分享Angularjs总体介绍及数据绑定部分内容,下面直接进入主题。1、基本概念:  AngularJS是为了克服HTML在构建应用上的不足而设计的。HTML是一门很好的伪静态文本展示设计的声明式... 查看详情

shiro学习总体介绍

1.1 简介ApacheShiro是Java的一个安全框架。目前,使用ApacheShiro的人越来越多,因为它相当简单,对比SpringSecurity,可能没有SpringSecurity做的功能强大,但是在实际工作时可能并不需要那么复杂的东西,所以使用小而简单的Shiro就... 查看详情