1. 程式人生 > >ABP原始碼分析一:整體專案結構及目錄

ABP原始碼分析一:整體專案結構及目錄

ABP是一套非常優秀的web應用程式架構,適合用來搭建集中式架構的web應用程式。

整個AbpInfrastructure是以Abp這個package為核心模組(core)+15個模組(module).其中13個依賴於Abp這個核心包。另外兩個包(FluentMigration,Web.Resources)相對獨立

Abp.AutoMapper: 實現物件之間的自動對映。

Abp.EntityFramework:通過EntityFramework實現資料訪問層。

Abp.FluentMigrator :對FluentMigrator庫做了易用性擴充套件。

Abp.HangFire:集成了HangFire,用於實現後臺工作任務。

Abp.MemoryDbMemoryDB的資料訪問層

Abp.MongoDBMongoDB的資料訪問層。這個模組是個雞肋,實際專案中無法使用。原因後面會詳述。

Abp.NHibernate:通過NHibernate實現資料訪問層。

Abp.Owin:目前只有一個IAppBuilder的擴充套件方法,用來解決application啟動時候的AppDomain CultureInfo Leak問題。 關於這個Issue可以點選這裡

Abp.RedisCacheRedis的資料訪問層

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是一套非常優秀的web應用程式架構,適合用來搭建集中式架構的web應用程式。 整個Abp的Infrastructure是以Abp這個package為核心模組(core)+15個模組(module).其中13個依賴於Abp這個核心包。另外兩個包(FluentMigration,Web.Resources

XBMC原始碼分析 1整體結構以及編譯方法

XBMC(全稱是XBOX Media Center)是一個開源的媒體中心軟體。XBMC最初為Xbox而開發,可以執行在Linux、OSX、Windows、Android4.0系統。我自己下載了一個然後體驗了一下,感覺確實不錯,和Windows自帶的媒體中心差不多。 XB

Dubbo原始碼分析()Dubbo原始碼結構概述

1.dubbo原始碼的結構 Dubbo原始檔主要包含以上這麼多包,其中:        dubbo-common 公共邏輯模組,包括Util類和通用模型。        dubbo-remotin

Glide 原始碼分析()圖片壓縮

關於圖片的那點事兒 Q: 一張大小為 55KB, 解析度為 1080 * 480 的 PNG 圖片,它載入近記憶體時所佔的大小是多少呢? 圖片記憶體大小 圖片佔用記憶體大小 = 解析度 * 畫素點大小 其中資料格式不同畫素點大小也不同: ALPHA_8: 1B RGB_565: 2B

JAVA中的集合原始碼分析ArrayList的內部實現原理

作為以java為語言開發的android開發者,集合幾乎天天都要打交道,無論是使用頻率最高的ArrayList還是HashSet,都頻繁的出現在平時的工作中。但是其中的原理之前卻一直沒深入探究,接下來記錄一下這次自己學習ArrayList原始碼的過程。 一.構造方法:

WebRTC原始碼分析視訊模組結構

本文在上篇的基礎上介紹WebRTC視訊部分的模組結構,以進一步瞭解其實現框架,只有瞭解了整體框架結構,對區域性演算法修改才能夠胸有成竹。 一、對外介面        對外介面有ViEBase,ViECapture,ViECodec,ViEEncryption,V

WebRTC原始碼分析音訊模組結構

  本文介紹WebRTC音訊模組組成和結構,詳細介紹音訊引擎的配置和啟動,相信看完本文後,很多人可以利用WebRTC完成一個音訊通話程式開發。 一、對外介面       音訊部分的對外主要介面如下,各個介面之間的關係如圖1所示。 1)VoiceEngine:負責引擎的所有介面查詢,儲存共享資料資訊Share

ABP原始碼分析ABP Module

Abp是一種基於模組化設計的思想構建的。開發人員可以將自定義的功能以模組(module)的形式整合到ABP中。具體的功能都可以設計成一個單獨的Module。Abp底層框架提供便捷的方法整合每個Module.下圖是所有Abp自帶的module.AbpModule是所有Module的基類,其已經擁有了IIocMa

ABP原始碼分析ABP初始化全過程

ABP在初始化階段做了哪些操作,前面的四篇文章大致描述了一下。 為個更清楚的描述其脈絡,做了張流程圖以輔助說明。其中每一步都涉及很多細節,難以在一張圖中全部表現出來。每一步的細節(會涉及到較多介面,類,呼叫關係,步驟流程什麼的)會在後面的文章中通過其他圖和文字詳細描述。其實如果仔細分析Abp原始碼的話,會發現

ABP原始碼分析十三快取Cache實現

ABP中有兩種cache的實現方式:MemroyCache 和 RedisCache. 如下圖,兩者都繼承至ICache介面(準確說是CacheBase抽象類)。ABP核心模組封裝了MemroyCache 來實現ABP中的預設快取功能。 Abp.RedisCache這個模組封裝RedisCache來實現快取(

ABP原始碼分析Logger整合

ABP使用Castle日誌記錄工具,並且可以使用不同的日誌類庫,比如:Log4Net, NLog, Serilog... 等等。對於所有的日誌類庫,Castle提供了一個通用的介面來實現,我們可以很方便的處理各種特殊的日誌庫,而且當業務需要的時候,很容易替換日誌元件。 Logger功能模組涉及到的介面和類不

ABP原始碼分析Configuration

核心模組的配置 Configuration是ABP中設計比較巧妙的地方。其通過AbpStartupConfiguration,Castle的依賴注入,Dictionary物件和擴充套件方法很巧妙的實現了配置中心化。配置中心化是一個支援模組開發的框架必備功能。 ABP中核心功能模組中的一些功能的執行時的

ABP原始碼分析ABP中配置的註冊和初始化

一般來說,ASP.NET Web應用程式的第一個執行的方法是Global.asax下定義的Start方法。執行這個方法前HttpApplication 例項必須存在,也就是說其建構函式的執行必然是完成了。 ABP開始的地方就是HttpApplication的建構函式。 如下圖一,Abp定義了一個繼承自Http

ABP原始碼分析依賴注入的實現

ABP的依賴注入的實現有一個本質兩個途徑:1.本質上是依賴於Castle這個老牌依賴注入的框架。2.一種實現途徑是通過實現IConventionalDependencyRegistrar的例項定義注入的約定(規則),然後通過IocManager來讀取這個規則完成依賴注入。3另一種實現途徑是直接IocManag

ABP原始碼分析Setting 以及 Mail

本文主要說明Setting的實現以及Mail這個功能模組如何使用Setting. 首先區分一下ABP中的Setting和Configuration。 Setting一般用於需要通過外部配置檔案(或資料庫)設定的簡單型別資料(一般就是字串),比如SMTP HOST. Configuration一般

ABP原始碼分析Unit Of Work

ABP以AOP的方式實現UnitOfWork功能。通過UnitOfWorkRegistrar將UnitOfWorkInterceptor在某個類被註冊到IOCContainner的時候,一併新增到該類在容器中對應的ComponentModel的Interceptors集合中。總結一句話就是,UOW的功能是通過

ABP原始碼分析後臺工作任務

文主要說明ABP中後臺工作者模組(BackgroundWorker)的實現方式,和後臺工作模組(BackgroundJob)。ABP通過BackgroundWorkerManager來管理BackgroundJobManager,然後通過BackgroundJobManager來管理BackgroundJob

Ambari原始碼分析()Ambari架構

ambari-cwiki ambari-github https://github.com/apache/ambari Ambari系統架構 除了ambari-server和ambari-agent,ambari還提供一個介面清亮的管理監控頁面ambari-we

Tomcat原始碼分析編譯Tomcat原始碼

Tomcat原始碼分析一:編譯Tomcat原始碼 1 內容介紹 在之前的《Servlet與Tomcat執行示例》一文中,給大家帶來

Flask原始碼分析服務啟動

前言 Flask是目前為止我最喜歡的一個Python Web框架了,為了更好的掌握其內部實現機制,這兩天準備學習下Flask的原始碼,將由淺入深跟大家分享下,其中Flask版本為1.1.1。 Flask系列文章: Flask開發初探 正文 本文將結合原始碼跟蹤看下Flask是如何啟動並執行一個服務的。 首