随笔-50  评论-527  文章-5  trackbacks-4
前言:
MS Ajax我在以前一个项目中使用过,感觉太笨重了,速度比较慢,而且出了问题,很难控制。所以我一直想用一个可控制的替代框架。
客户端JS框架肯定首推JQuery,优雅简洁的代码,完美的支持表现和逻辑分离,让人一见倾心。
服务器端框架我找了一些,国内的大部分还都是零散的代码或处于萌芽状态,大多数实现JSON的C#类就没下文了,对安全性都没有整合的建议。
直到今天,我发现了DynAjax,开源的,完全可控的Ajax服务器端框架。原项目作者是法国人(Mr Benoît BEGUIN),现翻译作者的介绍如下。


概述 

DynAjax是一个Javascript / Ajax / ASP.Net / C# 结合的Ajax框架,它能帮助我们很容易地直接通过Javascript动态调用服务器端的C#方法(就像Java世界的DWR)。对象序列化基于JSON,支持混合对象转换。

下载最新正式版 (v1.04)

DynAjax v1.04

DynAjax是什么 ?

DynAjax 是以C# .Net / ASP .Net为服务器端、以Prototype为客户端的Ajax框架(译者按:发现DynAjax只有Prototype版本的,稍后一些日子我会发布改写的JQuery版的DynAjax),它支持从客户端通过Javascript直接访问服务器端C#方法.

DynAjax 为谁准备的 ?

以下 C# / ASP .Net 开发者:如果想要添加直接有效、方便的Ajax到你的网站 或者 专业级的项目开发 (我用它来开发自己公司的专业级项目).

DynAjax到底能做些什么,怎么做的?

假设你正在开发一个专业网站程序,你需要保存一些文本数据型的用户信息到数据库中,同时又不发送Html表单,也不刷新页面。显然,你需要使用Ajax。
你打算使用原始的XmlHttpRequest (Ajax) 请求数据和检测返回的数据等等,发送数据并确认正确被保存?这种原始的方法让人感到繁琐。

通过使用DynAjax,你可以很容易地保存这些文本数据,而代价只是写写简单的JavaScript (假设有一个类"MyClass",里面有个公共方法叫“saveText”,方法返回string类型的“ok”,你可以这样调用) :
 
var response = MyClass.saveText(myText);
if (response == "ok") {
--- code here ---
}
很简单的使用方法哦,不是吗?
浏览 示例页 查看更多的例子和源码.

DynAjax是同步还是异步的?

取决你的使用:如果你想同步调用,使用这种语法形式:
var response = MyClass.myMethod(myArgs);
if (response >= 2) {
--- code here ---
}
如果你想异步调用,可以使用下面这种语法形式:
MyClass.myMethod(myArgs, function(response) {
if (response >= 2) {
--- code here ---
}
});
DynAjax 推荐采用这种异步方式。

DynAjax支持哪些数据类型可以被客户端Javascript接收?

几乎所有数据类型都能从服务器端返回到客户端。事实上,数据被转换为JSON格式 (JSON是Javascript与其他语言比如C#.Net,Java等交换数据的特殊格式,有点类似xml的功能。)
这种格式支持以下数据类型:
  • Strings 字符串
  • Numbers (int, decimal...) 数字
  • Booleans 布尔
  • Arrays 数组
  • HashTables 哈希表
  • Complex objects复合对象 (由成员变量, Arrays, HashTables, Arrays 或者其他复合对象 等等 构成)
  • "null" value

如你所见, 几乎所有(数据类型)都是可能的:你可以做到的。打个比方 , 如果你想开发一个eBay类型的网站,在搜索页面,访问一个返回商品【实例】列表(List)的方法,并显示列表 - 你只需要通过Javascript重复循环访问返回的JSON格式性质列表 (List),进而访问每个商品【实例】,然后访问【实例】属性。这就如你在C#里面做的一样,酷!

如果你想对JSON这个格式有更多了解,请访问 Json description site(英文)。

安全性怎样?

DynAjax 针对所有可远程访问的Method(方法),皆提供了安全验证机制.
事实上,每个方法必须被定义到XML格式的配置文件中,你可以设定这个方法是-需要-还是-不需要-访问验证。.
所以,即便黑客也不能在未验证通过的情况下访问 需要 验证的方法。

安装/设置DynAjax到我的Web应用程序中会麻烦吗?

不麻烦, DynAjax基于8 个文件 :
  • DynAjaxHandler.aspxDynAjaxHandler.cs - Ajax处理器,接受和分派所有的DynAjax调用
  • dynAjaxScript.aspx dynAjaxScript.cs - 动态生成客户端JavaScript,属于DynAjax的重要部分 (尽管这个文件扩展名是aspx,但它作为js调用)
  • prototype.js - prototype框架
  • Newtonsoft.Json.dll - 一个.net的Json程序集
  • log4net.dll - 日志库
  • dynAjaxConfig.xml - DynAjax 的配置文档(XML格式的)

这8 个文件必须直接拷贝到Web应用程序目录中, 只有dynAjaxConfig.xml可以根据需要进行配置修改,其他文件非专业不要修改.
相当容易,对吧 ?
您可以看看第一本DynAjax教程 DynAjax 教程 01(英文),一步一步地进行DynAjax的安装/配置。

我怎样在xml配置文件中定义方法、类等等?

你可以访问维基百科书: configuration 有详细解释.(译者:作者忘了做链接,但配置确实不难,依样葫芦画瓢即可

哪些人会对这个框架提供开发支持?

我 (Mr Benoît BEGUIN) 和我的公司 Odesys.请随意联系我们 admin@dynajax.org , 报告Bugs和新的功能特性建议。

--------------------本文为翻译性原创,转载请注明出处,作者:Kai.Ma 博客:http://kaima.cnblogs.com-----------
posted on 2008-03-15 16:19 Kai.Ma 阅读(2442) 评论(12)  编辑 收藏 所属分类: ASP.NET & AJAX

评论:
#1楼  2008-03-15 16:46 | xmlcss [未注册用户]
没感觉和AjaxPro比有什么优势。
  回复  引用  查看    
#2楼  2008-03-15 16:46 | GoKu'S Blog      
跟java dwr类似吗?
  回复  引用  查看    
#3楼 [楼主] 2008-03-15 16:54 | 马哥      
@xmlcss
对于学习还是挺有用的。AjaxPro我也用过,也越来越大了。
  回复  引用  查看    
#4楼 [楼主] 2008-03-15 16:55 | 马哥      
原作者是这样认为的。
--引用--------------------------------------------------
GoKu'S Blog: 跟java dwr类似吗?
--------------------------------------------------------

  回复  引用  查看    
#5楼  2008-03-15 17:44 | Q.Lee.lulu      
译者按:发现DynAjax只有Prototype版本的,稍后一些日子我会发布改写的JQuery版的DynAjax

支持这个!!
  回复  引用  查看    
#6楼  2008-03-16 00:38 | somesongs      
支持下jQuery版本,呵呵。
  回复  引用  查看    
#7楼  2008-03-16 15:24 | asdio [未注册用户]
收藏

支持楼主修改jquery版本的
  回复  引用  查看    
#8楼  2008-03-17 10:40 | 力大无比 [未注册用户]
楼主强悍
  回复  引用  查看    
#9楼  2008-03-17 11:57 | 不知如何爱你      
收藏!
  回复  引用  查看    
#10楼  2008-03-17 12:04 | 神游 [未注册用户]
支持一楼的观点,还不如直接用AjaxPro呢,功能比DyAjax强大,支持服务器与客户端的JASON交流,及其好用。。。。
  回复  引用  查看    
#11楼 [楼主] 2008-03-17 16:03 | Kai.Ma      
@神游
DynAjax是轻量级,我喜欢他的不多,似乎也不少。喜欢自己研究的朋友,DynAjax是个好的学习框架。

Ajaxpro有个问题就是必须在每个使用Ajax效果的Aspx的PageLoad里面添加
--------
AjaxPro.Utility.RegisterTypeForAjax(typeof(...))
--------
这个很繁琐。而DynAjax统一集中到一个XML文件中配置,集中管理,我比较喜欢DynAjax这种。
  回复  引用  查看    

标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-03-17 20:34 编辑过
 
历史上的今天:

另存  打印
最新IT新闻:
· 《福布斯》:暴雪的新一波完美风暴已经到来
· 中国互联网公司在哪儿
· 微软:Silverlight内容也可被搜索引擎检索
· 内置AI技术 三星聪明微波炉还能上网
· 盛大设文学公司 原新浪博客负责人侯小强任CEO