【转】ABP源码分析一:整体项目结构及目录

ABP是一套非常优秀的web应用程序架构,适合用来搭建集中式架构的web应用程序。

整个Abp的Infrastructure是以Abp这个package为核心模块(core)+15个模块(module).其中13个依赖于Abp这个核心包。另外两个包(FluentMigration,Web.Resources)相对独立

Abp.AutoMapper: 实现对象之间的自动映射。

Abp.EntityFramework:通过EntityFramework实现数据访问层。

Abp.FluentMigrator :对FluentMigrator库做了易用性扩展。

Abp.HangFire:集成了HangFire,用于实现后台工作任务。

Abp.MemoryDb:MemoryDB的数据访问层

Abp.MongoDB:MongoDB的数据访问层。这个模块是个鸡肋,实际项目中无法使用。原因后面会详述。

Abp.NHibernate:通过NHibernate实现数据访问层。

Abp.Owin:目前只有一个IAppBuilder的扩展方法,用来解决application启动时候的AppDomain CultureInfo Leak问题。 关于这个Issue可以点击这里。

Abp.RedisCache:Redis的数据访问层

Abp.Web: 提供给ASP.Net web application 使用的模块

Abp.Web.Api: 提供给ASP.Net web application Webapi使用的模块

Abp.Web.Mvc: 提供给ASP.Net web application MVC 使用的模块

Abp.Web.Api.Odata : 提供给ASP.Net web application Webapi Odata 使用的模块

Abp.Web.SignalR : 集成SignalR

Abp.Web.Resources:这个模块中只有js和css代码,是用来扩展angularjs或jquery的?

 

ABP源码分析系列文章目录:

ABP源码分析二:ABP中配置的注册和初始化

ABP源码分析三:ABP Module

ABP源码分析四:Configuration

ABP源码分析五:ABP初始化全过程

ABP源码分析六:依赖注入的实现

ABP源码分析七:Setting 以及 Mail

ABP源码分析八:Logger集成

ABP源码分析九:后台工作任务

ABP源码分析十:Unit Of Work

ABP源码分析十一:Timing

ABP源码分析十二:本地化

ABP源码分析十三:缓存Cache实现

ABP源码分析十四:Entity的设计

ABP源码分析十五:ABP中的实用扩展方法

ABP源码分析十六:DTO的设计

ABP源码分析十七:DTO 自动校验的实现

ABP源码分析十八:UI Inputs

ABP源码分析十九:Auditing

ABP源码分析二十:ApplicationService

ABP源码分析二十一:Feature

ABP源码分析二十二:Navigation

ABP源码分析二十三:Authorization

ABP源码分析二十四:Notification

ABP源码分析二十五:EventBus

ABP源码分析二十六:核心框架中的一些其他功能

ABP源码分析二十七:ABP.Entity Framework

ABP源码分析二十八:ABP.MemoryDB

ABP源码分析二十九:ABP.MongoDb

ABP源码分析三十:ABP.RedisCache

ABP源码分析三十一:ABP.AutoMapper

ABP源码分析三十二:ABP.SignalR

ABP源码分析三十三:ABP.Web

ABP源码分析三十四:ABP.Web.Mvc

ABP源码分析三十五:ABP中动态WebAPI原理解析

ABP源码分析三十六:ABP.Web.Api

ABP源码分析三十七:ABP.Web.Api Script Proxy API

ABP源码分析三十八: ABP.Web.Api.OData

ABP源码分析三十九:ABP.Hangfire

ABP源码分析四十:ZERO的Application和Tenant

ABP源码分析四十一:ZERO的Audit,Setting,Background Job

ABP源码分析四十二:ZERO的身份认证

ABP源码分析四十三:ZERO的本地化

ABP源码分析四十四:ZERO的配置

ABP源码分析四十五:ABP ZERO中的EntityFramework模块

ABP源码分析四十六:ABP ZERO中的Ldap模块

ABP源码分析四十七:ABP中的异常处理

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/436754.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaScript 中的短路求值(if语句简洁写法--逻辑运算符||和的高级用法)

在JavaScript中,Short-Circuit Evaluation(短路求值)是一种逻辑运算的行为,其中表达式的求值在达到不必要的部分时就提前终止(所以短路一词非常贴切)。这种行为可以通过逻辑运算符(例如&&am…

【转】ABP源码分析二:ABP中配置的注册和初始化

一般来说,ASP.NET Web应用程序的第一个执行的方法是Global.asax下定义的Start方法。执行这个方法前HttpApplication 实例必须存在,也就是说其构造函数必然已完成了执行。 ABP开始的地方就是HttpApplication的构造函数。 如下图一,Abp定义了一…

python文本进度条94页_Python学习笔记 | 实例4:文本进度条

本文为中国大学MOOC《Python语言程序设计》课程学习笔记,课程主讲:嵩天老师,练习平台:Python123,参考教材:《Python语言程序设计基础》文本进度条-简单的开始import timescale 10print("----执行开始…

【转】ABP源码分析三:ABP Module

Abp是基于模块化设计思想进行构建的。开发人员可以将自定义的功能以模块(module)的形式集成到ABP中。具体的功能都可以设计成一个单独的Module。Abp底层框架提供便捷的方法集成每个Module.下图是所有Abp自带的module.AbpModule是所有Module的基类&#x…

java weka 聚类_简单开源数据挖掘工具weka进行文本聚类

目前非代码的数据挖掘工具很多,但非开源,weka是一款开源软件。只要安装jdk环境就可使用(具体安装jdk可以百度)本文将论述如何不用代码,使用weka操作,通过与文档频数与单词权的特征选择方法进行文本聚类(数据为附件)第一步&#xf…

java 不识别enum_Java enum关键字不识别的快速解决办法

从别人那儿拷贝过来的myeclipse java工程,打开一看标红了一大片,仔细一看,原来是不识别enum关键字,这就有点尴尬了。我自己重新建了一个java工程,测试了下,假如我在新建工程的时候选择javase-1.6&#xff1…

【转】ABP源码分析四:Configuration

核心模块的配置 Configuration是ABP中设计比较巧妙的地方。其通过AbpStartupConfiguration,Castle的依赖注入,Dictionary对象和扩展方法很巧妙的实现了配置中心化。配置中心化是一个支持模块开发的框架必备功能。 ABP中核心功能模块中的一些功能的运行时…

java 实现 堆和栈_JAVA中的堆和栈

JVM是基于堆栈的虚拟机.JVM为每个新创建的线程都分配一个堆栈.也就是说,对于一个Java程序来说,它的运行就是通过对堆栈的操作来完成的。堆栈以帧为单位保存线程的状态。JVM对堆栈只进行两种操作:以帧为单位的压栈和出栈操作。差异:1.堆内存用来存放由new…

【转】ABP源码分析五:ABP初始化全过程

ABP在初始化阶段做了哪些操作,前面的四篇文章大致描述了一下。 为个更清楚的描述其脉络,做了张流程图以辅助说明。其中每一步都涉及很多细节,难以在一张图中全部表现出来。每一步的细节(会涉及到较多接口,类&#xff0…

【转】ABP源码分析六:依赖注入的实现

ABP的依赖注入的实现有一个本质两个途径:1.本质上是依赖于Castle这个老牌依赖注入的框架。2.一种实现途径是通过实现IConventionalDependencyRegistrar的实例定义注入的约定(规则),然后通过IocManager来读取这个规则完成依赖注入。…

java从小到大排序函数_利用随机函数产生10个1~100之间的整数,按从小到大的顺序排列输出...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼public interface planeGraphics2{public abstract double area();public abstract double perimeter();public abstract void print();}public class rectangle2 implements planeGraphics2{protected double length;protected do…

【转】ABP源码分析七:Setting 以及 Mail

本文主要说明Setting的实现以及Mail这个功能模块如何使用Setting. 首先区分一下ABP中的Setting和Configuration。 Setting一般用于需要通过外部配置文件(或数据库)设置的简单类型数据(一般就是字符串),比如SMTP HOST.…

java流换行符方法_java换行符的使用方法

java换行符的使用方法发布时间:2020-06-22 17:49:56来源:亿速云阅读:121作者:Leah这篇文章将为大家详细讲解有关java换行符的使用方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完…

【转】ABP源码分析八:Logger集成

ABP使用Castle日志记录工具,并且可以使用不同的日志类库,比如:Log4Net, NLog, Serilog... 等等。对于所有的日志类库,Castle提供了一个通用的接口来实现,我们可以很方便的处理各种特殊的日志库,而且当业务需…

java并发锁获取的方式_Java精通并发-notify方法详解及线程获取锁的方式分析

wait():在上一次https://www.cnblogs.com/webor2006/p/11404521.html中对于无参数的wait()方法的javadoc进行了解读,而它是调用了一个参数的重载方法,回忆下:其中如果传0代表无限等待,否则是等待指定的时间就会停止等待…

【转】ABP源码分析九:后台工作任务

文主要说明ABP中后台工作者模块(BackgroundWorker)的实现方式,和后台工作模块(BackgroundJob)。ABP通过BackgroundWorkerManager来管理BackgroundJobManager,然后通过BackgroundJobManager来管理Background…

java引入resource下的模板_Beetl自定义ResourceLoader,实现特殊的模板加载需求

一直以来,有个目标是:使用Beetl的时候,如果web root 里有模板文件,则beetl从web root里加载。如果没有,则从jar里加载,或者从Db里加载。这样,工程里大量相同的模板模板可以共用(当你的应用&…

【转】ABP源码分析十:Unit Of Work

ABP以AOP的方式实现UnitOfWork功能。通过UnitOfWorkRegistrar将UnitOfWorkInterceptor在某个类被注册到IOCContainner的时候,一并添加到该类在容器中对应的ComponentModel的Interceptors集合中。总结一句话就是,UOW的功能是通过自定义Castle拦截器来实现…

java光标位置无效_java - java.sql.SQLException:无效的光标位置 - 堆栈内存溢出

我创建了一个简单的应用程序,使用户可以购买门票。 但是,每当我尝试购买“ n”张门票时,都会遇到此错误。 现在,我知道在使用数据库进行操作时需要crs.next()语句,我已经使用了很多次,但是由于某种原因&…

【转】C#命名空间大全详细教程

www.51rgb.com System 命名空间包含了定义数据类型、事件和事件处理程序等基本类; System.Data 命名空间包含了提供数据访问功能的命名空间和类; System.IO 命名空间包含了数据流读写相关功能的类; System.Windows.Forms 命名空间包含了W…