共用方式為


Breeze/Knockout 範本

作者 :Mads Kristensen

Ward Bell 撰寫了輕氣/震動 MVC 範本

下載輕氣/Msout MVC 範本

您已經聽過「單頁應用程式」 (SPA) ,並想知道它是什麼。 雖然您可以閱讀它,但您會自行體驗。 但誰有時間下載範例? 如果您已取得 Visual Studio,則會在 60 秒內啟動並執行範例 SPA,並使用 ASP.NET MVC 4「輕量/震動單頁應用程式」範本執行。

什麼是輕氣/納克斯 SPA 範本?

大部分的專案範本都會產生應用程式基本架構。 您可以藉由新增程式碼,最終傳遞可運作的應用程式,來將這些骨氣放在這些骨頭上。 輕氣/震動 SPA 範本不同。 它會產生可供您研究的範例應用程式。 它示範 SPA 應用程式設計和許多建置 SPA 的技術。

ASP.NET 和 Web 工具 2012.2 Update 中所含的一個 ASP.NET 和 Web 工具JS SPA 範本是一種變化。 「輕量 SPA」範本會產生具有相同使用者體驗的應用程式,但它有不同的實作,使用「輕量」進行資料管理。

在將服務要求與原始 jQuery AJAX 搭配使用時,此範本適用于簡單的應用程式。 但更複雜的應用程式具有更嚴苛的資料管理需求。 例如,大部分的應用程式:

  • 在延伸使用者會話期間查詢並重新查詢伺服器。
  • 新增查詢篩選、排序和分頁。
  • 跨多個畫面共用相同的資料。
  • 累積對許多物件的變更,然後將其儲存為單一交易。
  • 驗證用戶端上的變更,讓使用者可以在認可資料庫變更之前更正錯誤。

一開始JS 程式庫會為您處理這些工作,讓您能夠開發最重要的應用程式邏輯和使用者體驗。

輕量 是一個開放原始碼程式庫,可在 JavaScript 和 HTML 中建置豐富的資料應用程式,這是過去以獨立傳統型應用程式的形式傳遞的應用程式類型。

「輕量/先行」範本可協助您採取第一個重要步驟,以取得更健全的資料管理基礎結構。 它會產生一個範例 Todo 應用程式,其向外與一般專案JS SPA 範本相同。 在內部,它會以「輕量」取代 AJAX 資料層,因此您可以並存比較這兩種方法。 當然,它幾乎觸碰了一個輕觸應用程式的可能性。 但是,您會看到「簡單」的運作方式,以及進行該轉換所需的程度。

讓我們開始吧。

建立一個輕氣/先行檢視範本專案

按一下上述的 [下載] 按鈕來下載並安裝範本。 範本會封裝為 Visual Studio 延伸模組 (VSIX) 檔案。 您可能需要重新開機 Visual Studio。

在 [ 範本] 窗格中,選取 [ 已安裝的範本 ],然後展開 [Visual C# ] 節點。 在 [Visual C#] 底下,選取 [Web]。 在專案範本清單中,選取 [ASP.NET MVC 4 Web 應用程式]。 為專案命名,然後按一下 [確定]。

在 [ 新增專案 精靈] 中,選取 [ 輕氣] [Spa]。

按 Ctrl-F5 以建置並執行應用程式而不進行偵錯,或按 F5 以偵錯執行。

應用程式第一次執行時,會顯示登入畫面。 按一下 [註冊] 連結,並將新的頁面滑入檢視,您可以在其中輸入使用者名稱和密碼。 (登入和註冊頁面是使用 ASP.NET MVC.) 建立的。當您提交註冊表單時,伺服器會產生 TodoList,其中包含帳戶的兩個專案。 然後,它會在黃色記事上呈現給您。

現在您位於 SPA 的陸地。 您在操作 Todos 時所看到的一切和體驗,都是在用戶端上轉譯及管理,並透過「氣氣」和「輕氣」的協助進行管理。 以使用者身分探索應用程式... 但有開發人員的眼球。 在瀏覽器中使用開發人員工具來擷取網路流量。 (在 Internet Explorer 中:按 F12,選取 [ 網路 ] 索引標籤,然後按一下 [ 開始擷取]。) 立即嘗試下列專案:

  • 新增待辦事項專案。
  • 按一下標籤並編輯待辦事項專案標題
  • 核取核取方塊以標記專案完成。 請注意,文字方塊已停用,因此標題無法再編輯。
  • 按一下標籤右邊的 'x'。 專案會消失,並從資料庫刪除。
  • 挑選另一個專案並清除其標題。 您將會收到需要標題的驗證錯誤。 在短暫暫停之後,會還原上一個標題。
  • 輸入冗長的標題。 您會收到不同的驗證錯誤,表示標題太長。
  • 按一下 [新增待辦事項清單] 按鈕。 新的清單會出現在上一個清單的左邊。
  • 播放 TodoList 標題,觸發其必要和長度驗證。
  • 按一下標題文字方塊中,清除錯誤訊息。
  • 按一下右上角圓形中的 「x」,即可刪除 TodoList 及其待辦事項。

驗證邏輯會以用戶端方式執行。 伺服器模型類別上的驗證屬性會傳播至用戶端,並在用戶端連絡伺服器之前自動執行。

檢閱網路流量。 請注意,當「輕量」偵測到錯誤時,伺服器沒有呼叫。 每個有效的變更都會導致 POST 要求 「/api/Todo/SaveChanges」。 輕鬆組合變更,並以單一要求的形式將它們一起傳送至 Web API 控制器的 SaveChanges 方法。 這與將每個專案個別提出 PUT、POST 和 DELETE 要求的不同,與一樣。此範本會分別提出 PUT、POST 和 DELETE 要求。

查看內部

此應用程式具有用戶端和伺服器端。 用戶端堆疊是由一些 HTML 和應用程式 JavaScript 模組的組合所組成,) 「app」 資料夾中 (加上協力廠商 JavaScript 程式庫 () 。

如果您已經調查了一個[一開始][Sps SPA] 範本,這看起來應該很熟悉。 將焦點放在藍色方塊上。 UI 架構是 Model-View-ViewModel (MVVM) ,其中檢視的 HTML 小工具與檢視模型中支援的簡報程式碼完全分開。 在此案例中,資料系結系統 (一個) 協調檢視和檢視模型,讓每個系結系統都能執行其工作,而不需要瞭解其他專案。

模型會封裝待辦事項資料。 模型中的實體是由一個使用一個可觀察的屬性來建構,因此可以直接系結至檢視中的小工具。 檢視模型會要求資料內容取得並儲存模型實體。 資料內容會將大部分的工作委派給「輕量」。

伺服器端堆疊包含一些開發人員程式碼和三個主要 .NET 程式庫:Web API、Entity Framework 和 Breeze.NET。

基本架構與一樣,與一般專案範本相同。 不過,實作更簡單:已刪除 DTO,而且大部分的 Entity Framework 詳細資料都已委派給 Breeze.NET。

後續步驟

建議您探索程式碼,其引導您瞭解用戶端和伺服器堆疊在輕量網站上的廣泛討論。

您可以嘗試使用一般用戶端查詢;新增一些篩選和排序。 您可以新增更多模型屬性和更多實體,以更熟悉端對端 SPA 開發。 當您確信設計時,可以卸載待辦事項功能,並將其取代為您自己的功能。

您很快就會準備好進行下一個巨量步驟:新增用戶端畫面並在其中流覽。 您將讓此 SPA 範本留在後方,並轉向更完整的 SPA 堆疊,例如經常性 John Papa 的經常性存取區,這會將 Durandal 新增至[輕氣] 和 [震動混合]。