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 选择网站即可,如下图所示:

 

ASP.NETAjaxCallWCFService1.gif

【2】创建WCF Service:

       【2.1】其次创建一个支持AJAX的WCF服务。

    这里与之前的ASP.NET Web Service不同,我们需要自己创建一个支持AJAX的WCF Service即可,如图所示:

ASP.NETAjaxCallWCFService2.gif

      

 【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文件。代码如下:

         < asp:ScriptManager  ID ="ScriptManager1"  runat ="server" >
            
< Services >
                
< asp:ServiceReference  Path ="~/AjaxWCFService.svc"   />
            
</ Services >
        
</ asp:ScriptManager >

   【3.2】HTML页面设计,我们就沿用第二节里的页面控件。基本不做修改。功能很简单,和第二节一样,我们输入用户名UserName,然后调用WCF服务,返回SayHello字符串。

      【3.3】 剩下的就是Javascript函数,这个过程也非常的简单,因为Visual Studio2008的脚本代码编写的提示也非常的方便,你可以方便地写出一个完成的Javascript函数,这里也可以使用Jquery。 代码如下:

  < script language = " javascript "  type = " text/javascript " >

        
function  AjaxSearch() 
        {
            
// 获取输入name
             var  name  =  $get( " UserName " ).value;
            
// 创建 ajaxClient
             var  ajaxClient  =   new  AjaxFrankXuLei.AjaxWCFService();
            
// 调用SayHello方法
            ajaxClient.SayHello(name, OnComplete, OnError);          
        }
        
// CallBack Sucessful
         function  OnComplete(result) 
        {
            
//  Assign the result
            document.getElementById( " AjaxResult " ).value  =  result.toString();
        }
        
// CallBack Error
         function  OnError(result) 
        {
            alert(result.get_message());
        } 
    
< / script>

      【4】运行结果:

       这里我们可以直接在IE里测试一下效果,打开浏览器,浏览Default.aspx网页,这个网页里包含了我们调用WCF服务的客户端Javascript脚本。

      我们在控件里输入姓名以后,点击Search按钮,就会看到调用WCF服务操作SayHello返回的结果。如图所示:

ASP.NETAjaxCallWCFService3.gif
【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

转载于:https://www.cnblogs.com/JsonBlog/archive/2011/05/17/2049353.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值