轻量级的Ajax解决方案——DynAjax:直接在客户端调用C#类的方法
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                轻量级的Ajax解决方案——DynAjax:直接在客户端调用C#类的方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                
                            
                            
                            前言:
MS Ajax我在以前一個項目中使用過,感覺太笨重了,速度比較慢,而且出了問題,很難控制。所以我一直想用一個可控制的替代框架。
客戶端JS框架肯定首推JQuery,優雅簡潔的代碼,完美的支持表現和邏輯分離,讓人一見傾心。
服務器端框架我找了一些,國內的大部分還都是零散的代碼或處于萌芽狀態,大多數實現JSON的C#類就沒下文了,對安全性都沒有整合的建議。
直到今天,我發現了DynAjax,開源的,完全可控的Ajax服務器端框架。原項目作者是法國人(Mr Beno?t BEGUIN),現翻譯作者的介紹如下。?
你打算使用原始的XmlHttpRequest (Ajax) 請求數據和檢測返回的數據等等,發送數據并確認正確被保存?這種原始的方法讓人感到繁瑣。
通過使用DynAjax,你可以很容易地保存這些文本數據,而代價只是寫寫簡單的JavaScript (假設有一個類"MyClass",里面有個公共方法叫“saveText”,方法返回string類型的“ok”,你可以這樣調用) :
? var?response?=?MyClass.saveText(myText);
if?(response?==?"ok")?{
---?code?here?---
}
很簡單的使用方法哦,不是嗎?
瀏覽?示例頁?查看更多的例子和源碼.
if?(response?>=?2)?{
---?code?here?---
}
如果你想異步調用,可以使用下面這種語法形式:
MyClass.myMethod(myArgs,?function(response)?{
if?(response?>=?2)?{
---?code?here?---
}
});
DynAjax 推薦采用這種異步方式。
這種格式支持以下數據類型:
如你所見, 幾乎所有(數據類型)都是可能的:你可以做到的。打個比方 , 如果你想開發一個eBay類型的網站,在搜索頁面,訪問一個返回商品【實例】列表(List)的方法,并顯示列表 - 你只需要通過Javascript重復循環訪問返回的JSON格式性質列表 (List),進而訪問每個商品【實例】,然后訪問【實例】屬性。這就如你在C#里面做的一樣,酷!
如果你想對JSON這個格式有更多了解,請訪問?Json description site(英文)。
事實上,每個方法必須被定義到XML格式的配置文件中,你可以設定這個方法是-需要-還是-不需要-訪問驗證。.
所以,即便黑客也不能在未驗證通過的情況下訪問 需要 驗證的方法。
這8 個文件必須直接拷貝到Web應用程序目錄中, 只有dynAjaxConfig.xml可以根據需要進行配置修改,其他文件非專業不要修改.
相當容易,對吧??
您可以看看第一本DynAjax教程?DynAjax?教程 01(英文),一步一步地進行DynAjax的安裝/配置。
                        
                        
                        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.04DynAjax是什么 ?
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.aspx?和DynAjaxHandler.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----------
本文轉自Kai的世界,道法自然博客園博客,原文鏈接:http://www.cnblogs.com/kaima/archive/2008/03/15/1104541.html,如需轉載請自行聯系原作者。
總結
以上是生活随笔為你收集整理的轻量级的Ajax解决方案——DynAjax:直接在客户端调用C#类的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 【图片识别】java 图片文字识别 oc
- 下一篇: VMware、Pivotal和Googl
