
- ASP.NET MVC 教程
- ASP.NET MVC - 首頁
- ASP.NET MVC - 概述
- ASP.NET MVC - 模式
- ASP.NET MVC - 環境設定
- ASP.NET MVC - 入門
- ASP.NET MVC - 生命週期
- ASP.NET MVC - 路由
- ASP.NET MVC - 控制器
- ASP.NET MVC - 操作
- ASP.NET MVC - 過濾器
- ASP.NET MVC - 選擇器
- ASP.NET MVC - 檢視
- ASP.NET MVC - 資料模型
- ASP.NET MVC - 輔助方法
- ASP.NET MVC - 模型繫結
- ASP.NET MVC - 資料庫
- ASP.NET MVC - 驗證
- ASP.NET MVC - 安全性
- ASP.NET MVC - 快取
- ASP.NET MVC - Razor
- ASP.NET MVC - 資料註釋
- Nuget 包管理
- ASP.NET MVC - Web API
- ASP.NET MVC - 腳手架
- ASP.NET MVC - Bootstrap
- ASP.NET MVC - 單元測試
- ASP.NET MVC - 部署
- ASP.NET MVC - 自託管
- ASP.NET MVC 有用資源
- ASP.NET MVC - 快速指南
- ASP.NET MVC - 有用資源
- ASP.NET MVC - 討論
ASP.NET MVC - 概述
ASP.NET MVC 基本上是微軟的一個 Web 開發框架,它結合了 MVC(模型-檢視-控制器)架構的功能、敏捷開發的最新理念和技術,以及現有 ASP.NET 平臺的最佳部分。
ASP.NET MVC 並不是從零開始構建的。它是傳統 ASP.NET Web 窗體的完整替代方案。它構建在 ASP.NET 之上,因此開發人員在構建 MVC 應用程式時可以享受幾乎所有 ASP.NET 功能。

歷史
ASP.NET 1.0 於 2002 年 1 月 5 日作為 .Net Framework 版本 1.0 的一部分發布。當時,很容易將 ASP.NET 和 Web 窗體視為一回事。然而,ASP.NET 一直支援兩層抽象 -
System.Web.UI - Web 窗體層,包括伺服器控制元件、ViewState 等。
System.Web - 它提供基本的 Web 堆疊,包括模組、處理程式、HTTP 堆疊等。
到 2007 年 ASP.NET MVC 釋出時,MVC 模式已成為構建 Web 框架最流行的方式之一。
2009 年 4 月,ASP.NET MVC 原始碼在 Microsoft Public License (MS-PL) 下發布。“ASP.NET MVC 框架是一個輕量級、高度可測試的表示框架,它與現有的 ASP.NET 功能整合在一起。
其中一些整合功能包括母版頁和基於成員身份的身份驗證。MVC 框架定義在 System.Web.Mvc 程式集中。
2012 年 3 月,微軟在其 Web 堆疊(包括 ASP.NET MVC、Razor 和 Web API)的一部分發布了一個開源許可證(Apache License 2.0)。ASP.NET Web 窗體未包含在此計劃中。
為什麼選擇 ASP.NET MVC?
微軟決定建立他們自己的 MVC 框架來構建 Web 應用程式。MVC 框架只是構建在 ASP.NET 之上。當您使用 ASP.NET MVC 構建 Web 應用程式時,不會有任何狀態的錯覺,不會有諸如頁面載入和頁面生命週期之類的東西,等等。
ASP.NET MVC 的另一個設計目標是在框架的所有方面都具有可擴充套件性。因此,當我們談論檢視時,檢視必須由特定型別的檢視引擎呈現。預設檢視引擎仍然是可以獲取 ASPX 檔案的東西。但是,如果您不喜歡使用 ASPX 檔案,您可以使用其他東西並插入您自己的檢視引擎。
MVC 框架內部有一個元件將例項化您的控制器。您可能不喜歡 MVC 框架例項化控制器的方式,您可能希望自己處理該工作。因此,在 MVC 中有很多地方可以注入您自己的自定義邏輯來處理任務。
使用模型檢視控制器設計模式的整個想法是,您保持關注點的分離。您的控制器不再受與 ASP.NET 執行時或與 ASPX 頁面的很多關聯的約束,這很難測試。您現在只有一個帶有常規方法的類,您可以在單元測試中呼叫它以瞭解該控制器是否將按預期工作。
ASP.NET MVC 的優勢
以下是使用 ASP.NET MVC 的優勢 -
透過將應用程式劃分為模型、檢視和控制器,使管理複雜性變得更容易。
能夠完全控制呈現的 HTML 並提供清晰的關注點分離。
直接控制 HTML 也意味著更好地訪問以實施符合不斷發展的 Web 標準。
促進為現有應用程式新增更多互動性和響應能力。
為測試驅動開發 (TDD) 提供更好的支援。
非常適合由大型開發人員團隊支援的 Web 應用程式,以及需要高度控制應用程式行為的 Web 設計師。