• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
激情 希望 斗志昂扬
Records of growth process 专注微软技术
博客园    首页    新随笔    联系   管理    订阅  订阅

JavaScript一些框架的介绍

  JavaScript其实出来好多年了,这大家都清楚,但是近几年新出现的一些JavaScript框架的确给JavaScript带来了新的活力。随着基于JavaScript的RIA开发越来越频繁、热门,越来越多的程序员开始为如何编写这些繁多而散乱的JavaScript代码而抓狂,代码越来越多、越来越复杂,一些调试工作似乎已经成为标准的体力活,也正是因为如此才有了我接下来要说到的几款JavaScript开发框架。

最早也是最出名的要数prototype了,这款鼻祖级的JavaScript库,如今已经配了新的搭档,那就是Script.aculo.us,这是一款完全基于prototype的开发框架,提供了相当数量的上层应用组件和函数,你可以这么理解,假如把prototype比作MSIL,那么Script.aculo.us就是.NET语言。目前prototype的最新版本是1.6,Script.aculo.us的最新版本是1.8,详细信息请见:http://script.aculo.us/

接下来介绍的是JQuery,这个也算是JavaScript开发框架的新星了,虽然出来也有些时日了。JQuery与prototype比起来要更成熟一些,并且支持更好地扩展性,目前有相当多的JavaScript开源控件都是基于JQuery的,其强大的selector的功能堪称一绝,对于html的元素选择就像css selector一样。详细信息请见:http://jquery.com。另外jquery还把一些UI控件集成为一套库,叫做ui.jquery,大家可以去http://ui.jquery.com 看看demo(建议看的时候不要喝水、吃东西,会喷出来的)。

接下来要介绍dojo,这也是一套类似于prototype的库,不过我没有怎么用过,功能方面似乎与prototype基本类同,还是属于比较底层的库。目前也有一些基于dojo的控件和应用。想了解dojo的信息,请看http://dojotoolkit.org/

另外的两个比较有名的框架就是Yahoo UI和Google Web Toolkit了,这两个相信大家都比较熟悉,特别是Google Web Toolkit更是解决了如何用java代码来写javascript的问题,即通过编译器和解析程序生成javascript,这是一个很不错的功能。这一点,.NET仍然做的不足,我们仍然要通过大量的RegisterScriptBlock来解决问题动态javascript生成问题,从开发体验的角度讲,这样容易分散程序员的经历,因为程序员不得不平凡地切换思考模式,一会儿是写.NET代码,一会儿是写Javascript代码。不过呢,有人已经注意到了这个问题,并且开发了Script#,就是专门用来解决.NET下的JavaScript开发体验问题,个人用下来还是不错的,大家可以去http://projects.nikhilk.net/Projects/ScriptSharp.aspx 了解Script#。

还有一款不得不介绍的JavaScript开发框架就是extjs,这两天已经看到cnblogs上有人在介绍这个库的一些开发心得了。这款开发框架并不像jquery和prototype那样,严格意义上讲jquery和prototype只能算开发库,而extjs则是真正的开发框架,它不仅仅解决了底层的浏览器兼容问题、通用的一些开发功能,也为开发者提供了大量的内建控件库,例如,用于布局的BorderLayout、Viewport,用于生成表单的FormPanel等等,请注意,这些控件都是内建的,而非基于extjs开发,这个差别直接导致了整个开发框架的完整性有很大程度的提高,对于开发人员来说,与其把很多来自第三方基于一套库开发的控件放到一个项目中来,倒不如直接用内建的控件来得方便,而且整合度更高,代码可靠性也高。extjs还有一点值得称道,那就是它为其他javascript开发库提供了兼容适配器,主要为jquery,prototype+Script.aculo.us和Yahoo UI提供了适配器,这是其他开发库所没有涉及的,这直接说明extjs的开发者们很有远见,融百家之众长,把其他库好的地方直接引入为我所用。有关extjs的详细信息你可以访问http://extjs.com。

另外,微软的ASP.NET AJAX以及Silverlight中也引入了相应的JavaScript库,虽然以我个人的角度看,这些库还无法与第三方开源库相抗衡,但对于微软自己的产品来说是足够了,当然这是一个信号,预示着在微软未来的开发库中,JavaScript将占据相当比重,特别是当Silverlight后续版本发布的时候。这里要澄清一点,在过去几个月中,曾经看到过一些文章中说微软的Silverlight与ASP.NET AJAX的定位有重合,所以有人认为ASP.NET AJAX是没有意义的,是微软的决策失误,但从我个人的角度看,就目前的Silverlight 1.0(1.1目前没有release,不纳入讨论范畴)而言,它与ASP.NET AJAX并不冲突,Silverlight是针对高端RIA应用的,而ASP.NET AJAX则更多地瞄准低端RIA,至于最后会不会把这两个产品整合,我目前不敢断言,但从技术发展的趋势看,微软在未来2-3年内很有可能会推出RIA Foundation(个人猜测,不代表微软官方观点)。从技术角度看,Silverlight选择JavaScript作为脚本引擎自然有它的道理,一方面是因为减少重复开发,没有必要像Adobe的Flash那样再做一个ActionScript,劳命伤财~~另一方面是因为它能很好地与现有的AJAX及低端JavaScript应用整合,这是一个很明智的选择,如果你要把应用程序移植到Flash上,还是有相当的ActionScript要重写(虽然Flash也支持JavaScript交互),但是如果移植到Silverlight上完全不需要这么麻烦,Silverlight能与以前的程序形成互补,这就是差别。
 
posted @ 2008-12-16 14:22  贤  阅读(231)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3