WCF与AJAX编程开发实践(3):支持ASP.NET AJAX的WCF服务

在前2节里,我们分别依次学习了《AJAX基础概念和纯AJAX示例》和《支持ASP.NET AJAX的Web Service》。今天继续学习WCF与AJAX编程开发实践(3):支持ASP.NET AJAX的WCF服务。这一节里,我们会讲解如何开发一个WCF服务,来支持ASP.NET Ajax客户端的调用,并给出详细的开发过程和示例代码。 以下是这个系列的文章结构,虽然是为了学习WCF与AJAX编程,但是为了我们更够更好地理解和掌握这一框架,所以文章从最基本的概念开始,然后逐步引入到AJAX和WCF开发的内容上。 这些在第一节里有过介绍。这里开发一个支持AJAX的WCF服务十分的容易,主要原因呢,得益于Visual Studio功能的完善。我们可以轻而易举地创建一个WCF服务,来支持客户端AJAX的调用。本节里大致介绍的顺序从创建网站开始,然后是创建WCF服务,最后是客户端的开发工作。依次给出详细的介绍,并配有截图。这里以Visual Studio2008 英文版为例。截图部分会配以文字说明。中文版开发过程一样。 【1】创建ASP.NET 网站: 首先这里要求你安装了Visual Studio2008 开发环境。 创建一个普通的ASP.NET 网站,步骤很简单,也就是在New ->Web Site 选择网站即可,如下图所示: 【2】创建WCF Service: 【2.1】其次创建一个支持AJAX的WCF服务。 这里与之前的ASP.NET Web Service不同,我们需要自己创建一个支持AJAX的WCF Service即可,如图所示: 【2.2】服务类定义: AjaxWCFService服务类型定义了一个操作,和普通的WCF服务操作没有区别,需要标注[OperationContract]。这个操作的代码很简单,就是接受一个name参数,然后返回一个字符串。具体实现如下: [ServiceContract(Namespace="AjaxFrankXuLei")] [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] public class AjaxWCFService { // Add [WebGet] attribute to use HTTP GET [OperationContract] public String SayHello(String name) { return String.Format("Ajax, Hello {0}", name); } // Add more operations here and mark them with [OperationContract] } 这里比较关键的一个服务属性标注就是: [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]应它的作用就是表示WCF服务能否在 ASP.NET 兼容模式下运行。我们这里设置为允许。 添加AjaxEnabledWCFService,Visual Studio会自动为我们加上这些标注。 【2.3】配置文件Web.Config: Visual Studio会帮助我们添加一些重要的代码和配置信息 【3】创建ASP.NET AJAX客户端: 选择我们需要一个客户端,来调用WCF服务。 【3.1】这里创建ASP.NET AJAX客户端,最重要的是要使用一个服务端控件ScriptManager。这个可以在ToolBox里找到。 它的作用很关键,上一节我们讨论过。 ScriptManager 控件是 ASP.NET 中 AJAX 功能的中心。该控件可管理一个页面上的所有 ASP.NET AJAX 资源。其中包括将 Microsoft AJAX Library 脚本下载到浏览器和协调通过使用 UpdatePanel 控件启用的部分页面更新。(更多内容大家可以自己阅读http://msdn.microsoft.com/zh-cn/library/system.web.ui.scriptmanager.aspx页面的介绍)。 这里需要引用我们的AJAXWCFService.svc文件。代码如下: 【3.2】HTML页面设计,我们就沿用第二节里的页面控件。基本不做修改。功能很简单,和第二节一样,我们输入用户名UserName,然后调用WCF服务,返回SayHello字符串。 【3.3】 剩下的就是Javascript函数,这个过程也非常的简单,因为Visual Studio2008的脚本代码编写的提示也非常的方便,你可以方便地写出一个完成的Javascript函数,这里也可以使用Jquery。 代码如下: 【4】运行结果: 这里我们可以直接在IE里测试一下效果,打开浏览器,浏览Default.aspx网页,这个网页里包含了我们调用WCF服务的客户端Javascript脚本。 我们在控件里输入姓名以后,点击Search按钮,就会看到调用WCF服务操作SayHello返回的结果。如图所示: 【5】总结: ASP.NET AJAX框架,在ASP.NET 网站开发中的使用日益广泛,而作为服务框架,从早期ASP.NET Web Service到现在的WCF,都对于的支持ASP.NET AJAX提供了很好的支持。实际的项目中使用的也越来越常见。作为开发者,Visual Studio2008 给了我们很好的开发体验。大家可以自己编写一个支持AJAX的WCF服务的Demo,最后,我也给出本文的例子代码,供各位参考:/Files/frank_xl/3.AjaxWCFWebSite.zip 参考: 1.http://msdn.microsoft.com/en-us/library/bb924552.aspx 2.WCF与AJAX编程开发实践(1):AJAX基础概念和纯AJAX示例 3.WCF与AJAX编程开发实践(2):支持ASP.NET AJAX的Web Service

猜你喜欢

转载自blog.csdn.net/Giraffe_zj/article/details/5760918