Web Form 的角度… •MVC 應用程式沒有控制項。 • ASP.NET Web Form 有一堆控制項。 • 必須聽命於控制項。 • MVC 的職責分明。 • ASP.NET Web Form 的職責混合 (Page_Load Only…) • 要付出很多的心血才能職責分明。 • MVC 不好學。 • 其實是因為積習難改。
7.
什麼是 ASP.NET MVC? •以 ASP.NET 技術實作的 MVC Pattern。 • 2007 年底開始研發,2009 年才釋出首版。 • 最新版為 5.0。 • 職責分明 • Model, View, Controller,之間互不相依。 • 比 Web Form 更高的彈性。 • 相容於現有的 ASP.NET 基本功能。 • 可客製化程度更高。
8.
為什麼要用 ASP.NET MVC? •習慣取代配置 (Convention over Configuration)。 • 依規則配置程式即可。 • 輕量化: • 拋棄肥大的 ViewState。 • 套版時比 Web Form 更快更輕鬆。 • 強型別的支援 (coding by Intellisense)。 • 物件導向的強化: • 職責分明。 • 更具彈性。 • 可測試。
One ASP.NET • 未來只會有一個ASP.NET Core Service • 不論是 Web Form, MVC, Web API, SPA 等都以同一個基 礎發展。 • 所有 ASP.NET 內的核心功能,Web Form, MVC, Web API, SPA 等都支援,不分類型。 • Visual Studio 內的範本更乾淨。 • 開發人員可基於 ASP.NET Core Service 開發新服務類型。
29.
OWIN (Open WebInterface for .NET) • One ASP.NET 的基石。 • 中間層軟體的規格 (Middleware)。 • 定義向上 (framework) 的介面。 • 定義向下 (host) 的功能。 • 微軟的 OWIN 實作:Katana Project。 • Web API 2 和 ASP.NET Identity 的基礎之一。 • 可支援 IIS hosting 或 Self-hosting 能力。 • NuGet-enabled。
30.
MVC 5 Scaffolding •翻譯成 “支架”。 • 所有 ASP.NET MVC 該有的元件都能在此找到。 • 簡化新增 Controller 和 View 的流程。 • 支援 Model scaffolding,自動產生相應欄位。 • 在 Web Form 應用程式中加入 MVC 功能。 • 最小相依。 • 完全相依。
Web API 2 •Web API 是類似 MVC 架構的 RESTful API 實作應用。 • 一樣有 Controller,但繼承自 ApiController。 • 一樣使用 ASP.NET Routing。 • 需要加入 Web API Package (NuGet)。 • 支援更豐富的 HTTP 訊息處理能力。 • Web API 2 支援了… • 屬性路由 (attribute routing)。 • CORS 的支援。 • 更多… (可參考 What’s New in Visual Studio 2013)。
35.
demo • 基本的 WebAPI • Web API Attribute Routing • Web API CORS
總結 • ASP.NET MVC是未來中大型應用程式的主流 • 不會也沒必要取代 Web Form。 • 但它的彈性比 Web Form 強太多了。 • MVC 5, Web API 2 等讓實作 MVC / Web API 的應 用程式有了更多的選擇。 • ASP.NET Identity 提供了全新的會員管理架構,並支 援多種驗證方法。
40.
References • ASP.NET MVC:http://asp.net/mvc • ASP.NET Web API: http://asp.net/web-api • What’s new in Visual Studio 2013: http://www.asp.net/visualstudio/overview/2013/release-notes • MSDN 台灣部落格上有許多的精采文章。 • twMVC: http://mvc.tw
41.
學習 MVC,你可以選擇… • 由6 位 MVP 合作執筆。 • 其中三位是 twMVC 社群 創始人。 • 台灣唯一有介紹 Web API 且內容超過 200 頁 的中文書。 • 台灣最暢銷的 ASP.NET MVC 中文書。