什麼是Software Factory
由微軟模式與實踐小組開發的軟體工廠,並非是一些公有的組件,可以直接引入項目使用,它所要解決的問題是提供用特定技術開發應用程式時使用的工具、方法、模式等的整個集合,旨在為如何在企業環境中最好地使用特定技術提供指南,每個軟體工廠包含如下部分:
- 應用程式塊和庫 — 軟體的實際部分,基於頂級目標技術構建,旨在提供預構建的遵守建議的最佳實務的基礎結構。
- 指導包方案和模板 — Visual Studio 的典型外掛程式,用於產生初始解決方案模板和/或使用建議的最佳實務構建的功能擴充現有項目。這些外掛程式的大部分實現依賴於應用程式塊和庫。
- 設計器 — Visual Studio 的附加設計器支援,用於部分應用程式。
- 引用實現 — 使用軟體工廠的所有其他資產進行的稍微實際些的應用程式的完整執行。
- 體繫結構指導和模式 — 有關軟體工廠使用的模式和最佳實務選擇的綜合文檔。
- 操作方法主題 — 如何使用軟體工廠的各部分的詳細分步指導(或僅是有關如何以軟體工廠建議的方式使用特定技術的指導)。
模式與實踐小組提供的軟體工廠有:
Web Client Software Factory
Web Service Software Factory
Smart Client Software Factory
Mobile Client Software Factory
……
什麼是Web Client Software Factory
Web用戶端軟體工廠提供了一個工具集,用於指導許多開發人員使用ASP.NET同時協作構建大型ASP.NET應用程式任務,在Web用戶端軟體工廠中提供了:
- 應用程式塊和庫 — 包含了Composite Web應用程式塊, Page Flow應用程式塊, ObjectContainerDataSourceControl,並且使用Enterprise Library進行許可權管理、異常處理、日誌記錄和資料訪問。
- 指導包方案和模板 — 提供了一系列的模板包括Solution模板,Business Module模板, Foundational Module模板, Page Flow模板
- 設計器 — 包含了Page Flow設計器
- 體繫結構指導與模式 — 如View-Presenter ,Application Controller ,Service Locator ,Dependency Injection 等
- 引用實現 — 提供了一個全球銀行公司的e-Banking引用實現
- ……
Web用戶端軟體工廠資產圖如下:
安裝Web Client Software Factory
安裝Web用戶端軟體工廠需要有如下幾個必備的條件
安裝Guidance Automation Extensions
安裝Guidance Automation Toolkit
安裝.NET Framework 3.0 and Windows Workflow Foundation
安裝Web Client Software Factory,官方網站:http://www.codeplex.com/websf
使用Web Client Software Factory
使用Web Client Software Factory時可以按照協助文檔提供的流程進行:
建立Web用戶端解決方案
安裝完Web用戶端軟體工廠後,會在 Visual Studio 2005 中發現稱為“網頁用戶端解決方案”的新項目模板,列在指導包項目類型的下面,如所示:
建立完成後的解決方案結構如下:
可以看到,使用Web用戶端軟體工廠指導包建立的解決方案被分成了兩個部分,一是Modeles目錄下的Shell項目,一是WebSites下的名為DevelopmentWebSite網站,實際上,Web用戶端軟體工廠的目標是建立多個協同工作的獨立模組以定義一個網站,因此這些項目只是您要添加到應用程式的多重專案中的前兩個項目。該解決方案的常規布局是為網站的每個部分建立一個獨立的模組(類庫項目)。每個模組將獨立相容並且在主網站目錄中將具有獨立的頁面和原始碼檔案的目錄。此項目布局的目標是使多個開發人員可以獨立處理網站的不同部分,而不會相互幹涉,並且能夠通過將新庫和重新整理的頁面目錄傳送到部署伺服器來獨立部署模組,而無需同時重新部署所有模組。同時可以看到,為了整合一個網站下的多個模組,它在 /Shared 子目錄下定義一個頂層主版頁面 Default.master,模組建立的頁面將預設使用此主版頁面。
Web用戶端軟體工廠建立的解決方案,內建了預設的起始頁面,運行上面的程式後,可以看到如下介面:
相關的問題
要提示一點的是,WCSF現在還不支援Visual Stuido 2008。並且如果你的機器上安裝了Visual Studio 2008 Beta2版本的話,在運行由WCSF建立的Web應用程式時將會報錯。可以下載附件中的檔案,覆蓋<安裝目錄>\\Microsoft Web Client Factory\Microsoft Practices Library下的檔案,或者自行開啟WCSF原始碼,找到WCSFExtensions下的WCSFBuilderBase.cs檔案中,修改方法TearDown:
public TItem TearDown<TItem>(IReadWriteLocator locator, TItem item){if (typeof(TItem).IsValueType == false && item == null)return default(TItem);return DoTearDown<TItem>(locator, item);}
結束語
網頁用戶端軟體工廠為嘗試管理使用 ASP.NET 構建的大型網站的開發人員提供了令人信服的解決方案。此軟體工廠支援建立與網站中的各個子目錄相關聯的模組,並為模式(如 View-Presenter 和 Application Controller)提供了一個可支援以模組化方式啟用網站的獨立開發、測試和部署的架構。值得我們認真去研究,後續的文章將會更詳細的講述Composite Web應用程式塊、View-Presenter模式等。
附件:/Files/Terrylee/CompositeWeb.rar