日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

发布Apworks应用开发框架(Alpha版本)

發布時間:2025/7/14 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 发布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版中,我會把功能缺失點加上,使其能夠真正支撐一個應用系統的設計與開發。現在,我再把Alpha版本的功能缺失點介紹一下。

  • Alpha版本僅支持Direct Message Bus,這種消息總線使用共享內存存儲消息,因此,應用程序不得不將Command端和Query端設計在同一臺物理服務器上(因為Command端需要向Query端的事件總線發布事件通知,而Direct Message Bus卻不支持遠程的內存操作)
  • 事件存儲與快照:Alpha版本僅支持基于SQL Server關系型數據庫的事件存儲與快照機制。當然,開發人員可以自己定制。快照策略也非常簡單:每當事件存儲去保存第1000個事件的時候,就會針對該聚合做一次快照。這個邏輯是被定義在SqlDomainEventStorage類的CanCreateOrUpdateSnapshot方法里的,而這個方法本來是定義在IDomainEventStorage接口里的。如果你希望使用Alpha版本的Apworks,并且需要定制快照策略,那么你可以繼承SqlDomainEventStorage類,并重寫CanCreateOrUpdateSnapshot方法。對于其他類型數據庫或存儲機制的支持,將在今后的版本中發布
  • 查詢數據庫:目前也僅支持SQL Server
  • 對象IoC容器:目前僅提供對Microsoft Unity的接口支持,下個版本中會支持Castle Windsor(不過這個優先級不是很高)
  • PropertyBag僅僅支持非常簡單的條件組合:aaa=xxx AND bbb=yyy。不支持OR,也不支持各種其它的不等運算符。打算在下個版本中用Expression替換掉
  • 關于安裝包

    在制作安裝包以前,一直在想,該用什么工具來制作安裝包。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版本)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。