我們現在的.NET Core 1.0應用(ASP.NET Core 1.0應用或控制檯應用)有了新的被執行在不同框架上的可能性:①執行在.NET Core平臺上 ②執行在傳統的.NET Framework 4.5.x 上(對很多企業級應用來說仍然是一個至關重要的框架)。相對傳統的.NET Framework 4.5.x(體積大、臃腫但全面) ,.NET Core平臺棧和類庫變得更加小和輕量化了。
什麼是目標框架別名(Target Framework Monikers)
目標框架別名就是框架名稱(Framework)+版本(Version)的識別符號(ID),在你的.NET Core應用中可以指定的目標框架。
到目前為止,可以選擇使用的框架別名有如下這些:
- “netcoreapp10”針對.NET Core 1.0
- “net45”、“net451”、“net452”、“net46”、“net461” 針對傳統的.NET Framework版本
- “portable-net45+win8” 針對PCL(Portable Class Libraries)--可移植的類庫
- “dotnet5.6”、“dnxcore50”針對.NET Core預覽版(.NET Core RTM和.NET Core RC2以前的版本)
- “netstandard1.2”、 “netstandard1.5”等針對 .NET Standard Platform
.NET平臺標準(.NET Platform Standard)
先用一張圖直觀的看看,.NET平臺標準就是要把各自為政變為一統江湖。不管是開發傳統的基於.NET Framework的應用還是開發基於.NET Core的應用,其依賴的底層類庫都是一樣的。這樣就標準化了。
.NET Platform Standard別名"netstandard1.5"、"netstandard1.6"等的使用是有侷限性的。當我們開發ASP.NET Core應用或Console應用時我們一般指定要在其上進行構建和執行的框架(Framework)。.NET Platform Standard別名僅僅是當我們開發包/類庫時(也就是說我們是這些包/類庫的作者或擁有者)才會使用到來指定哪些框架支援各自的類庫。
通用的規則:
- app的開發者:指定我們正在寫的目標TFM,比如:netcoreapp1.0, uap10.0 , net452 , xamarinios 等;
- 包/類庫的 作者:指定最低版本的.NET Platform Standard,比如:netstandard1.0以便你的類庫可以向後相容。
看一個具體的project.json配置
一般情況下我們開發.NET Core的應用時只需使用別名為:netcoreapp1.0的框架即可。