ASP.NET MVC 4中的單頁面應用程序

openkk 12年前發布 | 16K 次閱讀 ASP.NET

ASP.NET MVC 4 beta 中包含了一個實驗項目,用作開發“單頁面應用程序(single page applications)”。該項目也稱為 ASP.NET SPA,其項目類型基于一組開源庫以及 WPF、Silverlight 上流行的 MVVM 模式。

瀏覽器端

位于瀏覽器端技術組底部的是著名的 jQuery 庫,與之一起的還有 Unobtrusive Ajax、jQuery UI 和 jQuery Validation 插件。

接下來的技術是 Upshot。它是構建于 jQuery 和 Knockout 之上的數據訪問和緩存庫。在示例代碼中,你會看到有一個與 knockout 兼容的視圖模型被自動生成。它的內部是基于 Upshot 的函數,用作處理與服務層的通信。另外它還包含用于驅動 UI 的代碼。(SPA 的視圖模型類似 XAML 技術,如此看來,這塊地方很快會充斥各式各樣的代碼。)

MVVM 風格的數據綁定使用 Knockout 框架完成。與基于 XAML 的技術類似,Knockout 提供了聲明式的數據綁定,它在當數據和視圖模型基于暴露屬性更改事件的 observables 時,可以完美的進行工作。此外,你不需要顯式地引發事件,即使對計算屬性也是如此。綁定過程與設置控件的 DataContext 屬性不同,你需要調用 ko.applyBindings 完成。然而這并不妨礙子控件擁有不同的數據上下文,面對這種情況只需簡單地為它們使用“with”或“foreach”綁定即可。其中“with”綁定類似于將控件的 DataContext 綁定到視圖模型中的屬性,而后者“foreach”本質上創建了一個項目集合控件。

位于技術組頂端的是 nav.js,它是微軟新推出的一個庫。

服務器端

服務端的應用程序框架由普通的 MVC 頁面表示,而應用程序內的各種視圖由分離頁面(partial pages)表示。在示例中,Knockout 數據綁定用作動態地顯示和隱藏這些頁面。

大部分服務端數據訪問都由抽象類 DataController 處理。DataController 是 ASP.NET Web API 中 ApiController 的子類,后者提供了客戶端向服務器提交 ChangeSetEntry 的基本方法。喜歡使用存儲過程或者第三方 ORM 的開發人員,可以直接繼承該類;而熟悉 Entity Framework 的開發人員可以使用 DbDataController。Visual Studio 的腳手架支持(scaffolding support)可以為后者自動生成附帶基本 CRUD 操作的代碼。

查看英文原文:Single Page Applications in ASP.NET MVC 4

(作者: Jonathan Allen ,譯者:曹如進)

 本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!