散分拉~~~~~顺便问一下大家在.net里面都用什么样的ajax框架~~~
如题,大家有什么好点的框架和相关的学习资料给我提供一点.小弟万分感谢
------解决方案--------------------直接就javascript
------解决方案--------------------asp.net ajax 1.0
------解决方案--------------------ajaxpro
------解决方案--------------------.net框架下的ajax
Ajax的崛起令微软感到有些尴尬,因为Ajax中的一些关键技术其实是微软在1997年发明的,可是该公司后来把它们搁置了。长期以来,微软一直几乎垄断整个桌面软件市场,但他对互联网软件却重视不够,以致在微软自己的asp.net沃土上培植出了形形色色ajax框架结构。他们中有微软自己的Atlas,Telerik公司的rad ajax,Michael Schwarz的ajax.net,还有最近国人开发的nbear等等。一时间群雄争斗,难分高下。但笔者认为随着微软对ajax的逐步重视,凭借其雄厚的财力,人力,以及他在浏览器方面独有的优势,在不久的将来将充分显示出他的霸气。
第一部分:基于asp.net的各种ajax框架
1. Atlas。这是微软大哥的产品。与生俱来的,它与asp.net有极好的融合性。它的目标就是整和客户端脚本和ASP.NET服务器端,全面支持ajax。它是一个完整的解决方案,所以最大的弱点是不能很容易地被老的Ajax架构的应用使用。他的早期版本,给我的印象就是:控件繁多,使用方便,但不够灵活,多个控件整合在一起会有或多或少的问题。
Shanku Niyogi和Nikhil Kothari在PDC 2005上曾展示了下面这张Atlas的架构图:
Atlas的整体架构分为客户端和服务器端两部分。客户端的框架和服务包括:封装浏览器之间差异的浏览器兼容层、包括一个javascript整套类体系的脚本内核、一个较为完整的基类库、一套组件及相应的组件模型和UI框架。服务器端框架包括:网络服务桥、应用服务桥、一个以ScriptManager为基础的服务器控件框架等等。Atlas力争使人们编写ajax应用程序与编写asp.net Web Form应用程序类似。在服务器端将atlas的声明脚本发送给客户端,然后页面在atlas客户端框架下运行,使用atlas服务代理,客户端直接连接Web Service或Windows Communication Foundation (WCF)服务,给用户带来更丰富的客户端体验。
Atlas架构大大减少了开发者所需的代码量,进而提高了开发效率,因为服务器端控件已经为你生成了大量的代码。这种架构将页面中的内容、样式、行为和代码清晰地分开。客户端直接调用Web服务或WCF服务,这样就避免了使用中介层对通信效率的影响,同时也避免了增加中介层对应用程序设计、实现和部署中带来的复杂性。但也就因为他过分的依赖这些并不完全成熟和可扩展的服务器端控件,使得其灵活性大大减弱。微软一直把我们当成傻瓜,竭尽所能的为我们做所有工作。显然,这次他又失算了。虽然atlas嚷嚷的轰轰烈烈,但人们多半是把他当玩具拿来玩玩而已,还没有多少人敢用他来做真正应用的东西。相反,由Michael Schwarz自己开发的ajax.net却悄无声息的广为流传着,并且屡屡被人拿来做一两个小东西。原因很简单:ajax.net可以更好的发挥我们的能力,而atlas却只能更好的发挥微软的能力。
当然,上面说的是微软的早期版本。Atlas一直在进步,也越来越让我们喜欢了。今年9月份,Scott发布的Atlas命名和开发计划的文章,又给我们带来了两个好消息:
------解决方案--------------------一.Atlas名称大变脸:
 客户端 Atlas Javascript Library 被命名为 Microsoft AJAX Library,它可以在任何浏览器工作并且支持任何Web 服务器。
 Atlas 服务器端功能被命名为 ASP.NET 2.0 AJAX Extensions,同时原来的 Atlas 控件标识 会被更改为 ,这些控件会集成到 ASP.NET 下一个版本。
 目前开源的 Atlas Control Toolkit 项目被命名为 ASP.NET AJAX Control Toolkit。
二.微软将在今年年底发布Atlas 1.0 Release版本,在这之前会先发布Beta版本,根据用户的反馈意见决定最终的发布日期。
Atlas要有大动作了。客户端和服务器端的划分更加明确,这样我们将有可能更好的继承扩展他们。而名称的改变意味着微软ajax与asp.net的进一步融合。Atlas的明天值得期待。
2. ajax.net。由Michael Schwarz开发的一个库,实现从Javascript到服务器端.NET的存取。他把Javascript中的客户端调用传递到.NET方法,并返回到Javascript回调。他用属性标记方法,能缓存结果,具有完整的类支持,使用HtmlControls来进行输入和返回值,返回的数据类型可以是数据表,数据集,数据视图,数组和集合。
ajax.net依靠服务器作为中介来分发和处理请求。他的.net封装类依赖于客户端的请求对象,使用xmlHttpRequest对象,但将其封装,隐藏xmlHttpRequest的实现。其封装类是通过在.net的方法上增加AJAX属性标记来实现的,一旦被标记,AJAX创建客户端的javascript函数(这类似于客户端编写的javascript函数),并使用xmlhttprequest创建服务器代理,这个代理把客户端函数映射到服务器处理函数。
Ajax.net非常适合个人用户和小规模开发使用,服务器端只需要加上个attribute就可以用javascript异步调用这个方法了,非常灵活,且容易上手。本人非常喜欢这个框架,他可以很容易的和其他ajax框架融合起来,一起使用。但由于他毕竟是个人产品,所以没有提供出一套完整的ajax解决方案。
3.MagicAjax.Net。和ajax.net等相比,magicajax的方便和易用十分地引人注目。如果是基于ASP.NET 提供的控件和开发,那么MagicAjax.NET 是非常有效的,他很好的解决了Session和跨页面状态的问题。而且客户端的操作和工作基本可以忽略。
ajax.net框架参考了prototype.js这个纯脚本ajax框架,如果你注册了一个类型到ajax.net里,那么在输出到客户端的脚本里就会有ajax.net为你生成的javascript对象,开发人员就可以像调用服务端对象一样使用他,但如果需要显示什么东西的话,比如填充某个下拉框就得自己动手,操作dhtml。而magicajax则是另外一种思路:创造了一个ajaxpanel,只要把你要执行服务端事件的控件放到ajaxpanel里,magicajax就在后台将页面要提交的数据提交回去,交给IIS,再传递给注册在配置文件中的ajaxmodule,他会负责返回被其框架解析的脚本语句,来反映出服务器操作造成的变化,客户端eval一下就可以了。而如何得到实现这种变化的脚本语句就成为代码主要完成的工作。
在ajax.net框架下,我们需要注册一个公布给客户端的类,然后在客户端脚本里访问,然后再根据从服务端返回的数据自己控制客户端界面的改变,需要的代码量比较大。而在magicajax的框架下,我们甚至不需要写一行代码就实现了无刷新的网页。
MagicAjax.NET发展了asp.net的 __doPostBack提交整个页面的机制,他使用AJAXCbo.DoPostCallBack 做局部的提交,而每个AjaxPanel 中的内容则对应客户端即时的HTML内容。HttpModel 只是为了解决Session和交叉提交问题,他进行客户端javascript的整理和注入,接收客户端的请求,在Application_EndRequest中返回结果。正因为如此,有人称他是ASP.NE