逐步解說:建立可替換的 Web 服務
更新:2007 年 11 月
這個逐步解說將說明如何複製您之前所定義且要做為替代品的 Web 服務。這個應用程式是在逐步解說:設計 Web 服務中所實作的。
必要條件
請完成逐步解說:設計 Web 服務。
若要建立現有 Web 服務的複本
開啟 Catalog.sln。
檢視應用程式圖表。
以滑鼠右鍵按一下 [Catalog] 應用程式,然後按一下 [複製]。
將所複製的應用程式貼上應用程式圖表。
將貼上的版本命名為 CatalogFacade。
[CatalogFacade] 包含出現在 [Catalog] 上相同的 [CatalogWebService] 和 [GetLegacyInfo] 端點。因此,[CatalogFacade] 會與和 [Catalog] 相容的所有相同應用程式相容。所有從 [Catalog] 至其他應用程式的連接 (如 [CatalogDB]) 都會予以保留。但是,與 [Catalog] 不同的是,[CatalogFacade] 不會顯示為已實作的狀態。
注意事項: Visual Studio 不會複製應用程式之間的某些特定設定。因此,以視覺化方式維護資料庫連接時,因為 Visual Studio 不會複製某些項目 (例如密碼),所以這個連接在執行階段無法運作。若要啟用這個連接,必須輸入 [CatalogFacade] 與 [CatalogFacade] 間的連接資訊。
因此,您可以將 [CatalogFacade] 應用程式做為舊版應用程式中實作之舊版 Catalog 的包裝函式 Web 服務,而舊版應用程式並非透過 [分散式系統設計工具] 進行模型化。您也可以使用泛型應用程式類型,在應用程式圖表中,以呈現這個項目的方式表示舊版應用程式。例如,這類應用程式可能是在 AS/400 機器上執行的 Ledger 系統。
您現在可以使用 [泛型] 應用程式類型模型化舊版應用程式。
若要將舊版應用程式模型化
將 [GenericApplication] 應用程式從 [工具箱] 拖曳到圖表,並將其命名為 LegacyCatalog。
將 [.NETWebServiceEndpoint] 端點從 [工具箱] 拖曳至 [CatalogFacade],並將命名為 [LegacyInterface]。
按住 ALT 鍵時,將 [LegacyInterface] 端點拖曳到 [LegacyCatalog] 予以連接。
新的消費者端點便會出現在 [LegacyCatalog] 上。[LegacyCatalog] 是舊 Catalog 的應用程式預留位置。Visual Studio 不會爲 [LegacyCatalog] 產生程式碼。不過,它會存在於圖表上,記錄舊版應用程式的存在,以及到 [CatalogFacade] Web 服務 (用以包裝其功能) 的連接。下個程序會示範 [CatalogFacade] 和 [Catalog] 如何提供相同的合約。
若要設計 Catalog 系統
按下 SHIFT 鍵時,按一下 [Catalog] 和 [CatalogDB]。
從 [圖表] 功能表中,選擇 [設計應用程式系統]。
[設計應用程式系統] 對話方塊隨即出現。
在 [系統名稱] 輸入 [NewCatalogSystem]。
系統設計工具會與新系統內含之所選取的應用程式一起開啟。請依需要調整應用程式的位置。
以滑鼠右鍵按一下 [CatalogWebService] 端點,然後選擇 [加入 Proxy 端點]。
這個動作會建立這個系統的通訊路徑。
檢視應用程式圖表。
以滑鼠右鍵按一下 [SalesWebClient],然後再按一下 [設計應用程式系統]。
將系統命名為 [CatalogSystem]。
將 [NewCatalogSystem] 從 [系統檢視] 視窗拖曳到 [CatalogSystem]。
請注意,[NewCatalogSystem] 會公開端點,讓您能夠連接系統。這個端點是您先前所建立的 Proxy 端點。它提供了 [Catalog] 上 [CatalogWebService] 的連接。
將 [NewCatalogSystem] 上的 [CatalogWebService] Proxy 端點連接至 [SalesWebClient] 上的消費者端點。
檢視應用程式圖表。
建立包含 [CatalogFacade] 和 [LegacyCatalog] 的新系統,並將其命名為 [LegacyCatalogSystem]。
在 [LegacyCatalogSystem] 中建立 [CatalogWebService] 的 Proxy 端點。
檢視 [CatalogSystem] 系統。
從 [CatalogSystem] 刪除 [NewCatalogSystem] 系統。
將 [LegacyCatalogSystem] 系統從 [系統檢視] 視窗拖曳到 [CatalogSystem] 系統。
將 [LegacyCatalogSystem] 系統上的 [CatalogWebService] 端點連接至 [SalesWebClient] 上的消費者端點。
[NewCatalogSystem] 和 [LegacyCatalogSystem] 系統都包含了 [CatalogWebService] 端點,您可將其公開為 Proxy 端點。因此,您可以在 [CatalogSystem] 互為取代。
您現在可以建立應用程式之可重複使用的原型,其中包含 [CatalogWebService] 且會將 Visual C# 做為預設語言。您可以將這個原型加入至 [工具箱] 中。
若要建立可重複使用的原型
檢視應用程式圖表。
將 [ ASP.NETWebService] 從 [工具箱] 拖曳至圖表。
複製 [Catalog] 上的 [CatalogWebService] 端點,並貼到新的 ASP.NET Web 服務應用程式。
將新應用程式的 [語言] 屬性變更為 [Visual C#]。
從 [圖表] 功能表中,選擇 [加入至工具箱]。
[加入至工具箱] 對話方塊便會出現。
在 [名稱] 方塊中輸入 [CatalogWebServiceApp],然後按一下 [確定]。
[儲存檔案] 對話方塊隨即出現。Visual Studio 會將檔案儲存為 .adprototype 檔案,表示它是可在 [應用程式設計工具] 中使用的應用程式原型。
按一下 [儲存]。
開啟 [工具箱],並將 [CatalogWebServiceApp] 拖曳至圖表中。
您已經建立了可重複使用且可自訂的 ASP.NET Web 服務應用程式版本,該版本也包含 [CatalogWebService] 端點。當您建立新的分散式系統方案時,這個原型也會出現在 [工具箱] 中。
您可以將這個原型公開到共用位置,即可與其他 [分散式系統設計工具] 使用者共用原型。如需詳細資訊,請參閱下列主題: