.NET 中Web开发技术的新革命

时间:2022-01-29 13:26:47
Web开发市目前网络应用开发的重中之重,尤其是使用微软开发技术的Web应用程序,随着服务器端微软IIS应用的普及,越来越多的客户端应用都开始转向微软的.NET战略。不过说道.NET战略,似乎近两年微软在.net 的web开发当中所进行的变化屈指可数,尤其是.net 3.0和.net 3.5的应用当中,纯粹的web新技术似乎没有ASP.NET 1.0,2.0推出的时候那么轰轰烈烈,惊天动地,是微软确实没有作为,还是其中另有隐情?本文中笔者将带着大家回顾一下微软在.NET 战略平台下为开发者提供的各种新鲜技术,并对这些技术的前因后果进行深刻剖析,让大家能够通过这些点点滴滴的变化感受到微软在Web开发技术上的各种创新举措。

  ASP.NET Ajax是老瓶装新酒?

  2005年算是互联网复苏年,从2000年谷底一路爬起来的互联网公司纷纷找到了自己新的利润增长点,这就是现在众所周知当年横空出世的web2.0概念,这一概念充分体现了互联网搭台群众唱戏这一互联网最根本宗旨河*纲领,博客的概念一经引出就收到了广泛好评。不过问题也随之而来,博客如雨后春笋般的纷纷出台,广大阅读者马上目不暇接,面对各种博客的日新月异的更新速度,急需有一种让博客内容能够自动送到用户手边的办法。   于是就有人想到了很多年前就有的技术JavaScript异步数据通信,这一技术在2000年开始就被一些骨灰级开发者在各种场合作为iframe框架的替代品广泛使用了,毕竟对于网络状态不好的时候,这一异步数据传输方案可以大大降低传输负载,非常好的提高用户体验,确实市难得的好东西。由于大部分的博客都提供使用RSS进行内容输出,而RSS输出的又是标准的xml数据信息,好分类好管理,于是使用异步javascript和xml进行整合刚好一拍即合,于是ajax技术应运而生了。

  应该说ajax不算是特别新的技术,甚至不能算是超前的技术,但是由于起推出时间合适,大量开发者使用它开发基于RSS的各种应用,用起来得心应手。不过如果说2000年没有太多人使用异步JavaScript进行数据访问是因为一些JavaScript先天的原因,那么到了2006年,这一技术瓶颈依然没有得到完全解决,直到有一个厂家推出了它们自己的Ajax解决方案。

  异步JavaScript在数据访问上有几个先天不足,第一个不足就是对不同浏览器要开发不同的代码,这一工作十分繁琐。尤其是对于一个经常要使用xmlhttprequest对象的开发者来说,每次都要判断用户使用的浏览器是IE还是Firefox,甚至是Opera还是Safari都给开发者带来的巨大的麻烦。其次是大量JavaScript本身没有对象序列化机制,所以没办法直接和服务器端返回的对象进行对象级的接口,最多也就是把一个又一个零散的数据“装”到显示层的容器里,这就好像服务器端穿回的是一个完整的唐三彩马,而由于负责快递的人不知道这个东西怎么封装,只好把胳膊腿等各个零件拆散了快递,最后在目的地再进行重新装配,这样传输当然没太多问题,但是使用起来特别别扭。最后一个问题就是没有特别好的封装类库,好多JavaScript的功能需要扩展,但是这些扩展类库没有一个公司级别的统一标准,往往是每个人自己用一套,于是这一技术只能停留在口传心授的基础上,难以被广泛应用。   这一情况直到微软推出命名为Atlas的ASP.NET Ajax雏形为止,微软推出的产品严格说来包括两个部分,一个是用于扩展JavaScript的大型类库,说它大型是指其功能强大,包括JavaScript面向对象扩展、JavaScript的JSON序列化以及JavaScript与服务器端组件的互相调用,当然了还顺便封装了xmlhttprequest的实现,算是成全了广大开发者,以后大家用这一套类库就可以各种浏览器通吃了。同时针对ASP.NET还做了大量服务器端的内容,首先推出了一个UpdatePanel控件,任何ASP.NET 服务器端的控件只要放在这个UpdatePanel里面就可以直接实现Ajax效果,也就是说不需要写任何代码就可以让每次都要PostBack的控件实现异步数据通信效果,这一设定无疑大大提高了用户体验。

  SilverLight很漂亮的魔法灯

  除了ASP.NET Ajax在Web开发方面,微软还一直都有一个心结,那就是富有表现力的用户界面,一直以来富用户界面应用程序似乎都和微软关系不大,自从苹果垄断了酷和帅这两个名词以后,微软的应用似乎总是稳健有余丰富不足。这当然不是微软的本意,在操作平台方面,微软推出的Vista彻底摆脱了色彩贫瘠的帽子,为自己在操作系统层面争取了一个富表现力的良好开端,在应用程序层面微软最新的.NET 3.0里整合了富有表现力的应用程序开发架构基础WPF,最后Web应用当中微软势必有所动作。

  目前Web应用当中似乎最具有表现力的解决方法都是使用Flash,Flash这个是Adobe公司为了进军网络应用开发市场提供的一个产品,当然如果当时是微软收购了macromedia而不是Adobe,今天也许会是另外一副样子了。借助Adobe三剑客,也就是Dreamweaver,Firework,Flash的强大配合和表现力,微软在Web应用当中的富媒体应用中要想崭露头角似乎还需要做更多努力。Flash也不是尽善尽美,其中最为人诟病的问题就是Flash应用没有特别有力的编程语言支持无论ActionScript如何进化,其先天的诸多弱项都无法弥补,作为脚本语言,它已经尽力完成各种复杂功能和计算也在性能上极力优化了,但是和实用托管代码开发的SilverLight比起来,这些努力似乎显得有点徒劳。

  另外的一些比较主要还是针对搜索引擎的优化,Flash设计的时候还不知道互联网广告会成为今天网络应用的最大赢利点,而且在那个时候互联网广告盈利还只是个别厂家的概念,多数网站还没有真的认为互联网广告能成为一个如此巨大的赢利点。所以Flash在设计上虽然表现力十足,那时其嵌入的所有内容都被编译到一起,作为一个整体的包裹,搜索引擎无法检索到其中任何一段文字,这就实Flash在真正用于制作网站的时候有一点麻烦,设计人员要进行一些忍痛割爱,要么实用富有表现力的Flash但是自己写若干meta信息来让搜索引擎检索,并不断更新和补充这些信息,要么实用传统的Html技术做表示层,但是丧失一部分表现力。SilverLight则在设计的时候就考虑到这个问题,其内嵌的各种文字和描述标记都可以被搜索引擎找到,当然由于其设计时候实用标准规范的xaml语言作为标记语言,其内容的语意分析应该是对任何搜索引擎都易如反掌的,没有太多复杂的结构拆分SilverLight几乎可以说是为搜索引擎设计的表示层工具。