1. 程式人生 > >基於DDD的現代ASP.NET開發框架--ABP系列文章總目錄

基於DDD的現代ASP.NET開發框架--ABP系列文章總目錄

ABP系列文章總目錄:

我按照ABP官方文件的結構大概列出了我準備寫的文章系列,以後文章中的內容將會是部分為翻譯部分為自己的經驗和感受。這一系列文章也正好作為我團隊新成員的培訓教材。

背景介紹:

有幾次在技術交流會和QQ群上我提到ABP專案,幾乎沒有人知道這個開源專案,張善友蟋蟀等不少朋友問過我,怎麼在中文社群都搜不到ABP這個專案的介紹文章呢? 是呀,這麼好的東西,應該讓更多人知道。我在部落格園寫第一篇文章的時候就想介紹它,但因為工作太忙,文字表達效率太低,就一拖再拖。今天在netfocus湯兄的ENode群裡聊到ABP專案,有不少朋友還挺感興趣,所以建了一個QQ群(134710707

),供大家以後討論ABP的架構設計、DDD話題。

去年我們公司在規劃一個新的O2O專案時,我重新考慮了技術選型(具體情況我在第1、2篇部落格文章裡有介紹http://www.cnblogs.com/mienreal/p/4340864.html)。我大量的學習了新技術和開源專案,決定要開發一套適合自己的框架,準備使用的思想和技術包括DDD領域驅動設計、分散式架構、模組化開發、ASP.NET MVC 5、Web Api、C# 5.0、EF 6、AutoMapper、SqlServer或MySql、Redis、XUnit、SPA等。

為了有一個好的參考物件,我研究了國內外10多個框架專案,最深入研究的有dax.net的Apworks、微軟的Orchard。後來在Github上按照關注度由高到低列出所有C#專案,我看了前1000個

專案的介紹,在其中找到了這個讓我非常驚喜的ABP專案,它幾乎完全滿足我前面所列出的那些條件。它不僅功能強大,專案結構和編碼風格都非常優雅,很有藝術感。

我在ABP原始碼的基礎上,按照自己的需求做了一些修改,已用於實際開發專案數月,在這期間,我的技術也得到了很大提升。為了讓更多朋友瞭解和使用ABP,我會寫一系列的文章來介紹他的架構思想和運用方法,今天列個目錄和總體介紹。英文比較好的朋友可以直接看他的官方網站,文件已經寫得非常好了。

ABP框架於2014年5月4日首次在Github開源,截止到2015年5月25日,總共進行了1271次程式碼提交,49次版本釋出,現在的版本號是0.6.1.1。

我在其他專案中看到的很多優秀設計,在ABP專案中都已存在,而且可能實現得更好。ABP框架的程式碼,都通過xUnit進行了單元測試。作者一直在用ABP框架開發他們的實際專案,從Github和他官方論壇上的資訊可以看到,有很多國外的開發者在將ABP用作生產專案的基礎框架。如果需要直接使用ABP元件,可以通過Nuget安裝(在VS的Nuget包管理介面搜尋Abp)。

為了更好地將ABP適用於自己的專案,我對ABP的原始碼做了一些修改,而沒有直接使用ABP元件。


我希望更多國內的架構師能關注到ABP這個專案,也許這其中有能幫助到您的地方,也許有您的參與,這個專案可以發展得更好。
今天只是作了一個大概介紹,希望有更多的朋友能去閱讀原始碼,然後參與討論。

歡迎加QQ群:

ABP架構設計交流群:134710707 ABP架構設計交流群      ABP架構設計交流2群: 579765441ABP架構設計交流群2

2015-5-28 13:30 補充

首先很感謝那麼多朋友對本系列文章的高度關注,QQ群剛建立3天(5月28日),就有400多人加入了。有些朋友是對新技術感興趣,有些對架構設計感興趣,有些對領域驅動設計(DDD)感興趣,而ABP剛好結合了這些熱門的話題。

有些DDD的忠實愛好者可能發現了ABP框架並沒有實現所有DDD的概念,而且在簡單的示例中也完全沒有體現出DDD的設計思想。

在此我補充談一下我的想法:

因為我是創業團隊的技術合夥人,工作非常很忙,同時也因為能力有限,我能做的就是讓更多的人瞭解到ABP框架在技術和設計模式上的精妙從而併產生研究它的興趣,通過大家的共同努力才能對.NET技術社群產生積極的影響。

由於想在儘量短的時間讓更多人對ABP有個大致瞭解,我現在只是簡單大概地翻譯了原作者的文章和例子,並沒有按照DDD的規範來做。對於還沒有太瞭解DDD的朋友,我沒辦法在這麼短的文章講清楚(網上已經有很多好的DDD文章,我在QQ群裡也共享了一些DDD的學習資料)。我是想等大家對ABP框架和用法有一些瞭解以後,咱們再開發一個完整的功能(比如團購)來實踐DDD,先設計領域模型,再一步一步編碼實現。

DDD推出來已經11年了,為什麼極少公司把它用於專案生產呢?我的感覺:一是因為DDD本身確實有難度,又要顛覆以前慣用的資料庫驅動思維,對個人能力有挑戰;二是因為完全按照DDD來做,對不能熟悉運用的團隊來說,會影響開發效率,延長開發週期,對公司眼前利益有挑戰。但是用DDD思想開發的專案,可維護性要高很多。怎麼才可以又要好又要快的呢? 我覺得一個高質量的基礎架構就非常重要,有了好的框架,我們就可以減少重複寫程式碼的時間,可以把更多精力花在領域設計上,從而縮短開發週期。這樣就能達到我在第一篇文章所說的“新思想、新技術、新架構——更好更快的開發現代ASP.NET應用程式”。儘管ABP沒有完全實現DDD,儘管它還有不完善的地方,正如作者所說“它是一個讓我們開發新的現代WEB應用程式的新起點”。我們就在這個起點上,來不斷完善吧。大家共同努力,讓新思想、新技術、新架構流行起來!

希望英文能力比較好的朋友可以參與翻譯原作者的文件,這樣我就可以騰出精力來準備ABP原始碼解讀和談實際使用中的經驗。

歡迎加QQ群:

ABP架構設計交流群:134710707 ABP架構設計交流群 

ABP架構設計交流2群: 579765441ABP架構設計交流群2

ABP架構設計交流3群: 291304962

相關推薦

基於DDD現代ASP.NET開發框架--ABP系列文章目錄

ABP系列文章總目錄: 我按照ABP官方文件的結構大概列出了我準備寫的文章系列,以後文章中的內容將會是部分為翻譯部分為自己的經驗和感受。這一系列文章也正好作為我團隊新成員的培訓教材。 背景介紹: 有幾次在技術交流會和QQ群上我提到ABP專案,幾乎沒有人知道這個開源專案,張善友、蟋

解讀ASP.NET 5 & MVC6 ---- 系列文章

vcop fig out omx conf htm ati 特性 clas 本系列的大部分內容來自於微軟源碼的閱讀和網絡,大部分測試代碼都是基於VS RC版本進行測試的。 解讀ASP.NET 5 & MVC6系列(1):ASP.NET 5簡介 解讀ASP.N

使用iTextSharp在Asp.Net中操作PDF系列文章 目錄

    iTextSharp是一個從JAVA專案iText衍生的.Net版本的開源專案。這個專案在操作PDF方面功能相當強大.但.Net版本的iTextSharp資料和文件相對比較少,網上已有的資料相對零散.最近在專案中需要生成PDF,在查閱相關資料中找到一個講述iTextSharp的系列文章,講的比較系統

ABP(現代ASP.NET樣板開發框架)系列之10、ABP領域層——實體

基於DDD的現代ASP.NET開發框架--ABP系列之10、ABP領域層——實體 ABP是“ASP.NET Boilerplate Project (ASP.NET樣板專案)”的簡稱。 本文由深圳-Carl提供翻譯 實體是DDD(領域驅動設計)的核心概念之一。Eric Eva

ABP(現代ASP.NET樣板開發框架)系列之4、ABP模組系統

基於DDD的現代ASP.NET開發框架--ABP系列之4、ABP模組系統 ABP是“ASP.NET Boilerplate Project (ASP.NET樣板專案)”的簡稱。  本文由東莞-天道提供翻譯  ABP模組系統簡介 ABP框架提供了建立和組裝模組的基礎,一個模組

ABP(現代ASP.NET樣板開發框架)系列之6、ABP依賴注入

基於DDD的現代ASP.NET開發框架--ABP系列之6、ABP依賴注入 ABP是“ASP.NET Boilerplate Project (ASP.NET樣板專案)”的簡稱。  本文由 上海-半冷 提供翻譯 什麼是依賴注入 如果你已經知道依賴注入的概念,建構函式和屬性注入

ABP(現代ASP.NET樣板開發框架)系列之9、ABP設定管理

基於DDD的現代ASP.NET開發框架--ABP系列之9、ABP設定管理 ABP是“ASP.NET Boilerplate Project (ASP.NET樣板專案)”的簡稱。 本文由山東-李偉提供翻譯 介紹 每個應用程式需要儲存一些設定並在應用程式的某個地方使用這些設定。

ABP(現代ASP.NET樣板開發框架)系列之2、ABP入門教程

基於DDD的現代ASP.NET開發框架--ABP系列之2、ABP入門教程 ABP是“ASP.NET Boilerplate Project (ASP.NET樣板專案)”的簡稱。 ASP.NET Boilerplate是一個用最佳實踐和流行技術開發現代WEB應用程式的新起點,它旨在成為一個通用的

ABP(現代ASP.NET樣板開發框架)系列之17、ABP應用層——引數有效性驗證

基於DDD的現代ASP.NET開發框架--ABP系列之17、ABP應用層——引數有效性驗證 ABP是“ASP.NET Boilerplate Project (ASP.NET樣板專案)”的簡稱。 應用程式的輸入資料首先應該被檢驗是否有效。輸入的資料能被使用者或其他應用程式提

ABP(現代ASP.NET樣板開發框架)系列之16、ABP應用層——資料傳輸物件(DTOs)

基於DDD的現代ASP.NET開發框架--ABP系列之16、ABP應用層——資料傳輸物件(DTOs) ABP是“ASP.NET Boilerplate Project (ASP.NET樣板專案)”的簡稱。 資料傳輸物件(Data Transfer Objects)用於應用層

ABP(現代ASP.NET樣板開發框架)系列之13、ABP領域層——資料過濾器(Data filters)

基於DDD的現代ASP.NET開發框架--ABP系列之13、ABP領域層——資料過濾器(Data filters) ABP是“ASP.NET Boilerplate Project (ASP.NET樣板專案)”的簡稱。 介紹 在資料庫開發中,我們一般會運用軟刪除(soft

ABP(現代ASP.NET樣板開發框架)系列之21、ABP展現層——Javascript函式庫

基於DDD的現代ASP.NET開發框架--ABP系列之21、ABP展現層——Javascript函式庫 ABP是“ASP.NET Boilerplate Project (ASP.NET樣板專案)”的簡稱。 ASP.NET Boilerplate的js庫提供了一些讓java

ABP(現代ASP.NET樣板開發框架)系列之14、ABP領域層——領域事件(Domain events)

基於DDD的現代ASP.NET開發框架--ABP系列之14、ABP領域層——領域事件(Domain events) ABP是“ASP.NET Boilerplate Project (ASP.NET樣板專案)”的簡稱。 在C#中,一個類可以定義其專屬的事件並且其它類可以註冊該事

ABP(現代ASP.NET樣板開發框架)系列之5、ABP啟動配置

基於DDD的現代ASP.NET開發框架--ABP系列之5、ABP啟動配置 ABP是“ASP.NET Boilerplate Project (ASP.NET樣板專案)”的簡稱。  本文由 東莞-天道 提供翻譯 譯者注:在看這一節的內容之前,建議大家先下載module-ze

ABP(現代ASP.NET樣板開發框架)系列之3、ABP分層架構

基於DDD的現代ASP.NET開發框架--ABP系列之3、ABP分層架構 ABP是“ASP.NET Boilerplate Project (ASP.NET樣板專案)”的簡稱。 前言 為了減少複雜性和提高程式碼的可重用性,採用分層架構是一種被廣泛接受的技術。為了實現分層的

ABP(現代ASP.NET樣板開發框架)系列之19、ABP應用層——審計日誌

基於DDD的現代ASP.NET開發框架--ABP系列之19、ABP應用層——審計日誌 ABP是“ASP.NET Boilerplate Project (ASP.NET樣板專案)”的簡稱。 維基百科定義:審計跟蹤(也稱為稽核日誌)是一個安全相關的時間順序記錄,記錄這些記錄的

ABP(現代ASP.NET樣板開發框架)系列之15、ABP應用層——應用服務(Application services)

基於DDD的現代ASP.NET開發框架--ABP系列之15、ABP應用層——應用服務(Application services) ABP是“ASP.NET Boilerplate Project (ASP.NET樣板專案)”的簡稱。 本文由東莞-天道提供翻譯 應用服務用於將領

ABP(現代ASP.NET樣板開發框架)系列之23、ABP展現層——異常處理

基於DDD的現代ASP.NET開發框架--ABP系列之23、ABP展現層——異常處理 ABP是“ASP.NET Boilerplate Project (ASP.NET樣板專案)”的簡稱。 在 web 應用程式中,異常通常是在 MVC Controller actions

ABP(現代ASP.NET樣板開發框架)系列之8、ABP日誌管理

基於DDD的現代ASP.NET開發框架--ABP系列之8、ABP日誌管理 ABP是“ASP.NET Boilerplate Project (ASP.NET樣板專案)”的簡稱。 本文由東莞-天道提供翻譯 Server side(伺服器端) ASP.NET Boilerpla

ABP(現代ASP.NET樣板開發框架)系列之1、ABP總體介紹

基於DDD的現代ASP.NET開發框架--ABP系列之1、ABP總體介紹 ABP是“ASP.NET Boilerplate Project (ASP.NET樣板專案)”的簡稱。 ASP.NET Boilerplate是一個用最佳實踐和流行技術開發現代WEB應用程式的新起點,它旨在成為一個通用的