一、項目基礎(chǔ)架構(gòu)——以ABP為基礎(chǔ)架構(gòu)的一個中等規(guī)模的OA開發(fā)日志
前言:
最近園子里ABP炒的火熱。看了幾篇對于ABP的介紹后,深感其設(shè)計精巧,實現(xiàn)優(yōu)雅。個人感覺,ABP或ABP衍生品的架構(gòu)設(shè)計,未來會成為中型Net項目的首選架構(gòu)模式。如果您還不了解ABP是什么,有什么特色,請移步:《ABP集合帖》——http://www.cnblogs.com/kebinet/p/5341663.html
項目背景介紹:
作者自參加工作以來,一直在法律圈打轉(zhuǎn)。09-12年間,作者曾帶團隊用WebForm+N層架構(gòu)實現(xiàn)了一個律師事務(wù)所的OA系統(tǒng)。時過境遷,現(xiàn)在在維護此系統(tǒng)時,發(fā)現(xiàn)了當(dāng)初很多設(shè)計不合理的地方。所以本項目延續(xù)原OA系統(tǒng)的設(shè)計思路,以ABP為基礎(chǔ)架構(gòu),進行徹底重構(gòu)。
注意:本系列文章定位為開發(fā)筆記,不代表ABP的最佳實踐。
一、ABP是什么,ABP.Zero又是什么?從哪里下載ABP項目模板?
ABP全稱為:“ASP.NET Boilerplate Project (ASP.NET樣板項目)”。顧名思義,ABP實質(zhì)上是一個.Net開發(fā)的分層示例+各種開發(fā)輔助類庫。ABP是一個以DDD設(shè)計模式為原則的Net項目分層示例+一大堆作者寫的輔助類庫。
ABP.Zero則是ABP的作者配合ABP框架寫的一套用戶模塊。其本質(zhì)是對ASP.NET Identity的二次封裝。
ABP.Zero是一個獨立模塊??捎每刹挥?。如果您的程序中,用戶模塊非常獨特,建議您不要使用ABP.Zero模塊,而是獨立實現(xiàn)一套用戶系統(tǒng)。在我們的示例項目中,用戶模塊也是非常獨特的,作者會盡可能嘗試用ABP.Zero去解決,如果實在無法適用,那么我們將做一套獨立的用戶模塊去替代。
- ABP作者官網(wǎng):http://www.aspnetboilerplate.com/
- GitHub地址: https://github.com/aspnetboilerplate/
(請默默感謝這兩位主要維護人員。如此優(yōu)秀的開源項目,值得32個贊)
如圖所示,登錄官網(wǎng)首頁后,即可以下載ABP項目模板。這里,我們選擇了使用.net framework4.5.2+mvc5的多頁面實現(xiàn)。ORM我們選擇了EntityFramework,并且選擇使用ABP.Zero模塊。(此處也可不選,日后需要時再安裝)。注意最底部的【EasyFast】,此處是你的解決方案名稱。下載并解壓后,我們得到了如下文件: