montaque

小碗喝酒,小口吃肉

博客园 首页 新随笔 联系 订阅 管理

从04年,Web 2.0正式被提出来之后。围绕业务模式,模型。web 2.0应用雨后春笋。比前几年吵的很热的SOA还要火爆。我google了一下,web 2.0的结果是SOA 的20倍。在技术领域,哪怕开发工具,好似不支持web 2.0就很落伍了一样。我最近听了一个delphi的讲座,delphi 2007很快推出,他居然也说要支持web2.0. 那么对web 2。0的支持,从技术角度讲有那些层次呢。
1. 对Javascript/Ajax/DOM的包装和实现
    web 2.0 的技术其实分为三个部分,脚本语言, 浏览器展现的模型,异步调用。对于脚本语言,一般是, Sys.Serialization.Javajavascript,javascript本省没有什么安全类型,OO特性,命名空间。而一些第三方的库都会帮你去封装,去帮你做一些javascrip的OO使用。比如帮你扩展String的方法,实现一些常用的工具类。
 microsoft atlas client library (http://ajax.asp.net/docs/ClientReference/default.aspx)就有这部分的特性
比如你可以写OOScriptSerializer serialize代码一样

 Sys.Serialization.JavaScriptSerializer.serialize(yourobject)


 就可以把一个对象序列华成Json格式。

 另外就是对于Ajax的支持。Ajax 很大的特征就是异步调用。展开的话,就是不同的浏览器有不同的异步调用组件。调用的时候需要知道调用那个url,对方返回的是个什么内容,是javascript?还是一个对象(json格式)还是xml?Callback 是什么?为此几乎所有的ajax 框架都会封装这个特性。帮你做到浏览器兼容,编程透明。以下是Dojo的一个调用。
 客户端调用服务端的一个方法,服务端返回一个Json格式的对象。而对于.net ,也有一些第三方的库,负责把你序列华对象到json格式。比如 http://www.newtonsoft.com/products/json/
 你在客户端只要写一下,简单的一个方法调用。就可以完成绝大多数的操作。
  

var bindArgs = {
    url:        
"http://youserver/yourapp.aspx",
    mimetype:   
"text/json",
 sync:
true,
    error:      
function(type, errObj){
          alert(
"error");
    }
,
    load:      
function(type, data, evt){
        
// handle successful response here
   dojo.byId("result").innerHTML=data.FullName;  
    }

 }
;
 
  dojo.io.bind(bindArgs);

  
 仅仅有javascript的特性支持加异步调用还不够,能否跟Dom结合作出一些现成的可用的组件或者控件呢?比如能否给我一个自动完成的combox类似google sugesst一样?能否给我一个treeview异步的从后台抓数据?可否有一个拖放额效果?
 很多库也是支持这方面的需求。比如YahooUI(YUI),Dojo,MochiKit等。这三个库都是客户端的库,也就是说完全基于javascript+浏览器模型
 
2.对既有编程体系的扩展使之支持Ajax.
 两个典型的例子就是微软的Atlas server-side. 您只需拖放一个UpdatePanel控件,稍许配置一下就可以实现部分刷新。而Atalas帮你做自动的render成JS代码,js代码负责展现,后台异步调用以及操作dom。而且还支持可视化的调试。
 
 当然 Delphi 2007对 web20的支持也是这个范畴。有一些VCL for web的组件,让你可以用delphi的语法操作对象,对象自动有异步的事件。而生成的代码都是透明的。当然是非常混乱的。所以特别大的网站很少这样用。原因1:生成的js数量太大,影响加载速度。 2。太多不可控。因为这些特性,是很容易自己开发实现。
 
3. web 2.0的实现技术。出了传统的Ajax之外呢,你也可以用machomedia的Flex,实现强的展示,用户体验。还有一些快速开发的技术,比如用Ruby on Rails,我今天看了一个video,他可以15分钟作出一个blog来。。。


  
  

posted on 2007-03-16 11:53  montaque  阅读(3530)  评论(15编辑  收藏  举报