ASP.NET Core MVC
開發者 | Microsoft |
---|---|
当前版本 | 1.0.0(預定2016年6月下旬發行) |
预览版本 | 1.0.0-rc2(預定2016年5月中旬發行) |
编程语言 | .NET 程式語言,例如C#、VB.NET |
类型 | Web應用程式、MVC |
许可协议 | MIT License |
网站 | 文件庫、GitHub、入口 |
ASP.NET Core MVC 是 ASP.NET Core 內,提供給 Web 應用程式開發的框架,它可視為 ASP.NET MVC 的後繼版本,其主要功能均衍生自 ASP.NET MVC,但它除了基於 ASP.NET Core 外,也將 ASP.NET MVC 與類似平台進行了整合,例如負責 View 的 ASP.NET Web Pages 以及負責 RESTful API 的 ASP.NET Web API,都與 ASP.NET Core MVC 的核心合併,因此在 ASP.NET Core MVC 中將可同時並存 MVC 網頁以及 RESTful API。
相關組件
ASP.NET Core MVC 包含了下列組件,基於 .NET Core 的精神,只有需要用到的才需要加入參考 (於 project.json),因此開發者可以自由選擇,而不必把所有的組件都加進來。
組件 | 功能 |
---|---|
Microsoft.AspNetCore.Mvc | ASP.NET Core MVC 核心組件 |
Microsoft.AspNetCore.Mvc.Abstractions | ASP.NET Core MVC 功能的抽象層 |
Microsoft.AspNetCore.Mvc.ApiExplorer | ASP.NET Core MVC 的 API 文件支援 |
Microsoft.AspNetCore.Mvc.Core | ASP.NET Core MVC 核心組件 |
Microsoft.AspNetCore.Mvc.Cors | 提供 Web API 所需要的 CORS 能力 |
Microsoft.AspNetCore.Mvc.DataAnnotations | MVC 所需的資料標示 (Data Annotation) 功能 |
Microsoft.AspNetCore.Mvc.Formatters.Json | MVC/Web API 所需的 JSON 序列化器 |
Microsoft.AspNetCore.Mvc.Formatters.Xml | MVC/Web API 所需的 XML 序列化器 |
Microsoft.AspNetCore.Mvc.Localization | MVC 應用程式本地化支援 |
Microsoft.AspNetCore.Mvc.Razor | MVC Razor 的核心類別庫 (若要在 MVC 中使用 Razor 就必須參考此組件) |
Microsoft.AspNetCore.Mvc.Razor.Host | MVC Razor 的執行期引擎 |
Microsoft.AspNetCore.Mvc.TagHelpers | MVC Tag Helper 的核心類別庫 |
Microsoft.AspNetCore.Mvc.ViewFeatures | MVC View 功能的類別庫 |
Microsoft.AspNetCore.Mvc.WebApiCompatShim | Web API 相容套件 |
基礎建設
ASP.NET Core MVC 採用 ASP.NET Core 作為基礎,因此享有內建的相依注入能力 (Dependency Injection),ASP.NET Core MVC 本身也是 ASP.NET Core 的服務之一,因此必須要在 ASP.NET Core 的起始類別中註冊並使用 MVC,才可以享有 MVC 的功能。下列例子即為在一個 ASP.NET Core 的程式的起始類別 (通常被命名為 Startup) 中註冊並啟用 ASP.NET Core MVC 的程式碼[1]:
public void ConfigureServices(IServiceCollection services)
{
// 加入 ASP.NET Core MVC 服務
services.AddMvc();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
// ...
// 啟用 ASP.NET Core MVC
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
註冊 ASP.NET Core MVC 服務後,ASP.NET Core 會自動將 MVC 的執行引擎加入 ASP.NET Core 的管線式相依注入 (Pipeline-based Dependency Injection) 的服務清單內,以開始提供 MVC 的相關服務。
Controller
Model
View
參考