不少關(guān)注我博客的朋友都知道我在2009年左右開發(fā)過(guò)一個(gè)名為Apworks的企業(yè)級(jí)應(yīng)用程序開發(fā)框架,旨在為分布式企業(yè)系統(tǒng)軟件開發(fā)提供面向領(lǐng)域驅(qū)動(dòng)(DDD)的框架級(jí)別的解決方案,并對(duì)多種系統(tǒng)架構(gòu)風(fēng)格提供支持。這個(gè)框架的開發(fā)和維護(hù)我堅(jiān)持了很久,一直到2015年,我都一直在不停地重構(gòu)這個(gè)項(xiàng)目。目前這個(gè)項(xiàng)目在Github上也得到了將近260的推薦數(shù),很多對(duì)技術(shù)感興趣的朋友也一直與我保持著聯(lián)系和交流,甚至還有愛好者自發(fā)組成了技術(shù)討論群,專門討論分享Apworks框架。
然而,隨著軟件開發(fā)技術(shù)和.NET的發(fā)展,這個(gè)框架的設(shè)計(jì)和研發(fā)技術(shù)都逐漸過(guò)時(shí),重構(gòu)難度逐漸加大,很多由其本身支持的技術(shù),比如MSMQ、NHibernate也都逐漸淡出人們的視線,相比之下,云計(jì)算、微服務(wù)、大數(shù)據(jù)、跨平臺(tái)等相關(guān)技術(shù)越來(lái)越多地引起了業(yè)界的關(guān)注,成功的案例也越來(lái)越多。如何基于云平臺(tái)(PaaS + IaaS)快速搭建高效、經(jīng)濟(jì)、穩(wěn)定、安全的軟件系統(tǒng)架構(gòu),成為了最近兩年的熱門話題。微軟也順應(yīng)這樣的潮流,做出了很多的改變,就在短短的一到兩年時(shí)間,引領(lǐng)了.NET的跨平臺(tái),開源了諸多著名的項(xiàng)目,比如.NET、Core CLR、Roslyn、ASP.NET、Entity Framework、Powershell等等,并且開始接受并擁抱非Windows的操作系統(tǒng),比如Visual Studio跨平臺(tái)、Powershell跨平臺(tái)、SQL Server跨平臺(tái)、Visual C++支持多種編譯器等等。很明顯,原有的Apworks已經(jīng)不再具備跨平臺(tái)、云友好、開發(fā)迅速的特質(zhì),為此,我下定決心重寫了Apworks。
全新的Apworks Core應(yīng)用程序開發(fā)框架
新的Apworks Core也是開源項(xiàng)目,該項(xiàng)目依舊基于Apache 2.0許可協(xié)議,項(xiàng)目地址是:https://github.com/daxnet/apworks-core。目前仍然還在繼續(xù)開發(fā)階段,僅實(shí)現(xiàn)了原有DDD中的基本概念(實(shí)體、聚合、實(shí)體鍵、倉(cāng)儲(chǔ)等),并針對(duì)內(nèi)存并發(fā)字典(Concurrent Dictionary)、MongoDB以及Entity Framework Core完成了三種不同的倉(cāng)儲(chǔ)實(shí)現(xiàn),整個(gè)框架完全由.NET Core實(shí)現(xiàn)(目前提供net461和Net Standard 1.6兩種編譯),因此,可以使用在Windows的經(jīng)典.NET Framework下,也可以使用在Linux的.NET Core中。不僅如此,針對(duì)ASP.NET Core Web API,Apworks提供了相應(yīng)的整合與擴(kuò)展,使得數(shù)據(jù)服務(wù)的開發(fā)變得非常簡(jiǎn)單方便,這也是本文準(zhǔn)備介紹的內(nèi)容,相信在閱讀本文之后,你將更多地了解到Apworks Core的開放性和擴(kuò)展性,并能體會(huì)到在.NET應(yīng)用程序的開發(fā)生態(tài)圈中,Apworks Core將會(huì)給你帶來(lái)更多的幫助。