共用方式為


逐步解說:使用由上而下的方法設計應用程式系統

更新:2007 年 11 月

這個逐步解說會引導您以由上而下的方法設計應用程式系統。

在這個逐步解說中,您將完成下列工作:

  • 建立新的系統設計方案。

  • 重新表示和公開系統定義做為 Web 服務的行為。

  • 定義新 Web 服務的作業。

  • 將兩個新的系統以成員身分加入至系統定義。

  • 重新命名新的系統。

  • 將 Web 服務加入至系統定義的成員。

  • 連接系統定義中的兩個系統。

  • 將系統定義的行為委派給成員。

  • 繼續設計系統定義的成員。

  • 實作基礎應用程式定義。

建立新的系統設計方案

您可以使用由上而下的方法開始設計系統。您可以建立新的系統設計方案,以執行這項工作。根據預設,這個方案會包含空白系統圖表和應用程式圖表。系統圖表會顯示空白的系統定義。應用程式圖表會顯示您以成員身分加入至系統定義的任何應用程式定義。

建立新的系統設計方案

  1. 在 [檔案] 功能表中,指向 [新增],然後按一下 [專案]。

    [新增專案] 對話方塊隨即出現。

  2. 在 [新增專案] 對話方塊的 [專案類型] 下,按一下 [分散式系統]。

  3. 在 [範本] 下,按一下 [系統設計]。

  4. 將方案命名為 StoreFrontSystem。

  5. 輸入要儲存該方案的位置。

Visual Studio 便會建立方案。[系統設計工具] 會開啟並顯示系統圖表。[應用程式設計工具] 會在背景開啟應用程式圖表。

您現在可以重新表示和公開系統定義做為 Web 服務的行為。

重新表示和公開系統定義做為 Web 服務的行為

您可以定義和公開系統定義做為 Web 服務的行為。您可以將 .NET Web 服務提供者端點加入至系統定義,以執行這項工作。這個動作也可讓您將此系統連接至其他系統定義中的成員。

將 Web 服務加入至系統定義

  1. 按一下系統圖表上的 [StoreFrontSystem]。

  2. 在 [圖表] 功能表上,依序指向 [加入]、[端點],然後按一下 [.NETWebServiceEndpoint]。

    名為 [WebService1] 的 .NET Web 服務提供者端點會出現在 [StoreFrontSystem] 上。

  3. 按一下 [StoreFrontSystem] 上的 [WebService1]。

  4. 在 [檢視] 功能表中,按一下 [屬性視窗]。

    [屬性] 視窗隨即出現。

  5. 在 [屬性] 視窗中,使用 [名稱] 屬性將端點命名為 [CatalogService]。

    注意事項:

    當您將端點加入至系統定義時,該端點也會出現在其他系統定義之該定義的任何使用上。如果您刪除系統定義的端點,則也會將它從其他系統定義之該定義的所有使用中刪除。

您現在可以針對 CatalogService 定義 Web 服務作業及其參數。

定義新 Web 服務的作業

您可以使用 [Web 服務細節] 視窗,定義 CatalogService Web 服務的作業。作業說明了 Web 服務的方法名稱、參數及其他與作業相關的資訊。

注意事項:

根據預設,Visual Studio 會將系統定義上 Web 服務端點的語言設定為 Visual Basic。將端點行為委派給應用程式時,您可選擇此端點的實際實作語言。

將作業加入至 Web 服務端點

  1. 按一下 [StoreFrontSystem] 上的 [CatalogService] 端點。

  2. 在 [圖表] 功能表上,按一下 [定義作業]。

    [Web 服務細節] 視窗便會出現。

  3. 在 [Web 服務細節] 視窗中,按一下 [<加入作業>],加入名為 [GetCatalog] 的作業,然後按下 TAB 鍵。

  4. 在 [型別] 方塊中,輸入 [Catalog],然後按下 ENTER 鍵。

    注意事項:

    [Catalog] 是您在將端點委派給 ASP.NET Web 應用程式及實作該應用程式之後,可以定義的自訂型別。

  5. 展開作業節點,按一下 [<加入參數>],加入名為 [CatalogName] 的參數,然後按下 TAB 鍵。

  6. 在 [型別] 方塊中,輸入 [String],然後按下 TAB 鍵。

    注意事項:

    當您開始在 [型別] 方塊中輸入時,Visual Studio 會顯示可用類型的清單。

  7. 在 [修飾詞] 方塊中選取 [ByVal],然後按下 ENTER 鍵。

您現在可以將新成員加入 [StoreFrontSystem]。

將兩個新的系統以成員身分加入至系統定義

您可將兩個新系統以成員身分加入 [StoreFrontSystem] 系統定義。Visual Studio 會針對每個您加入至系統定義的新系統,將新系統圖表 (.sd) 檔案加入至方案。每個系統圖表都會包含每個新系統的定義。

將新系統加入至系統定義

  1. 按一下系統圖表上的 [ StoreFrontSystem]。

  2. 在 [圖表] 功能表上,依序指向 [加入]、[系統],然後按一下 [空白系統]。

    名為 [System1] 的新系統便會以成員身分出現在 [StoreFrontSystem] 內部。新的系統圖表 (.sd) 檔案會出現在方案中,且會在背景中開啟。

  3. 加入名為 [System2] 的第二個空白系統。

您現在可以重新命名這些新成員。

重新命名新的系統

您將重新命名兩個新系統及其基礎定義。

重新命名新成員

  1. 按一下 [StoreFrontSystem] 內部的 [System1]。

  2. 在 [圖表] 功能表上,按一下 [重新命名]。

    [重新命名] 對話方塊隨即出現。

  3. 在 [重新命名] 對話方塊中選取 [重新命名定義] 核取方塊 (若為未選取狀態)。

  4. 在 [成員名稱] 方塊中,將成員命名為 [OrderSystem],然後按一下 [確定]。

    成員及其定義會顯示為新名稱。

    注意事項:

    Visual Studio 將不會更新包含基礎定義的圖表檔案名稱。

  5. 將 [System2] 重新命名為 [CatalogSystem]。

您現在可以重新表示和公開成員做為 Web 服務的行為。

將 Web 服務加入至系統定義的成員

您可以重新表示和公開 StoreFrontSystem 成員的行為做為 Web 服務。您可以將 .NET Web 服務提供者端點加入至新成員,以執行這項工作。這個動作也可讓您將該成員連接至 StoreFrontSystem 中的其他成員。

將 Web 服務加入至成員

  1. 按一下 [OrderSystem] 系統。

  2. 在 [圖表] 功能表上指向 [加入],然後按一下 [.NETWebServiceEndpoint]。

    名為 [WebService1] 的 .NET Web Service 提供者端點會出現在[OrderSystem] 及其基礎定義上。

  3. 按一下 [ OrderSystem] 上的 [ WebService1]。

  4. 在 [屬性] 視窗中,使用 [名稱] 屬性將端點命名為 [OrderService]。

    注意事項:

    將端點加入至系統成員時,該端點也會出現在成員的基礎定義上。而端點也會出現在其他系統中之該系統定義的所有使用上。將端點加入至成員後,您就無法從該成員中直接移除它。若要從成員移除端點,您必須從其成員定義予以刪除。這個動作也可從該定義的所有使用移除端點。這個需求強調此變更會如何影響其他系統定義上之該定義的使用。

您現在可以定義 StoreFrontSystem 成員之間的通訊路徑。

連接系統定義中的兩個系統

您可以在部署時定義系統定義成員間所使用的通訊路徑。您可以連接 [StoreFrontSystem] 中的兩個系統,以執行這項工作。這個連接會說明這兩個系統間的提供者和消費者關係。

連接系統定義的成員

  1. 按一下 [OrderSystem] 上的 [OrderService] 端點。

  2. 在 [圖表] 功能表上,按一下 [連接]。

    [建立連接] 對話方塊隨即出現。

  3. 在 [連接至] 下的 [成員] 清單選取 [CatalogSystem],然後按一下 [確定]。

    [OrderSystem] 和 [CatalogSystem] 之間便會出現連接。Web 服務消費者端點也會出現在 [CatalogSystem] 上,且會連接至 [OrderService]。這個消費者端點也會出現在 [CatalogSystem] 的基礎定義上。

您現在可以將 [StoreFrontSystem] 系統的行為委派給其中一個成員。

將系統定義的行為委派給成員

您可以選擇會在部署時提供系統定義的成員。您可以將該系統定義的行為委派給其中一個成員,以執行這項工作。比較特別的是,您可以將 [CatalogService] Web 服務的行為委派給 [CatalogSystem]。這個動作會以 Proxy 端點取代系統定義上的 Web 服務端點。成員上便會重新出現 Web 服務端點。兩個端點都會互相連接。

注意事項:

因為端點已成為該成員定義的一部分,因此 Web 服務端點也會出現在 [CatalogSystem] 的基礎定義上。

將系統定義的行為委派給成員

  1. 按一下 [ StoreFrontSystem] 上的 [ CatalogService]。

  2. 在 [圖表] 功能表上,按一下 [委派]。

    [委派行為給系統成員] 對話方塊隨即出現。

  3. 在 [委派至] 下的 [成員] 清單選取 [CatalogSystem],然後按一下 [確定]。

    [CatalogService] 現在會出現在 [CatalogSystem] 上。Proxy 端點會出現在 [CatalogService] 之前的位置,並具有相同的名稱。這個 Proxy 端點會連接至 [CatalogService] 並在系統外部公開其行為。

繼續設計系統定義的成員

您現在可以繼續設計 [StoreFrontSystem] 的成員。您可以將 ASP.NET Web 應用程式加入至 [CatalogSystem] 和 [OrderSystem] 的定義,以執行這項工作。這些應用程式會提供那些系統定義的行為。然後,您便可以將那些系統定義的行為委派給那些應用程式。

繼續設計系統定義的成員

  1. 按一下系統圖表上的 [CatalogSystem]。

  2. 在 [圖表] 功能表上,按一下 [在系統設計工具中開啟]。

    包含 [CatalogSystem] 之定義的系統圖表隨即開啟。

  3. 在 [圖表] 功能表上,依序指向 [加入]、[應用程式],然後按一下 [ ASP.NETWebService]。

    名為 [WebApplication1] 的新 ASP.NET Web 應用程式會出現在 [CatalogSystem] 內部。Visual Studio 也會將此應用程式的定義加入至方案中的應用程式圖表。 

  4. 刪除 [WebService1] 端點。

  5. 將應用程式命名為 [CatalogManager]。

  6. 按一下 [CatalogSystem] 上的 [CatalogService],然後按一下 [圖表] 功能表上的 [委派]。

    [委派行為給系統成員] 對話方塊隨即出現。

  7. 在 [委派至] 下選取 [CatalogManager],然後按一下 [確定]。

    [CatalogService] 現在會出現在 [CatalogManager] 上。您稍後可以實作 [CatalogManager] 的定義,以繼續在程式碼中定義 [CatalogService] 的行為。

  8. 按一下 [CatalogSystem] 上的消費者端點。

  9. 將消費者端點委派至 [CatalogManager]。

    [CatalogManager] 現在可以與 [CatalogSystem] 外部進行通訊。

  10. 按一下 [StoreFrontSystem.sd] 文件索引標籤以檢視 [StoreFrontSystem] 的系統圖表。

  11. 針對 [OrderSystem] 重覆執行步驟 1 至 3,並將應用程式命名為 [OrderManager]。

  12. 將 [OrderService] 端點委派至 [OrderManager]。

  13. 按一下 [StoreFrontSystem.sd] 文件索引標籤以檢視 [StoreFrontSystem] 的系統圖表。

[CatalogSystem] 中的 CatalogManager 應用程式,現在可以透過每個系統上的 Proxy 端點與 [OrderSystem] 中的 [OrderManager] 應用程式通訊。此外,[CatalogManager] 會透過該系統的 Proxy 端點提供 [StoreFrontSystem] 的行為。

實作基礎應用程式定義

您可以繼續定義 [CatalogSystem] 和 [OrderSystem] 的行為。您可以先連接 [CatalogSystem] 和 [OrderSystem] 的基礎定義,然後予以實作,以執行這項工作。實作應用程式定義時,Visual Studio 會在方案中產生專案,讓您可以繼續在程式碼中定義其行為。

注意事項:

您必須先連接應用程式定義,才能進行實作。這可讓 Visual Studio 正確產生任何所需的 Web 服務用戶端 Proxy 類別。

連接和實作應用程式定義

  1. 按一下 [StoreFrontSystem.ad] 文件索引標籤以檢視應用程式圖表。

    [應用程式設計工具] 會顯示應用程式圖表,其中包含 [CatalogManager] 和 [OrderManager] 的應用程式定義。

  2. 將 [CatalogManager] 上的消費者端點連接至 [OrderManager] 上的 [OrderService] 端點。

    注意事項:

    當您連接系統定義上之應用程式定義的使用時,Visual Studio 將不會與它們連接。應用程式圖表上的連接表示開發環境中的通訊路徑,而系統圖表上的連接則表示部署環境中的通訊路徑。

  3. 在 [屬性] 視窗中,將 [CatalogManager] 和 [OrderManager] 的 [範本] 屬性設定為 [ASP.NET Web 應用程式]。

  4. 在 [圖表] 功能表中,指向 [實作],然後按ㄧ下 [實作所有應用程式]。

    Visual Studio 會在方案中產生對應的專案,讓您可以繼續在程式碼中定義 [CatalogManager] 和 [OrderManager]。

請參閱

參考

Architecture 版的新功能