Web 服務軟體工廠:建模版本也稱為“服務工廠”,它是一個資源集合,這些資源可協助您以簡單有效方式在 Windows® Communication Foundation (WCF) 和 ASMX 中建模和構建 Web 服務。與先前版本的服務工廠相比,最新版本使用的是模型,而先前版本使用的是基於 Guidance Automation Toolkit (GAT) 的嚮導。服務工廠現在允許您通過建立三種不同的模型來構建 Web 服務:資料約定模型、服務約定模型和宿主模型。我們將首先討論這三種模型,然後再為您介紹如何自訂服務工廠。您可以在“線上服務工廠資源”側欄中列出的網站內找到更多資訊。
使用 GAT 嚮導產生代碼的主要缺點是在對產生的程式碼進行必要更改時會比較複雜。假設您想要重新命名產生服務中的某個操作,您必須儲存自訂代碼,然後重做要在其中使用新名稱或者在產生的程式碼中重新命名操作的整個嚮導。重做嚮導是一項耗時的工作;因為嚮導沒有記憶,您必須重新指定全部內容。更改由嚮導產生的程式碼也不是理想的做法,因為您要返回去重新處理許多細節問題,而嚮導的目的恰恰是要避免這一點。模型為此問題提供了一種不錯的解決方案,與嚮導相比,它可以記住您輸入的內容。
構建整合到 Visual Studio® 中的建模語言在過去是一件很困難的事情,但是附帶有 Visual Studio SDK 的 Domain-Specific Language (DSL) Tools 使此項工作變得非常容易。現在服務工廠附帶了使用 DSL Tools 構建的三種模型。請注意,沒有針對資料訪問和服務安全的模型。先前版本服務工廠中的“資料訪問指導包”現在成為一個單獨的工廠(稱為存放庫工廠),而“安全性指導包”也成為服務工廠社區網站單獨的一個可用資料包。
新版本的服務工廠還為如何構建自己的軟體工廠提供了良好樣本,因為它使用並組合了所有可用工具來構建一個:
用來產生項目並提供操作功能表的嚮導 GAT
用於三種不同模型的 DSL Tools
支援交叉模型引用的 Designer Integration Service (DIS)
服務工廠原始碼還包含一些有趣的庫,這些庫擁有目前工廠工具沒有的一些功能。如果要構建自己的工廠,則重用以下各項內容可能會讓您受益匪淺:
代碼產生庫,允許您在單獨的檔案中產生代碼
交叉模型驗證庫,可協助您驗證交叉模型引用
Visual Studio 類比物件程式庫,可協助您方便地對工廠進行單元測試
正如我們曾提到的,服務工廠由三種模型構成。在資料約定模型中,定義了 Web 服務的資料約定。在服務約定模型中,定義了服務、服務約定、操作以及訊息。最後,宿主模型被用來建模服務端點和用戶端代理。
為了介紹工廠,我們將建立一個從 Peedy 的比薩餅店訂購比薩餅的 Web 服務。此 Web 服務可以接受比薩餅訂單,並允許您選購大小和澆頭不同的比薩餅。提交訂單後,會將訂單價格返回給客戶作為確認。