发布Apworks应用开发框架(Alpha版本)
Tiny Library CQRS的介紹文章有好些日子沒有更新了,因為最近一直在忙著發布Apworks應用開發框架。原本打算在2011年1月1日發布,以迎接新年的到來,后來確定了還是在2010年12月31日發布,就算是給過去的一年做個留念。哈哈。
一直關注我的博客的園友都知道,之前我的一些領域驅動設計的案例,都是以Apworks為基礎的。由于時間關系,Apworks一直沒有一個固定的版本,所以在那些案例中,我都是將Apworks的程序集加入了案例的發布包里。現在,終于能夠為Apworks整出一個“可用”的版本,并將其發布到了codeplex上,地址是:http://apworks.codeplex.com。版本:Alpha(v1.0.4016.23016)。有關Apworks的所有文檔,我都上傳到了http://apworks.org/documents.aspx。不過目前只有一篇文章,就是:Walkthrough - Building Applications with Apworks,它也同時被包含在了Apworks Alpha版本的安裝包里。
?
先決條件
如果你希望使用Apworks進行開發,請確保你的機器滿足如下先決條件:
- .NET Framework 3.5 SP1
- Visual Studio 2010
- Microsoft Patterns & Practices Enterprise Library 5.0 (April 2010)
- Microsoft SQL Server (Express) 2005或更高版本
下載Apworks Alpha安裝包
請點擊下面的鏈接下載安裝包,在下載開始之前,你需要同意LGPL 2.1許可證協議,否則下載不會繼續。
單擊此處下載Apworks Alpha 1.0.4016.23016
?
關于Alpha版本
在Release Notes里面,我列出了Alpha版本功能的缺失點,雖然Apworks沒有這些功能點照樣能夠成為一個獨立而且完整的組件,但它目前仍然不適于用在實際的項目開發中,尤其是那些非常關鍵的應用系統中。在將來的Beta版中,我會把功能缺失點加上,使其能夠真正支撐一個應用系統的設計與開發?,F在,我再把Alpha版本的功能缺失點介紹一下。
關于安裝包
在制作安裝包以前,一直在想,該用什么工具來制作安裝包。InstallShield雖然強大,但是太繁瑣而且不是免費的;InnoSetup也不貼心,與.NET整合不夠緊密;于是選擇了WiX。選擇WiX的原因是:它是.NET下原生的安裝制作工具,能夠直接集成到Visual Studio里,而且小巧簡單(注意:不是簡潔!),此外,我們項目組也正好是用的WiX,正好拿來練手。當然WiX也有它的缺點:繁瑣(需要手動維護XML文件,而且定制用戶界面也不方便),編譯速度也不是很快。不過它的小巧確實讓人感到清爽。
?
關于Tiny Library CQRS
如今,開源的CQRS案例項目:Tiny Library CQRS(http://tlibcqrs.codeplex.com)已經采用了Alpha版本的Apworks了,在CommandHandler、EventHandler等方面作了些實現上的修正。在下載并編譯Tiny Library CQRS之前,請先下載并安裝Apworks Alpha。如果你的Apworks不是裝在C:\Program Files目錄下,那么你需要在Tiny Library CQRS的項目中重新添加對Apworks的引用。
?
No Framework!
框架是需要去遵循的,這樣才能利用框架帶來的便捷來解決實際問題。然而,軟件并不是想像的那么簡單。業務千差萬別,而特定業務下的需求又是千變萬化,這又怎么可以用一個框架去限定應用系統的開發呢?確實是如此。雖然Apworks是一個框架,它能夠實現基于CQRS體系結構的應用程序,但是并非大部分的(甚至所有的)應用系統開發都需要去使用Apworks框架,都需要去往CQRS體系結構模式上套。經典的應用系統架構模式在目前仍然很流行,仍然有很多成功的案例采用的是經典的系統架構模式。這種架構模式大致可以用下面的視圖描述(此圖摘自Greg Young的CQRS Documents一文):
這樣的架構首先是簡單:它比較通用,近80%的項目都可以用這種結構進行設計,而且對于開發人員來說,非常容易理解,因此門檻也比較低;正由于它簡單通用,于是,就會有一系列的工具來支持基于這種結構的應用程序的開發(比如ORM),大大提高了生產率(摘自Greg Young的CQRS Documents一文)。所以,我還是那句話:從需求出發,來決定你的應用系統架構風格,進而做技術選型。上周跟朋友聚會,跟他們聊起了CQRS模式,他們都倍感驚訝,驚訝關系型數據庫居然會淪落到“可有可無”的地步。有一位朋友問我:如果我發現我的系統不適合選用CQRS的風格,該怎么辦呢?我說:那就不要CQRS了,因為它不適合你!所以,我想No Framework的更深層的含義應該就在于此:不要因為Framework而影響你對系統需求和架構風格作出的判斷,不要因為Framework而去生搬硬套。
總結
以上是生活随笔為你收集整理的发布Apworks应用开发框架(Alpha版本)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SAP SD买十送一的业务处理与系统实现
- 下一篇: cisco pix防火墙命令使用