0 Comments

深入剖析微软ASP.NET Ajax中的数据绑定构架下篇之

发布于:2013-10-22  |   作者:广州网站建设  |   已聚集:人围观

一、上篇中的示例回顾

在上篇中,为了熟悉MS AJAX在客户端的数据绑定技术,我们给出了一个简单的例子AJAXCTPDev311。其实,这个例子中还有许多重要的特征值得我们作深入分析:

◆提供了一个创建基本的MS AJAX数据绑定应用程序的典型框架;
◆在创建这个例子时,我们选用了“ASP.NET AJAX CTP-Enabled Web Site”模板;其实,你还可以选择普通的“ASP.NET AJAX-Enabled Web Site”模板,但是你必须手工地添加对程序集Microsoft.Web.Preview.dll(这个程序集提供对xml-script声明方式编程和数据绑定技术的支持)的引用;
◆无论创建什么样的MS AJAX应用程序,MS AJAX服务器端控件ScriptManager在整个MS AJAX框架中都起着核心作用。典型情况下,我们都要显式地指定我们要使用的WEB服务相应的*.asmx文件和所使用的程序集。下面我们再次列出这部分的相关代码:

广州网站建设,网站建设,广州网页设计,广州网站设计

<asp:ScriptManager ID="ScriptManager1" runat="server" >
<Services>
<asp:ServiceReference Path="BookDataService.asmx" />
</Services>
<Scripts>
<asp:ScriptReference Assembly="Microsoft.Web.Preview" Name="PreviewScript.js" />
</Scripts>
</asp:ScriptManager>

 

◆控件ListView(以及控件ItemView,我们将在第三个例子中使用之)提供了一组现成的模板,而典型情况下这些内容又进一步与一组HTML div元素相关联(它们的内部又可以进一步包含基本的HTML元素,例如button,textbox,span,hyperlink等)。值得注意的是,为了熟练掌握ListView和ItemView两个MS AJAX高级控件,你必须细致分析这些元素与这两个控件中各种模板的对应关系;
◆声明性编程是MS AJAX新提供的一种客户端编程技术,我们将在后面的部分对之作更为深入的讨论; 
◆下面的框图大致概括了我们所使用的几个关键部件间的关系:

图1:几个关系部件间的关系图

在此,请注意:第一,位于ListView、DataSource和WebService处的数据形式是不同的;第二,在实际开发情况下,WebService一般以数据库数据的形式提供数据(我们将在第三个例子中使用这种情形);

◆在本例中,我们使用了一个特别类型的WebService—DataService来实现从服务器端为客户端的ListView控件提供数据;
◆我们在本例中直接从客户端调用了WebService方法—这是MS AJAX带给我们的巨大变化。

在接下来的部分中,我们将详细更为细致地分析MS AJAX框架提供的xml-script编程(也即声明性编程)思路。

二、MS Ajax中的声明性编程

除了使用直接的JavaScript编程方式外,MS AJAX还提供了另一种实例化客户端类型的方式—声明性编程模式(其实在ASP.NET中已经提供了类似的实现方式)。注意,为了使用这种方式进行编程,你必须从微软Ajax站点下载Futures CTP包并且添加一个到脚本文件PreviewScript.js(包含在程序集Microsoft.Web.Preview中)的引用。有关这种ASP.NET AJAX 1.0声明性编程的更为细致的讨论,你可以参考Alessandro Gallo的xml-script声明性编程教程。但是,即使这里的教程也只是提及了有关xml-script编程的基本知识;因此,要想精通这种声明性编程,我的意见是,一方面你应该深入研磨伴随MS AJAX发行的示例程序—TaskList;更深一步的话,应该是深入研究文件PreviewScript.js中的有关xml-script语法的解析器部分(这是xml-script编程的优点吗?)。

在此,我们仅列出使用声明性编程的基本步骤,具体应用请参考后面的有关例子:

◆按通常方式设计你的WEB页面—定义相应的HTML元素;
◆创建MS AJAX客户端控件以关联于这些HTML元素;
◆操纵这些MS AJAX客户端控件,进而间接控制相应的HTML元素。

为了进一步简化声明性编程,MS AJAX不仅引入了大量的客户端控件(例如Label,Button,InputControl,TextBox,Image,HyperLink,CheckBox,Select,ItemView,ListView,等等),而且还新创建了许多高级概念(例如Action,Behavior,数据绑定等)。

根据本人的理解,使用声明性编程至少存在两个理由:通过配置相应的XML元素或标签来简化单纯的JavaScript脚本式编程(毕竟有大量的WEB开发人员对JavaScript并不深入了解);这也是适应未来编程模式的要求—通过把应用程序的设计与实现分离开来从而简化程序的开发,而且简化系统的维护、更新、国际化、第三方开发、重编译,乃至系统的发布。尽管存在种种优点,但由于这种新模式编程刚刚开始(在其它系统下大概也是如此),所以,也存在一些相关的困难,例如调试问题,尚未出现现成的高级IDE工具来简化这种XML声明式编程。
广州网站建设,网站建设,广州网页设计,广州网站设计

飞机