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

來源:互聯網
上載者:User

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操作的代碼。

查看英文原文:http://www.infoq.com/news/2012/02/SPA

InfoQ中文原文:http://www.infoq.com/cn/news/2012/02/SPA

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.