演练:创建可替换的 Web 服务
更新:2007 年 11 月
本演练演示如何复制您以前定义并希望用作替代项的 Web 服务。此应用程序已在 演练:设计 Web 服务 中实现。
先决条件
完成 演练:设计 Web 服务。
创建现有 Web 服务的副本
打开 Catalog.sln 文件。
查看应用程序关系图。
右击“Catalog”应用程序,再单击“复制”。
将复制的应用程序粘贴到应用程序关系图上。
将粘贴的版本命名为“CatalogFacade”。
“CatalogFacade”包括出现在“Catalog”上的同一个“CatalogWebService”和“GetLegacyInfo”终结点。因此,与“Catalog”兼容的所有应用程序都与“CatalogFacade”兼容。“Catalog”与其他应用程序(如“CatalogDB”)的所有连接都将保留。但是,与“Catalog”不同的是,“CatalogFacade”不会显示已实现状态。
说明:
Visual Studio 不会在应用程序之间复制某些设置。因此,尽管看起来保留了数据库连接,但是在运行时此连接不会工作,因为 Visual Studio 不会复制密码之类的某些元素。若要启用此连接,必须输入“CatalogFacade”和“CatalogDB”之间的连接信息。
因此您可以使用“CatalogFacade”应用程序作为在不是使用分布式系统设计器建模的旧版应用程序中实现的旧版目录的包装程序 Web 服务。还可以使用“泛型”应用程序类型在应用程序关系图上表示此类旧版应用程序。例如,在 AS/400 计算机上运行的帐目型系统就是这样一个应用程序。
现在使用“泛型”应用程序类型对旧版应用程序建模。
对旧版应用程序建模
从工具箱中,将“GenericApplication”应用程序拖动到关系图上,并将其命名为“LegacyCatalog”。
从工具箱中,将“.NETWebServiceEndpoint”终结点拖动到“CatalogFacade”上,并将其命名为“LegacyInterface”。
在按住 Alt 键的同时,将“LegacyInterface”终结点拖动到“LegacyCatalog”上,将它们连接起来。
新的使用方终结点将显示在“LegacyCatalog”中。“LegacyCatalog”是旧目录的应用程序占位符。Visual Studio 将不会为“LegacyCatalog”生成代码。但是,它出现在关系图上说明了旧版应用程序的存在,以及它与包装其功能的“CatalogFacade”Web 服务之间的连接。下一个过程演示“CatalogFacade”和“Catalog”如何提供相同的协定。
设计目录系统
在按住 Shift 键的同时,单击“Catalog”和“CatalogDB”。
从“关系图”菜单中选择“设计应用程序系统”。
随即出现“设计应用程序系统”对话框。
在“系统名称”下键入“NewCatalogSystem”。
将打开系统设计器,其中包含新系统包括的选定应用程序。根据需要调整应用程序的位置。
右击“CatalogWebService”终结点,然后选择“添加代理终结点”。
此操作将在此系统中创建一条通信路径。
查看应用程序关系图。
右击“SalesWebClient”,再单击“设计应用程序系统”。
将该系统命名为“CatalogSystem”。
从“系统视图”窗口中,将“NewCatalogSystem”拖动到“CatalogSystem”。
请注意,“NewCatalogSystem”公开一个终结点,使您可以连接该系统。此终结点就是您之前创建的代理终结点。它提供与“Catalog”上的“CatalogWebService”的连接。
将“NewCatalogSystem”上的“CatalogWebService”代理终结点连接到“SalesWebClient”上的使用方终结点。
查看应用程序关系图。
创建一个包含“CatalogFacade”和“LegacyCatalog”的新系统,并将其命名为“LegacyCatalogSystem”。
为“LegacyCatalogSystem”中的“CatalogWebService”创建一个代理终结点。
查看“CatalogSystem”系统。
从“CatalogSystem”中删除“NewCatalogSystem”系统。
从“系统视图”窗口中,将“LegacyCatalogSystem”系统拖动到“CatalogSystem”系统中。
将“LegacyCatalogSystem”系统上的“CatalogWebService”终结点连接到“SalesWebClient”上的使用方终结点。
“NewCatalogSystem”和“LegacyCatalogSystem”系统中都包含作为代理终结点公开的“CatalogWebService”终结点。因此,这两个系统在“CatalogSystem”中可以相互替代。
现在为包含“CatalogWebService”并且使用 Visual C# 作为默认语言的应用程序创建一个可重用原型。可以将此原型添加到工具箱中。
创建可重用原型
查看应用程序关系图。
从工具箱中将“ASP.NETWebService”拖动关系图中。
复制“Catalog”上的“CatalogWebService”终结点,并将其粘贴到新的 ASP.NET Web 服务应用程序中。
将新应用程序的“语言”属性更改为“Visual C#”。
从“关系图”菜单中选择“添加到工具箱”。
随即出现“添加到工具箱”对话框。
在“名称”框中键入“CatalogWebServiceApp”,然后单击“确定”。
随即出现“保存文件”对话框。Visual Studio 将该文件保存为 .adprototype 文件,它是应用程序设计器中使用的应用程序原型文件。
单击“保存”。
打开工具箱并将“CatalogWebServiceApp”拖动到关系图中。
您已创建 ASP.NET Web 服务应用程序的可重用、自定义版本,其中也包括“CatalogWebService”终结点。每当您创建新的分布式系统解决方案时,此原型都将出现在工具箱中。
通过将此原型导出到一个共享位置,可以与其他分布式系统设计器用户共享此原型。有关更多信息,请参见下列主题: