今天我發布了新版本的Apworks,版本號為:2.5.4563.21309。有興趣和有需要的朋友可以直接到Apworks官方站點下載最新的安裝程序或源代碼。
功能更新
Apworks 2.5.4563.21309包含了以下功能更新:
- 支持Visual Studio 2010的項目模板以及相關說明書(中英文兩個版本),下文會對其進行介紹
- 將整個框架的ID類型由System.Long換成System.Guid
- 新增WcfPerRequestLifetimeManager
- 添加基於Entity Framework Code First的倉儲實現
- 倉儲中添加了“飢餓加載”功能,用於在懶加載(Lazy Loading)的環境下,指定某些需要直接加載的實體屬性
- 倉儲中添加了“分頁”功能,能夠支持邏輯相對簡單的分頁效果。如需實現復雜的分頁功能,可以參考《Byteart Retail V2 - 基於Entity Framework Code First的領域驅動設計實踐案例》一文中“面向特定需求的倉儲接口”部分的內容
- 新增Apworks.Services.ApplicationServices命名空間,並在此命名空間下實現了DataTransferObject類型,用以支持數據傳輸對象的設計
- 所有第三方組件更新到最新穩定版本
- 修復NHibernateContext中Rollback方法由於try...catch引起的對象回收異常
- 修復NHibernateContext提交時由於異常並且沒有關閉NHibernate Session而導致的Session不可用問題
- 對倉儲相關類的XML文檔進行修復
系統需求
安裝程序需求
如需通過安裝包安裝Apworks,請確保機器符合以下需求:
- Windows XP Professional SP3或更高版本的Windows操作系統
- Microsoft .NET Framework 4.0完整版(注:不是Client Profile版本)
- Microsoft Visual Studio 2010 SP1 Ultimate/Professional(注:如果需要使用Visual Studio項目模板的話,請安裝此項)
源代碼使用需求
如需使用源代碼,並正常運行所有的單元測試用例,請確保機器符合以下需求:
- Windows XP Professional SP3或更高版本的Windows操作系統
- Microsoft .NET Framework 4.0完整版(注:不是Client Profile版本)
- Microsoft Visual Studio 2010 SP1 Ultimate/Professional
- Microsoft SQL Server (2005/2008/Express/Standard/Enterprise)
- Oracle MySQL
- Configuration Section Designer Visual Studio Extensions
- WiX Toolset v3.6
- InstallShield Limited Edition
- Microsoft MSMQ
- Message Queuing服務正常運行
- Microsoft Distributed Transaction Coordinator服務正常運行
使用安裝程序安裝Apworks
從2.5版本開始,Apworks將使用InstallShield來制作安裝程序,因此您將看到與以前版本Apworks不同的安裝程序界面。
- 下載setup.exe安裝程序。請【單擊此處】直接下載Apworks v2.5.4563.21309的setup.exe安裝程序
- 雙擊setup.exe安裝程序,這將打開Apworks的安裝程序:
- 單擊Next按鈕,選擇“I accept the terms in the license agreement”選項后,單擊Next按鈕。Apworks使用Apache License Version 2.0
- 選擇安裝路徑后,單擊Next按鈕
|
- 直接單擊Install按鈕進行安裝
- 安裝完成以后,直接單擊Finish按鈕
- 在開始菜單中,即可找到與Apworks相關的快捷方式:
Visual Studio 項目模板的使用
概述
為了幫助開發人員能夠更快地使用Apworks進行應用程序開發,從2.5版開始,Apworks將在其安裝包內包含Visual Studio的應用程序項目模板。由於Apworks安裝程序是用InstallShield LE(Limited Edition,限制版)創建的,由於許可證的約束,在創建Apworks安裝程序時並不能完全使用InstallShield所提供的強大功能。為了在Apworks安裝成功后,開發人員能夠方便地使用Visual Studio應用程序項目模板,我們可能需要執行一些額外的操作。在本文檔中,將對每個項目模板進行詳細介紹。
安裝
Apworks安裝程序無法直接安裝包含在Visual Studio擴展(VSE)中的項目模板,用戶應該通過在開始菜單中訪問Apworks目錄以手動安裝Visual Studio擴展,如下:
點擊這個菜單項后,會出現VSIX Installer對話框,用戶可以選擇相應的Visual Studio版本進行安裝。
現在開始安裝Visual Studio擴展,通過點擊對話框上的“安裝”按鈕,如果安裝成功完成后,你會看到以下畫面:
管理
安裝完成后,您可以啟用/禁用擴展,通過使用Visual Studio的擴展管理器對話框(在Visual Studio中選擇“工具” - >“擴展管理器”菜單)。你還可以卸載擴展。
使用項目模板創建應用程序
在Microsoft Visual Studio中,單擊“文件 - >新建 - >項目”菜單,這將打開“新建項目”對話框。在Installed Templates的Visual C#分類下,你可以找到一個名為“Apworks”的子類,所有與Apworks相關的項目模板都在這個子類下。注意,Apworks項目模板只支持Visual C#編程語言,所以你無法在其它語言的分類下找到Apworks子類。
選擇你想使用的項目模板,像創建其他類型的應用一樣,給您的解決方案取個名稱,並單擊“確定”按鈕。 Visual Studio會為您創建的項目。
項目模板
在本節中,將對所有的項目模板進行介紹。
Layered Service Application (Entity Framework)
此項目模板將創建一個基於傳統的分層架構的示例服務應用解決方案。所創建的示例應用程序基於一個非常簡單的場景:用戶能夠維護他們的筆記條目。這個應用程序將使用微軟的ADO.NET Entity Framework作為倉儲的實現技術。
請注意,所創建的應用程序是一個WCF服務應用程序,項目模板不提供任何用於呈現應用程序界面的GUI邏輯。開發人員應根據項目的實際情況將GUI部分的代碼引入解決方案中。這是因為與用戶界面相關的技術發展迅速,開發平台以及框架變化多端,版本各異,讓Apworks所創建的應用程序綁定到一個特定的界面技術顯然不是一個很好的選擇。
要創建Layered Service Application (Entity Framework),在“新建項目”對話框中,選擇該模板,並提供項目名稱,然后單擊“確定”,並按照以下步驟:
- 在“新建項目”對話框中點擊OK按鈕后,出現Create Apworks Application對話框。在此對話框中有三個標簽頁:
- Database - 提供數據庫中的信息,該數據庫將被新的應用程序用作后端數據存儲。請注意,目前此項目模板只支持SQL Server數據庫。如果你想使用其他數據庫(如Oracle,或者是NoSQL數據庫),您可以更改Services項目的Web.config文件中的連接字符串。這是項目模板的限制,Apworks框架允許你根據實際項目需求使用任何一種數據庫
- Services –這里提供與WCF服務相關的配置。目前,你只需要指定WCF服務的命名空間。默認情況下,它會使用http://www.XXXX.com作為命名空間,其中XXXX為您的解決方案的名稱
- About – 關於項目模板
- Database - 提供數據庫中的信息,該數據庫將被新的應用程序用作后端數據存儲。請注意,目前此項目模板只支持SQL Server數據庫。如果你想使用其他數據庫(如Oracle,或者是NoSQL數據庫),您可以更改Services項目的Web.config文件中的連接字符串。這是項目模板的限制,Apworks框架允許你根據實際項目需求使用任何一種數據庫
- 在“數據庫”選項卡,選擇你想使用的SQL Server數據庫:
確保“Enable MARS”選項被選中。
您還可以點擊“測試”按鈕來測試連接: - 在“服務”選項卡,輸入合理的命名空間
- 點擊OK按鈕,Visual Studio會為您完成以下任務:1、在您選定的數據庫中創建表和數據;2、編譯整個解決方案 - 這是必需的,因為在轉換Services項目下的文本模板時,需要引用其它幾個項目的編譯結果
- 在解決方案資源管理器中,將創建下列項目:
- ApworksStarter.Application –此C#類庫項目包含應用程序接口和應用服務的實現
- ApworksStarter.Domain – 此C#類庫項目包含領域模型、倉儲接口、規約和O / R映射架構
- ApworksStarter.Domain.Repositories – 此C#類庫項目包含倉儲的實現
- ApworksStarter.Infrastructure – 此C#項目類庫包含基礎結構層的類型。目前,此項目模板創建的項目只提供了一個用於定義擴展方法的類型。您可以向此項目添加更多的基礎結構類型
- ApworksStarter.Services – WCF服務應用程序,用以初始化應用程序,並向客戶端公開服務接口
- 在解決方案資源管理器中點擊ApworksStarter.Services項目,然后單擊“轉換所有模板”工具箱按鈕,這將轉換這一項目下的所有定義的模板:
轉換的結果將顯示在Visual Studio的輸出窗口: - 按F5來啟動調試器
- 啟動WCF測試客戶端
- 在WCF測試客戶端,點擊“文件 - >添加服務”菜單,將彈出添加服務的對話框
- 在添加服務對話框,輸入endpoint如下:
- 在Request面板中,雙擊RetrieveUserByID,在“id”字段輸入“c0ece0e5-469f-4AA1-aab4-9037aab2de43”,然后單擊Invoke按鈕:
- 服務被成功調用后,Response面板中顯示如下:
- 現在你可以在解決方案中創建你的GUI項目,並調用此服務提供的功能
Layered Service Application (NHibernate)
此模板將創建與Layered Service Application (Entity Framework)相同的示例應用程序,不同之處在於,此模板所創建的應用程序將使用NHibernate框架來實現倉儲架構。有關此項目模板的其他信息,請參閱上面的“Layered Service Application (Entity Framework)”部分。
總結
歡迎廣大讀者提出寶貴意見和建議!