WebServices创建分布式应用程序

WebServices创建分布式应用程序,这是MSDN上一个关于webservices的一个经典例程,拿出来大家看看。


Visual Studio

Msdn地址:

ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/vsent7/html/vxconProgrammableWebServices.htm

演练:WebServices创建分布式应用程序

请参见

使用 XML Web services 进行 Web 编程 | Web 窗体页 | Windows 窗体 | 托管代码中的 XML Web services | 分布式应用程序和数据集成介绍 | 在分布式应用程序中使用企业级模板

在本演练中,您将创建一个多层的分布式 Intranet 应用程序。此应用程序由三个逻辑层组成:数据层、业务对象层和用户界面层。数据层是 SQL Server 中的数据库。业务对象层处理如何访问数据以及如何将数据分发到客户端。用户界面层由基于 Web 的应用程序和传统的 Windows 应用程序组成。下图描述了此应用程序的结构。

您将创建的分布式应用程序的结构

将要生成的应用程序是具有查找和编辑功能的简单数据应用程序。您将生成一个既是 Windows 又基于 Web 的客户端,以显示 SQL Server Pubs 示例数据库中的 Authors 表。对于 Web 部分,您将通过 Web 窗体设计器创建一个与标准 HTML 3.2 浏览器兼容的 Web 页。在服务器上,Web 窗体代码将调用 XML Web services 以从数据库中检索包含作者信息的数据。对于 Windows 部分,您将生成一个 Windows 应用程序,它与同一个 XML Web services 通信以检索包含作者信息的数据集。使用 HTTP XML 处理与此 XML Web services 的通信。

您将在同一个服务器上创建 XML Web services 和客户端应用程序,即使数据库驻留在另一个服务器上。应用程序服务器和数据库服务器必须驻留在同一个 Intranet 上。这种项目结构使您得以使用 Windows 身份验证来访问数据库和测试应用程序。同时,这种结构移除了资源访问的许多详细信息,使您能够看到 XML Web services 和客户端应用程序之间的交互。这种结构可能与您自己创建的应用程序所需的结构不完全一样。有关其他安全模型和结构的更多信息,请参见 Web 应用程序的访问权限。

系统要求

若要完成本演练,您需要:

  • 对具有 Pubs SQL Server 示例数据库、配置了集成 Windows 身份验证的服务器的访问权限。Pubs 数据库是可以与 SQL Server 一起安装的示例数据库之一。

  • 基本了解在 Visual Studio .NET 中数据是如何处理的。有关更多信息,请参见 ADO.NET 数据访问介绍。

分布式应用程序的创建过程

开发分布式应用程序的一个可能的方案是一次创建一层,多半是从数据层开始,然后移到中间层业务规则对象,最后创建用户界面层。在本演练中,已经生成了数据,它们可用于 SQL Server 中的 Pubs 数据库。因此,本演练将从创建业务对象,即 XML Web services 开始,然后生成两个用户界面:Web 窗体页和 Windows 窗体。

本演练的过程如下:

  1. 创建中间层业务对象

    1. 创建 ASP.NET Web 服务项目

    2. 创建并配置数据库连接和数据集架构

    3. 从业务对象中公开数据集

  2. 创建用户界面

    1. 创建 Windows 用户界面

    2. 创建 Web 用户界面

  3. 部署解决方案或添加更多功能

创建中间层业务对象

您创建的业务对象将在 Web 服务器上运行,提供分布式应用程序所需的性能和可伸缩性。另外,您将把业务对象实现为 XML Web services,这样客户端可以使用标准 Internet 协议从任何平台与您的业务对象进行通信。有关详细信息,请参见使用 XML Web services 进行 Web 编程。

在本演练中,XML Web services 组件将保存数据连接和数据集定义。然后将添加 XML Web services 方法以公开此数据集,这使其他应用程序能够查看和修改此数据集。

ASP.NET Web 服务项目模板是基于 Web 的项目,旨在创建将其自身的接口公开为 XML Web services 的中间层组件。有关更多信息,请参见 Visual Studio 中的 ASP.NET Web 服务项目。

XML Web services 将公开两个方法。第一个方法 GetAuthors 将从数据库返回数据集。第二个方法 UpdateAuthors 将用用户的更改更新数据库。创建了若干私有成员来实现这些方法。它们包括数据集定义、数据适配器、数据连接和若干从数据库中检索数据和更新数据库的命令对象。下面的关系图描述了 XML Web services

分布式应用程序的中间层

创建 ASP.NET Web 服务项目

  1. 文件菜单上,指向新建,然后单击项目以显示新建项目对话框。

  2. 根据要使用的语言,在项目类型窗格中选择“Visual Basic 项目“Visual C# 项目,然后在模板窗格中选择“ASP.NET Web 服务

  3. 位置框中,输入 Web 服务器(在您的开发计算机上)的名称和项目名称 http://ServerName/AuthorsWebService,然后单击确定

提示 如果 Web 服务器位于您的计算机上,则可以使用服务器名称 LOCALHOST

提示 如果在创建 ASP.NET Web 服务项目方面有困难,请参见“Web 访问失败对话框。

  1. 项目 AuthorsWebService 就添加到解决方案中。Service1.asmx 组件设计器出现在开发环境中。

  2. 在解决方案资源管理器中,双击 Service1.asmx 以选择它。

  3. 属性窗口中,将 Service1 的 Name 属性设置为 AuthorsService

  4. 在解决方案资源管理器中,右击 Service1.asmx 文件,选择重命名,将此文件重命名为 AuthorsService.asmx,以便与服务名相匹配。

在此组件中,您将创建与数据存储区的连接并通过数据集获取数据实例。

创建和配置数据库连接和数据集架构

您将向 XML Web services 添加两个对象:一个 SqlDataAdapter 对象和一个 SqlConnection 对象。连接对象创建到数据库的新连接,而数据适配器则查询数据库并将结果发送到 DataSet 对象中。数据适配器还用用户对数据集所做的更改来更新数据库。通过使用这个到数据库的连接,将创建一个数据集来保存在数据库中存在的信息的实例。此数据集稍后将在本演练中用来显示 Windows 窗体和 Web 窗体页中的数据。有关概述,请参见分布式应用程序和数据集成介绍。

创建数据库连接和数据适配器

  1. 单击服务器资源管理器。

注意 默认情况下,服务器资源管理器在开发环境的左侧显示为一个垂直选项卡。如果看不到此选项卡,请单击视图菜单,然后选择服务器资源管理器

  1. 在服务器资源管理器中,右击数据连接节点,然后从快捷菜单中选择添加连接

  2. 数据链接属性对话框的连接选项卡中,输入安装有 pubs 数据库的 SQL Server 的名称。如果在本地计算机上有 SQL Server,请输入 (local)

  3. 为登录信息选择使用 Windows NT 集成安全设置

注意 如果在您的系统上没有设置集成安全性,请与网络管理员联系。

  1. 从列表中选择 pubs 数据库。

  2. 单击测试连接验证您提供的信息,然后单击确定建立连接。

一个新节点出现在服务器资源管理器的数据连接节点中。

注意 如果数据库连接失败,请与数据库管理员联系。

  1. 在服务器资源管理器中,展开新连接节点的节点,然后展开节点。

  2. 找到 authors 节点并展开它以显示 authors 表中的字段。

  3. 使用 CTRL+鼠标单击,选择 au_idau_lname、au_fname 和 city 字段。

  4. 将这些字段从服务器资源管理器拖放到设计图面上。SqlConnection 对象与 SqlDataAdapter 对象在设计器中成对出现。现在已建立了到数据库的连接,信息传输将由 SqlDataAdapter 对象处理。这些组件被配置为将包含 authors 表的数据集移入和移出数据库。

注意 本演练使用 SqlDataAdapter 对象,此对象已针对使用 SQL Server 7.0 或更高版本进行了优化。也可以使用 OleDbDataAdapter 对象,这是因为它更通用,并提供对任何与 OLE DB 兼容数据源的 ADO.NET 访问权。如果要连接的数据库不是 SQL Server 数据库,则项目系统会创建一个 OleDbDataAdapter 对象和一个 OleDbConnection 对象。

注意 在本演练中,已使用 authors 表中的一些列和所有的行填充了数据集。在成品应用程序中,通常通过创建只返回所需列和行的查询来优化数据访问。有关示例,请参见演练:使用参数化查询在 Windows 窗体中显示数据。

需要配置项目的安全设置以便使用集成安全性。通过关闭匿名访问并打开模拟来执行此操作。有关更多信息,请参见安全模型。

配置集成 Windows 身份验证

若要为项目配置集成 Windows 身份验证,需要使用“Internet 信息服务工具更改项目文件并配置项目。

  1. 启动“Internet 信息服务工具。可以从控制面板管理工具中运行它。(有关启动此工具的更多信息,请参见 Windows 帮助文档。)

  2. 展开服务器的节点。

  3. 展开默认 Web 站点节点。

  4. 右击 AuthorsWebService 的节点并从快捷菜单中选择属性

  5. 单击目录安全性选项卡。

  6. 单击匿名访问和身份验证控制节中的编辑按钮。

  7. 清除匿名访问复选框。

  8. 选中集成 Windows 身份验证复选框。现在已配置了 XML Web services 目录。

  9. 返回 Visual Studio 中的项目,在解决方案资源管理器中双击 Web.config 文件。

  10. 标记后面的行中添加下面的标记,以便为 XML Web services 配置集成安全性。

创建数据集类定义

  1. 在解决方案资源管理器中,双击 AuthorsService 文件以在设计器中打开它。

  2. 数据菜单中选择生成数据集。在生成数据集对话框中,选择新建并将数据集命名为“authors1”。不要选中标记为将此数据集添加到设计器的框。

注意 将创建数据集架构文件 authors1.xsd 并将其添加到项目中。此架构文件包含 authors1 的类定义。该类(从 DataSet 类继承)包含 authors 表的类型化数据集定义。

  1. 文件菜单中,选择全部保存

从业务对象中公开 authors1 数据集

本演练的下一步是从业务对象公开刚创建的数据集对象。此操作使数据集可供 Windows Web 应用程序使用。

将方法添加到 XML Web services

  1. 在解决方案资源管理器中,如果还没有在设计器中打开 AuthorsService,请双击它。

  2. 视图菜单上单击代码

  3. 添加一个名为 GetAuthors 的方法以向客户端传递一个数据集。

如下所示,此方法创建一个新的 authors1 数据集,并根据 authors 表使用 SqlDataAdapter 对象填充该数据集。然后此方法返回数据集。

' Visual Basic

Public Function GetAuthors() As authors1

Dim authors As New authors1()

SqlDataAdapter1.Fill(authors)

Return authors

End Function

// C#

[WebMethod]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/54654/viewspace-425449/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/54654/viewspace-425449/

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READme.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值