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

ABP相關崗位招聘:給熱愛.NET新技術和ABP框架的朋友帶來一個高薪的工做機會 

ABP交流會錄像視頻:ABP架構設計交流羣-7月18日上海線下交流會的內容分享(有高清錄像視頻的連接 

代碼自動生成:分享一個與ABP配套使用的代碼生成器源碼

ABP系列文章總目錄:


一、ABP整體介紹 
二、ASP.NET Boilerplate入門 
三、ABP分層架構 
四、ABP模塊系統 
五、ABP啓動配置 
六、ABP依賴注入 
七、ABP Session管理
八、ABP日誌管理
九、ABP設置管理
十、ABP領域層——實體(Entities
十一、ABP領域層——倉儲(Repositories)
十二、ABP領域層——工做單元(Unit Of work)
1三、ABP領域層——數據過濾器(Data filters)
1四、ABP領域層——領域事件(Domain events)
1五、ABP應用層——應用服務(Application services)
1六、ABP應用層——數據傳輸對象(DTOs)
1七、ABP應用層——參數有效性驗證
1八、ABP應用層——權限驗證
1九、ABP應用層——審計日誌
20、ABP展示層——動態生成WebApi
2一、ABP展示層——Javascript函數庫
2二、ABP展示層——導航欄設置
2三、ABP展示層——異常處理
2四、ABP基礎設施層——集成Entity Framework
2五、ABP身份與權限管理模塊html

 

我按照ABP官方文檔的結構大概列出了我準備寫的文章系列,之後文章中的內容將會是部分爲翻譯部分爲本身的經驗和感覺。這一系列文章也正好做爲我團隊新成員的培訓教材。git

  

背景介紹:

有幾回在技術交流會和QQ羣上我提到ABP項目,幾乎沒有人知道這個開源項目,張善友蟋蟀等很多朋友問過我,怎麼在中文社區都搜不到ABP這個項目的介紹文章呢? 是呀,這麼好的東西,應該讓更多人知道。我在博客園寫第一篇文章的時候就想介紹它,但由於工做太忙,文字表達效率過低,就一拖再拖。今天在netfocus湯兄的ENode羣裏聊到ABP項目,有很多朋友還挺感興趣,因此建了一個QQ羣(134710707),供你們之後討論ABP的架構設計、DDD話題。github

去年咱們公司在規劃一個新的O2O項目時,我從新考慮了技術選型(具體狀況我在第一、2篇博客文章裏有介紹http://www.cnblogs.com/mienreal/p/4340864.html)。我大量的學習了新技術和開源項目,決定要開發一套適合本身的框架,準備使用的思想和技術包括DDD領域驅動設計、分佈式架構、模塊化開發、ASP.NET MVC 五、Web Api、C# 5.0、EF 六、AutoMapper、SqlServer或MySql、Redis、XUnit、SPA等。數據庫

爲了有一個好的參考對象,我研究了國內外10多個框架項目,最深刻研究的有dax.net的Apworks、微軟的Orchard。後來在Github上按照關注度由高到低列出全部C#項目,我看了前1000個項目的介紹,在其中找到了這個讓我很是驚喜的ABP項目,它幾乎徹底知足我前面所列出的那些條件。它不只功能強大,項目結構和編碼風格都很是優雅,頗有藝術感。設計模式

我在ABP源碼的基礎上,按照本身的需求作了一些修改,已用於實際開發項目數月,在這期間,個人技術也獲得了很大提高。爲了讓更多朋友瞭解和使用ABP,我會寫一系列的文章來介紹他的架構思想和運用方法,今天列個目錄和整體介紹。英文比較好的朋友能夠直接看他的官方網站,文檔已經寫得很是好了。架構

ABP的官方網站http://www.aspnetboilerplate.comapp

ABP在Github上的開源項目https://github.com/aspnetboilerplate框架

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組件。

個人前篇文章中有介紹:新思想、新技術、新架構——更好更快的開發現代ASP.NET應用程序(續1)


我但願更多國內的架構師能關注到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

相關文章
相關標籤/搜索