2010年10月9日 星期六

ASP.NET前後端溝通方法的簡單比較

 

溝通方法 前端 後端 備註
PostBack POST & PostBackOptions
Page.ClientScript.GetPostBackEventReference
Page.RegisterRequiresPostBack
繼承自IPostBackEventHandler需實做RaisePostBackEvent
繼承自IPostBackDataHandler需實做LoadPostData和RaisePostDataChangedEvent
註冊事件OnTextChanged
○:支援控制項開發,傳統做法,簡單有效
●:每次處理都會造成整頁回傳,畫面會閃動,造成視覺疲勞,眼睛不舒服。
CallBack Page.ClientScript.RegisterClientScriptBlock
Page.ClientScript.GetCallbackEventReference
Page.ClientScript.RegisterOnSubmitStatement
Page.ClientScript.RegisterHiddenField
JavaScript物件封裝
繼承自ICallbackEventHandler需實做GetCallbackResult與RaiseCallbackEvent
註冊事件OnClientCallBackResult
○:支援控制項開發,最能夠客製化的方法
●:要處理所有的細節,因此也最複雜,介面稍有變動,程式需要改很大
AJAX之PageMethod PageMethods物件操作
JavaScript物件封裝
[System.Web.Services.WebMethod()]
靜態方法
○:容易使用
●:在同一個頁面上使用,限用靜態方法,
Web Service(.asmx) (無) [System.Web.Services.WebMethod()]
[System.Web.Script.Services.ScriptService]
○:可跨平台,利用現有技術,程式較易撰寫
●:交易處理、安全性與效率不如WCF
泛型處理常式(.ashx) GET/POST 繼承自IHttpHandler
需實作ProcessRequest與IsReusable
○:可輸出各種MIME文件
●:只能輸出MIME文件
WebClient WebClient 類別操作與事件處理 (無) ○:可取得後端的各種資源(包含二進位資源)
●:非強型別,常透過反射或轉換成需要的物件
WCF – http polling WCFService.ServiceClient() [ServiceContract]
[OperationContract]
[DataContract]
○:目前最方便有效率提供前端資料的方法
●:只能傳輸文字
WCF – net.tcp     ○:可傳輸文字或二進位資料,大量分散式商業模式
●:?

沒有留言:

張貼留言