最近AJAX风靡全世界,在CommunityServer中他运用了自己定义的封装了js,并且可以跨浏览器,在较小的应用程序中,他比较适合,而且使用也比较简单。但是对微软的Microsoft AJAX还是一点不了解的我,从今天开始也要进入学习,一步一步的去了解,慢慢的深入。在博客园里也看了一些文章,但是他们大都是说AJAXExtendControl的,我想从脚本入手来学习一下Microsoft Ajax,顺便也对脚本进行复习一遍,岂不是一举两得。从原文件中我们可以看到Microsoft Asp.net Ajax是一个很强大,而且很适合C#开发人员扩展的脚本库。在Microsoft Asp.net Ajax脚本库中添加了一个Type及System来对JavaScript对象的扩展。其中扩展并形成类似.NET中常见的命名空间(namespaces),抽象类(inheritance)(注:我是这么认为的,不知道有没有更好的说法),接口(interfaces),枚举(enumerations),以及对象反射(reflection),同时也对(字符串)strings,(数组)arrays进行了扩展。这让我们这些.NET的开发人员,特别是C#开发人员更好,更有效的对脚本的扩展。

要达到将普通的JavaScript封装成类似.NET的框架,Type可谓是功不可没阿,通过Type中的一些方法可以将我们的脚本注册到一个类,将一个类注册到一个命名空间中等等。下面我们将会对前面几个对应的类似.NET框架的Microsoft Ajax脚本库进行逐个的介绍。

1.Namespaces

是一个逻辑分类(个人虚构,如有雷同纯属巧合),及时将很多个类(classes)进行分类,通过Type.registerNamesapce方法可以将一个class(一下称为"类",虽然它不象话,但总的给个说法吧!)注册到一个namespace(以下成为"命名空间")中。

2.Classes

引用Type,所有的类都继承自JavaScript的object(在.NET中所有的类也是继承自Object),通过Type.registerClass将一个对象注册到类中。由于应用一个面向对象的模型,在Microsoft AJAX 脚本库中也能够实现继承基类的对象实例。一个类可以包含四个成员:fields, properties, methods, and events。
  
  fields:可以通过应用当前类的实例对象来引用如myClass.name="MyName";

properties:通过带有get和set标记的方法对其进行付值,在Asp.net Ajax中通过"get_"和"set_"与方法名称结合来给他付值,如果要对一个叫myname的属性付值,可以通过get_myname和set_myname方法来完成此项任务。

methods:方法也就是函数,这里对不多说了。

events:事件主要涉及到一些行为动作,当一个事件被挂起(激活)时,将调用一个或多个从handlers继承的方法来处理这个事件。
  
  3. Inheritances

众所周知虚函数是要被重写的,大多数面向对象的编程语言都支持类的继承和重写,但是JavaScript是不支持这项功能的。但是在Asp.net Ajax中通过特殊的方式(以"_"为起始标记的方法将被视为私有方法,将不能在外部类中执行此方法)实现了这种重写的功能,将会更好的对脚本库进行扩展。

4.Inheritances

每一个类都可以继承自另一个基类,当一个类继承基类时此类将加载基类中的方法,属性,事件等,同时可以重写基类中的方法,事件等或直接调用基类中方法等,Asp.Net Ajax中也实现了这项功能。

5.Interfaces

接口知识一种约定,并没有实现方法,同样在Asp.Net Ajax中也有接口,其实就是定义一个空函数。

6.Enumerations

通过Type.registerEnum方法可以注册一个枚举,它主要是更直观的表达一个对象。

7.Reflection

使用反射可以知道类中的信息,对Type进行扩展,提供APIs对类进行分析,从而得到类中的信息。

今天先对JavaScript Microsoft Ajax Library(我比较喜欢叫他Microsoft Ajax脚本库)有一个总体上的认识,第一碰这个东西可能很多理解都是歪理,如果人总是从不懂到懂,逐渐深入也总是需要一个过程。就像当年我对Class怎么也不理解(因为我是在没有人指导的情况下,自己研究起来的,生物工程就是我的专业-中国十大骗人专业之一,由于没有注意现在毕业证还寄在学校呢?),希望我对Ajax也能一步一步的弄懂它,如果有不对的地方还请批评指教。

本文转自网魂小兵博客园博客,原文链接:http://www.cnblogs.com/xdotnet/archive/2006/12/22/aspnet_ajax_javascript_extend.html,如需转载请自行联系原作者

[ASP.NET AJAX]类似.NET框架的JavaScript扩展相关推荐

  1. 在ASP.NET AJAX 1.0框架中访问Web服务

    一. 简介     如今,微软最新推出的AJAX框架为ASP.NET AJAX 1.0(下载地址为[url]http://ajax.asp.net/downloads/default.aspx[/ur ...

  2. 使用ASP.NET AJAX 1.0框架PreviewGlitz进行网页动画编程

    一.引言 微软最新推出的AJAX框架为ASP.NET AJAX 1.0(下载地址为[url]http://ajax.asp.net/downloads/default.aspx[/url]),此框架由 ...

  3. ASP.NET AJAX 控件开发基础

    在 JavaScript 当前广泛使用的版本中,它缺少 .NET 开发人员所熟悉的几个 OOP 的关键概念,而 ASP.NET AJAX 可以模拟其中的大多数,而且 ASP.NET AJAX 的目标是 ...

  4. 基于微软ASP.NET AJAX框架开发幻灯片播放网页

    一. 简介      最近,微软ASP.NET Ajax 1.0框架以其完整的基于Ajax的web开发方案呈现在web技术人员的前面,凭借与遗留ASP.NET系统的有机整合以及完全面向对象的客户端Ja ...

  5. WebCast《实战ASP.NET AJAX系列课程(2):使用客户端框架创建“纯粹”的Ajax应用程序》相关资源...

    本课程将从头开始使用ASP.NET AJAX客户端框架/组件创建一个"纯粹"的Ajax应用程序的全过程.适合于开发者学习Ajax所带来的这种崭新的开发方式,即将表示层完全放在客户端 ...

  6. 微软ASP.NET AJAX框架剖析

    一.简介 大约在2006年年初,AJAX迅速成为Web 2.0开发中的一个热点,也成为开发以用户为中心的Web应用程序事实上的标准.然而,要开发出高质量的AJAX应用程序,首先要求开发者是一名 Jav ...

  7. ASP.NET AJAX文档-ASP.NET AJAX 概述[翻译](1)

    本文翻译自官方文档,小弟是第一次翻译,若有不妥之处,请大家指出. ASP.NET AJAX 概述 介绍 微软的ASP.NET AJAX能让你快速的创建web页面,这些页面包括一个能快速响应的富用户体验 ...

  8. 《ASP.NET AJAX程序设计——第II卷:客户端Microsoft AJAX Library相关》前言

    章节列表:http://www.cnblogs.com/dflying/archive/2007/05/18/751741.html 在最近的一年以及今后的三五年内,我们有理由相信Web应用程序将受到 ...

  9. 《ASP.NET AJAX程序设计——第II卷:客户端Microsoft AJAX Library与异步通讯层》前言...

    在最近的一年以及今后的三五年内,我们有理由相信Web应用程序将受到更多开发者和用户的青睐.作为领路人Google的一系列基于Web的产品完全地颠覆了传统的网页概念,让用户甚至不敢相信基于浏览器的程序竟 ...

最新文章

  1. unity人物旋转移动代码_Unity3D研究院之脚本实现模型的平移与旋转(六)
  2. 如何快速实现HTML编辑器.NET组件
  3. 南瓜电影 7 天内全面 Serverless 化实践
  4. Struts的几个精细之处
  5. jedis与redis_Redis与Jedis排序
  6. mysql 5.6.17 x64 安装
  7. 用JAVA制作小游戏——推箱子(一)
  8. 中兴的自毁与自救:封杀7年、禁用 Android,76岁创始人奔走前线!
  9. Django学习笔记二
  10. ValueError: No JSON object could be decoded?此种异常的解决方案之一
  11. [原创]一篇无关技术的小日记(仅作暂存)
  12. rhel6.5 oracle12c,中标麒麟Linux6.5安装Oracle12C配置过程
  13. Magento后台添加商品(Simple Product和Configurable Product)
  14. 中缀表达式X=A+B*(C-(D+F))/E转后缀表达式之后是什么?
  15. 宝贝对不起,放下工作养不起你,拿起工作陪不了你…
  16. WinSCP下载安装及使用
  17. opencv-python图片的镜像
  18. linux 系统启动故障处理(an error occurred during the file system check)
  19. javascript检查移动设备是否支持重力方向感应
  20. git missing change-id解决办法

热门文章

  1. hamburger组件_一个侧边栏导航组件实现思路
  2. IO模型 :阻塞IO、非阻塞IO、信号驱动IO、异步IO、多路复用IO
  3. 操作系统中避免死锁的银行家算法【表面C++实际C语言】一学就废的菜鸡代码
  4. NLP复习资料(2)-三~五章:形式语言、语料库、语言模型
  5. 《Python Cookbook 3rd》笔记(1.16):过滤序列元素
  6. 英语口语-文章朗读Week10 Thursday
  7. 广州学车科目三路考操作步骤要领
  8. 推辞掉得不是你的工作,而是你的未来
  9. Column count doesn't match value count at row 1 原因
  10. 狗窝里的小日子- 6 ...