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