ABP相關(guān)崗位招聘:給熱愛.NET新技術(shù)和ABP框架的朋友帶來一個(gè)高薪的工作機(jī)會(huì)ABP交流會(huì)錄像視頻:ABP架構(gòu)設(shè)計(jì)交流群-7月18日上海線下交流會(huì)的內(nèi)容分享(有高清錄像視頻的鏈接)代碼自動(dòng)生成:分享一個(gè)與ABP配套使用的代碼生成器源碼ABP系列文章總目錄:
我按照ABP官方文檔的結(jié)構(gòu)大概列出了我準(zhǔn)備寫的文章系列,以后文章中的內(nèi)容將會(huì)是部分為翻譯部分為自己的經(jīng)驗(yàn)和感受。這一系列文章也正好作為我團(tuán)隊(duì)新成員的培訓(xùn)教材。
背景介紹:有幾次在技術(shù)交流會(huì)和QQ群上我提到ABP項(xiàng)目,幾乎沒有人知道這個(gè)開源項(xiàng)目,張善友、蟋蟀等不少朋友問過我,怎么在中文社區(qū)都搜不到ABP這個(gè)項(xiàng)目的介紹文章呢? 是呀,這么好的東西,應(yīng)該讓更多人知道。我在博客園寫第一篇文章的時(shí)候就想介紹它,但因?yàn)楣ぷ魈Γ淖直磉_(dá)效率太低,就一拖再拖。今天在netfocus湯兄的ENode群里聊到ABP項(xiàng)目,有不少朋友還挺感興趣,所以建了一個(gè)QQ群(134710707),供大家以后討論ABP的架構(gòu)設(shè)計(jì)、DDD話題。 去年我們公司在規(guī)劃一個(gè)新的O2O項(xiàng)目時(shí),我重新考慮了技術(shù)選型(具體情況我在第1、2篇博客文章里有介紹http://www.cnblogs.com/mienreal/p/4340864.html)。我大量的學(xué)習(xí)了新技術(shù)和開源項(xiàng)目,決定要開發(fā)一套適合自己的框架,準(zhǔn)備使用的思想和技術(shù)包括DDD領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)、分布式架構(gòu)、模塊化開發(fā)、ASP.NET MVC 5、Web Api、C# 5.0、EF 6、AutoMapper、SqlServer或MySql、Redis、XUnit、SPA等。 為了有一個(gè)好的參考對(duì)象,我研究了國內(nèi)外10多個(gè)框架項(xiàng)目,最深入研究的有dax.net的Apworks、微軟的Orchard。后來在Github上按照關(guān)注度由高到低列出所有C#項(xiàng)目,我看了前1000個(gè)項(xiàng)目的介紹,在其中找到了這個(gè)讓我非常驚喜的ABP項(xiàng)目,它幾乎完全滿足我前面所列出的那些條件。它不僅功能強(qiáng)大,項(xiàng)目結(jié)構(gòu)和編碼風(fēng)格都非常優(yōu)雅,很有藝術(shù)感。 我在ABP源碼的基礎(chǔ)上,按照自己的需求做了一些修改,已用于實(shí)際開發(fā)項(xiàng)目數(shù)月,在這期間,我的技術(shù)也得到了很大提升。為了讓更多朋友了解和使用ABP,我會(huì)寫一系列的文章來介紹他的架構(gòu)思想和運(yùn)用方法,今天列個(gè)目錄和總體介紹。英文比較好的朋友可以直接看他的官方網(wǎng)站,文檔已經(jīng)寫得非常好了。 ABP的官方網(wǎng)站:http://www. ABP在Github上的開源項(xiàng)目:https://github.com/aspnetboilerplate ABP框架于2014年5月4日首次在Github開源,截止到2015年5月25日,總共進(jìn)行了1271次代碼提交,49次版本發(fā)布,現(xiàn)在的版本號(hào)是0.6.1.1。
我在其他項(xiàng)目中看到的很多優(yōu)秀設(shè)計(jì),在ABP項(xiàng)目中都已存在,而且可能實(shí)現(xiàn)得更好。ABP框架的代碼,都通過xUnit進(jìn)行了單元測(cè)試。作者一直在用ABP框架開發(fā)他們的實(shí)際項(xiàng)目,從Github和他官方論壇上的信息可以看到,有很多國外的開發(fā)者在將ABP用作生產(chǎn)項(xiàng)目的基礎(chǔ)框架。如果需要直接使用ABP組件,可以通過Nuget安裝(在VS的Nuget包管理界面搜索Abp)。 為了更好地將ABP適用于自己的項(xiàng)目,我對(duì)ABP的源碼做了一些修改,而沒有直接使用ABP組件。 我的前篇文章中有介紹:新思想、新技術(shù)、新架構(gòu)——更好更快的開發(fā)現(xiàn)代ASP.NET應(yīng)用程序(續(xù)1)
歡迎加QQ群: ABP架構(gòu)設(shè)計(jì)交流群:134710707 ABP架構(gòu)設(shè)計(jì)交流2群: 579765441
2015-5-28 13:30 補(bǔ)充 首先很感謝那么多朋友對(duì)本系列文章的高度關(guān)注,QQ群剛創(chuàng)建3天(5月28日),就有400多人加入了。有些朋友是對(duì)新技術(shù)感興趣,有些對(duì)架構(gòu)設(shè)計(jì)感興趣,有些對(duì)領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)(DDD)感興趣,而ABP剛好結(jié)合了這些熱門的話題。 有些DDD的忠實(shí)愛好者可能發(fā)現(xiàn)了ABP框架并沒有實(shí)現(xiàn)所有DDD的概念,而且在簡單的示例中也完全沒有體現(xiàn)出DDD的設(shè)計(jì)思想。 在此我補(bǔ)充談一下我的想法: 因?yàn)槲沂莿?chuàng)業(yè)團(tuán)隊(duì)的技術(shù)合伙人,工作非常很忙,同時(shí)也因?yàn)槟芰τ邢?,我能做的就是讓更多的人了解到ABP框架在技術(shù)和設(shè)計(jì)模式上的精妙從而并產(chǎn)生研究它的興趣,通過大家的共同努力才能對(duì).NET技術(shù)社區(qū)產(chǎn)生積極的影響。 由于想在盡量短的時(shí)間讓更多人對(duì)ABP有個(gè)大致了解,我現(xiàn)在只是簡單大概地翻譯了原作者的文章和例子,并沒有按照DDD的規(guī)范來做。對(duì)于還沒有太了解DDD的朋友,我沒辦法在這么短的文章講清楚(網(wǎng)上已經(jīng)有很多好的DDD文章,我在QQ群里也共享了一些DDD的學(xué)習(xí)資料)。我是想等大家對(duì)ABP框架和用法有一些了解以后,咱們?cè)匍_發(fā)一個(gè)完整的功能(比如團(tuán)購)來實(shí)踐DDD,先設(shè)計(jì)領(lǐng)域模型,再一步一步編碼實(shí)現(xiàn)。 DDD推出來已經(jīng)11年了,為什么極少公司把它用于項(xiàng)目生產(chǎn)呢?我的感覺:一是因?yàn)镈DD本身確實(shí)有難度,又要顛覆以前慣用的數(shù)據(jù)庫驅(qū)動(dòng)思維,對(duì)個(gè)人能力有挑戰(zhàn);二是因?yàn)橥耆凑誅DD來做,對(duì)不能熟悉運(yùn)用的團(tuán)隊(duì)來說,會(huì)影響開發(fā)效率,延長開發(fā)周期,對(duì)公司眼前利益有挑戰(zhàn)。但是用DDD思想開發(fā)的項(xiàng)目,可維護(hù)性要高很多。怎么才可以又要好又要快的呢? 我覺得一個(gè)高質(zhì)量的基礎(chǔ)架構(gòu)就非常重要,有了好的框架,我們就可以減少重復(fù)寫代碼的時(shí)間,可以把更多精力花在領(lǐng)域設(shè)計(jì)上,從而縮短開發(fā)周期。這樣就能達(dá)到我在第一篇文章所說的“新思想、新技術(shù)、新架構(gòu)——更好更快的開發(fā)現(xiàn)代ASP.NET應(yīng)用程序”。盡管ABP沒有完全實(shí)現(xiàn)DDD,盡管它還有不完善的地方,正如作者所說“它是一個(gè)讓我們開發(fā)新的現(xiàn)代WEB應(yīng)用程序的新起點(diǎn)”。我們就在這個(gè)起點(diǎn)上,來不斷完善吧。大家共同努力,讓新思想、新技術(shù)、新架構(gòu)流行起來! 希望英文能力比較好的朋友可以參與翻譯原作者的文檔,這樣我就可以騰出精力來準(zhǔn)備ABP源碼解讀和談實(shí)際使用中的經(jīng)驗(yàn)。
歡迎加QQ群: ABP架構(gòu)設(shè)計(jì)交流群:134710707 ABP架構(gòu)設(shè)計(jì)交流2群: 579765441
|
|