fbpx
维基百科

.NET

.NET (3.1版以前稱作.NET Core)是微軟開發的第一個跨平台 (WindowsMac OSXLinux)的應用程式開發框架(Application Framework),未來也將會支援FreeBSDAlpine 平台。.Net Core也是微軟在一開始發展時就開源的軟體平台[4],它經常也會拿來和現有的開源 .NET 平台Mono比較。

.NET
開發者.NET基金会
首次发布2016年6月27日,​7年前​(2016-06-27
当前版本
  • 7.0.11 (2023年9月12日;短期支援版本)[1]
  • 8.0.0-rc.1 (2023年9月12日;最终测试版本)[2]
源代码库
  • github.com/dotnet/core
编程语言C++C♯
操作系统WindowsLinuxmacOS
类型软件框架
许可协议MIT许可证[3]
网站dotnet.microsoft.com

由於 .NET Core 的開發目標是跨平台的 .NET 平台,因此 .NET Core 會包含 .NET Framework 的類別庫,但與 .NET Framework 不同的是 .NET Core 採用套件化 (Packages) 的管理方式,應用程式只需要取得需要的組件即可,與 .NET Framework 大包式安裝的作法截然不同,同時各套件亦有獨立的版本線 (Version line),不再硬性要求應用程式跟隨主線版本。

.NET Core 專案的主要目標有 [5]

  1. 支援或可以移轉 (port) 到更多的作業系統平台與晶片架構 (也就是未來計畫會跨出 x86 平台)。
  2. 具有引人注目的效能與高可靠度。
  3. 開發人員能快速與直覺的獲取 .NET Core 開發環境。
  4. 在直覺與具生產力的情況下建造應用程式,使用文件,範例與 NuGet 元件。

历史 编辑

.NET Core 1.0 于 2016 年 6 月 27 日发布。

2020 年 11 月,微软发布了 .NET 5.0,统一了.NET的各个平台的碎片版本: .NET Framework 4.8, .NET Standard, .NET Core 3.1, Mono, Xamarin等。

2021 年 11 月,微软发布了 .NET 6.0 。

2022 年 11 月,微软发布了 .NET 7.0 。

版本 发布日期 一同发布的产品 最新补丁版本 补丁发布日期 终止支持[6]
舊版本,不再支援: .NET Core 1.0 2016-06-27[7] Visual Studio 2015 Update 3 1.0.16 2019年5月14日 2019年6月27日
舊版本,不再支援: .NET Core 1.1 2016-11-16[8] Visual Studio 2017 Version 15.0 1.1.13 2019年5月14日 2019年6月27日
舊版本,不再支援: .NET Core 2.0 2017-08-14[9] Visual Studio 2017 Version 15.3 2.0.9 2018年7月10日 2018年10月1日
舊版本,不再支援: .NET Core 2.1 2018-05-30[10] Visual Studio 2017 Version 15.7 2.1.30 (LTS) 2021年8月19日 2021年8月21日
舊版本,不再支援: .NET Core 2.2 2018-12-04[11] Visual Studio 2019 Version 16.0 2.2.8 2019年11月19日 2019年12月23日
舊版本,不再支援: .NET Core 3.0 2019-09-23[12] Visual Studio 2019 3.0.3 2020年2月18日 2020年3月3日
舊版本,不再支援: .NET Core 3.1 2019-12-03[13] Visual Studio 2019 3.1.32 (LTS) 2022年12月13日 2022年12月13日
舊版本,不再支援: .NET 5 2020-11-10[14] Visual Studio 2019 Version 16.8 5.0.17 2022年5月10日 2022年5月10日
舊版本,仍被支援: .NET 6 2021-11-08[15] Visual Studio 2022 Version 17.0 6.0.13 (LTS) 2023年1月10日 2024年11月12日
當前版本: .NET 7 2022-11-08[16] Visual Studio 2022 Version 17.4 7.0.2 2023年1月10日 2024年5月14日
未来版本: .NET 8 2023-11 (預計) 不適用 (預計LTS) 不適用 2026年11月 (預計)
格式:
舊版本
舊版本,仍被支援
当前版本
最新的预览版
未来版本

核心功能 编辑

.NET Core 是由許多專案所組成,除了基本的類別庫 (Core FX) 之外,也包含採用 RyuJIT 編譯的執行平台 Core CLR、編譯器平台 .NET Compiler Platform、採用 AOT 編譯技術運行最佳化的套件 Core RT (.NET Core Runtime),以及跨平台的 MSIL 編譯器 LLILC (LLVM-based MSIL Compiler) 等專案。

同時,微軟也發展了一個建置技術文件的平台 docfx [17],並運用於 .NET Core 的文件網站。

RyuJIT 编辑

RyuJIT 是微軟發展的新式即地編譯器 (Just-in-Time Compiler),用以取代現有的 .NET Framework 的 JIT 以及 JIT64 即地編譯器,依據微軟公佈的測試報告,RyuJIT 的效能較前一代的 JIT 提升約 25%,並支援 SIMD (Single Instruction, Multiple Data) 的技術。RyuJIT 同時應用於 .NET Framework 4.6 以及 .NET Core[18]

Core CLR 编辑

Core CLR 移植 .NET Framework 的 CLR 的功能,包含核心程式庫 mscorlib、JIT 編譯器、垃圾收集器 (GC) 以及其他執行 MSIL 所需要的執行期環境。

Core RT 编辑

Core RT 是以 预先编译英语Ahead-of-time compilation為主的核心功能,在 .NET Core 內稱為 Core RT,在 UWP 則是稱為 .NET Native。

Core RT 會在建造時期 (非執行期) 在編譯時將 MSIL 轉換成平台原生的機器碼,以獲取較短的啟動時間 (JIT 採用的是執行時期編譯,使得啟動時間拉長),以及記憶體用量減少的優點。Core RT 會在不同的平台使用不同的 AOT 技術:

  • Windows 上使用的是 .NET Native。
  • Mac OS 與 Linux 上使用的是 LLILC (同時支援 JIT 和 AOT)。

LLILC 编辑

LLILC (LLVM-based MSIL Compiler,英文發音為 "lilac") 是 .NET Core 在非 Windows 平台的 MSIL 編譯器[19],基於 ECMA-335 (Common Language Infrastructure) 的標準將 MSIL 編譯成原生碼執行,適用於可運行 LLVM 的作業系統,例如 Mac OSX 與 Linux 作業系統。

LLILC 同時支援 JIT (內含 RyuJIT 的實作) 以及 AOT (未來將開始支援) 的編譯方式。

Roslyn 编辑

.NET Compiler Platform (專案代碼為 Roslyn) 是將 .NET 平台的編譯架構標準化的平台,它可提供程式管理工具 (如整合開發環境) 相當多的情報,用以發展有助於編寫程式與管理程式結構所需要的功能,例如型別資訊、語法結構、參考連結、語意、編譯器、自動化、錯誤回報等等功能,只要是遵循 CLI 標準的程式語言,都可以利用 .NET Compiler Platform 實作出編譯器,讓程式管理工具能實作如語法提示、語法自動完成、關鍵字高亮等視覺化能力。

.NET Compiler Platform 可同時支援 .NET Framework 4.6 以上版本,.NET Core 也原生支援。

套件管理 编辑

.NET Core v1.0 時期 编辑

.NET Core 的類別庫採用 NuGet 套件化的架構,應用程式只需要使用 project.json 的 dependencies 區段加入指定套件版本的參考,就能獲得該套件的功能,與以往 .NET Framework 大包式的提供方法完全不同。.NET Core 團隊宣佈已經有 98% 的 .NET Framework 主要類別庫移轉到 .NET Core 平台[20]

例如下列 project.json 內容,可直接加入 .NET Standard Library (v1.0.0-rc2-23901) 的參考。

{  "version": "1.0.0-*",  "compilationOptions": {  "emitEntryPoint": true  },  "dependencies": {  "NETStandard.Library": "1.0.0-rc2-23901"  },  "frameworks": {  "netstandardapp1.5": {  "imports": "dnxcore50"  }  } } 

.NET Standard Library 是一個總括型的 NuGet Package,其內包含了這些類別庫套件:

  • Microsoft.DotNet.CoreHost
  • NETStandard.Platform
  • System.Collections.Concurrent
  • System.Linq
  • System.Runtime.Numerics
  • System.Text.RegularExpressions

其中的 NETStandard.Platform 也是一個總括型套件,包含了下列類別庫套件:

  • Microsoft.NETCore.Platforms
  • Microsoft.NETCore.Runtime
  • Microsoft.Win32.Primitives
  • System.AppContext
  • System.Collections
  • System.Diagnostics.Debug
  • System.Diagnostics.Tools
  • System.Diagnostics.Tracing
  • System.Globalization
  • System.Globalization.Calendars
  • System.IO
  • System.IO.FileSystem
  • System.IO.FileSystem.Primitives
  • System.Net.Primitives
  • System.Net.Sockets
  • System.Reflection
  • System.Reflection.Extensions
  • System.Reflection.Primitives
  • System.Reflection.TypeExtensions
  • System.Runtime
  • System.Runtime.Extensions
  • System.Runtime.Handles
  • System.Runtime.InteropServices
  • System.Runtime.InteropServices.RuntimeInformation
  • System.Text.Encoding
  • System.Text.Encoding.Extensions
  • System.Threading
  • System.Threading.Tasks
  • System.Threading.Timer

開發人員只需要使用 NETStandard.Library 就能加入所有必要的 .NET Core 類別庫參考,但若不需要這麼多組件,也可以只加入特定的套件即可,不一定都要加入 NETStandard.Library。

.NET Core v1.1 時期 编辑

對於微軟來說,.NET Core 1.0 (以及早期開發時) 使用 project.json 來處理套件管理與版本相依的問題,是因為很多工具還沒趕上 (例如微軟主力的建置工具 MSBuild),再加上 project.json/xproj 架構並不相容於以 MSBuild 為主的工具鏈 (Toolchain),若是要修改成相容 project.json/xproj 架構的話可能會付出極大成本,因此在 .NET Core 1.0 RC2 發布不久,官方就宣布要將 project.json/xproj 系統移回到以 MSBuild 為主的 csproj [21],例如下列 csproj 的例子即可看到套件參考的內容。

<Project Sdk="Microsoft.NET.Sdk.Web">  <PropertyGroup>  <TargetFramework>netcoreapp1.1</TargetFramework>  </PropertyGroup>  <PropertyGroup>  <PackageTargetFallback>$(PackageTargetFallback);portable-net45+win8+wp8+wpa81;</PackageTargetFallback>  </PropertyGroup>  <PropertyGroup>  <UserSecretsId>aspnet-MyCoolWebApplication-e119bc96-38e9-44ab-b4d3-d54964ade9b1</UserSecretsId>  <DockerComposeProjectPath>..\docker-compose.dcproj</DockerComposeProjectPath>  </PropertyGroup>  <ItemGroup>  <PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.0.0" />  <PackageReference Include="Microsoft.AspNetCore" Version="1.1.1" />  <PackageReference Include="Microsoft.AspNetCore.Authentication.Cookies" Version="1.1.1" />  <PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="1.1.1" />  <PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="1.1.1" />  <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.2" />  <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="1.1.1" />  <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="1.1.1" PrivateAssets="All" />  <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="1.1.1" />  <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer.Design" Version="1.1.1" PrivateAssets="All" />  <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="1.1.0" PrivateAssets="All" />  <PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="1.1.1" />  <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.1.1" />  <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="1.1.0" PrivateAssets="All" />  <PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="1.1.0" />  </ItemGroup>  <ItemGroup>  <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0" />  <DotNetCliToolReference Include="Microsoft.Extensions.SecretManager.Tools" Version="1.0.0" />  <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.0" />  </ItemGroup> </Project> 

由於 .NET Core 移回了 MSBuild 架構,因此在 Visual Studio 2017 的 .NET Core 工具內,已恢復可直接於 IDE 的 GUI 介面中編修套件參考的功能。

應用程式類型 编辑

.NET Core 基於跨平台能力,並沒有將與 GUI 高度相關的 API 移植到 .NET Core 內,因此像是 Windows Forms 或是 Windows Presentation Foundation (WPF) 並未移植到 .NET Core。.NET Core 支援主控台應用程式 (Console Application) 以及類別庫 (Class Library) 類型的專案。

不過微軟在其 Universal Windows Platform (UWP) 開發平台使用了 .NET Core[22],並且利用 .NET Native 技術將其效能提升至十分接近原生碼的速度。

ASP.NET Core 則以主控台應用程式驅動其代管環境 Kestrel Server 以支援 ASP.NET Core 程式的執行。

.NET CLI 编辑

.NET CLI (Command-Line Interface) 指令列工具是 .NET Core 處理建造、執行與編輯工作的主要工具 [23],有幾個主要的動作:

指令 說明
dotnet new 產生新的基本 .NET 專案內容 (包含 project.json、Program.cs 以及 NuGet.config)
dotnet restore 還原所參考的 NuGet 套件
dotnet build 建造 .NET 專案
dotnet publish 產生可發行的 .NET 專案 (包含所屬的 Runtime)
dotnet run 編譯與立即執行 .NET 專案 (較適用於 exe 型專案)
dotnet repl 啟動互動式的對話
dotnet pack 將專案的產出封裝成 NuGet 套件

與其他平台的關係 编辑

.NET Core 經常會拿來與其他平台做類比,尤其是它的源頭 .NET Framework 以及另一個相似性質的開源平台 Mono。

.NET Framework 编辑

據微軟的說明,.NET Core 和 .NET Framework 是子集 (Subset) 與超集 (Superset) 的關係,.NET Core 將會實作出部份的 .NET Framework 功能 (基本上是不含使用者介面的部份),例如 JIT (.NET Core 採用 RyuJIT)、垃圾收集器 (GC) 以及型別 (包含基本型別以及泛型型別等)[24]。未來 .NET Framework 和 .NET Core 也將會是各自發展,但它們也會同時使用彼此的功能,例如 .NET Compiler Platform 與 RyuJIT 等技術。

Mono 编辑

Mono 是另一個已發展許久的 .NET Framework 跨平台開源版本,基本上並不隸屬微軟官方,而是由社群的力量所主導,自成一個生態系統,也開發出了像Xamarin這樣的跨平台.NET行動應用,.NET Core 與 Mono 未來會是合作的關係,Mono 仍會維持社群力量的維護與發展,而 .NET Core 則會以官方角度來進行發展,兩邊也會一起進行彼此功能上的增進[24]

與 ASP.NET Core 的關係 编辑

.NET Core 與 ASP.NET Core 的關係其實一開始並不是主從關係 [25],ASP.NET Core 的開發初期 (ASP.NET 5) .NET Core 還沒有開始起跑,因此 ASP.NET Core 當時有自己的執行期與工具,一開始稱為 Project K,後來改為 DNX (.NET Execution Environment),DNX 本身就具有可獨立運作的執行能力,不需要依賴 .NET Core 執行,但是這樣會變成 .NET Core 和 ASP.NET Core 雙頭馬車的現象,在 .NET Core 逐漸成熟之後,微軟也決定要將這兩個各自獨立發展的產品線整合在一起,DNX 也將因改用 .NET Core 執行期而終止開發,DNX 的功能將由 .NET Core 以及旗下的 .NET CLI 接替提供,整合後的版本將在 1.0 RC2 時釋出。

支援作業系統 编辑

.NET 7 支援下列作業系統[26]

作業系統 版本 平台 組態
Windows 用戶端 Windows 7 SP1, 8.1 x64, x86 Windows 7 需要安装扩展安全更新
Windows 10 用戶端 Version 1607+ x64, x86, Arm64
Windows 11 Version 22000+ x64, x86, Arm64
Windows Server 2012+ x64, x86 全功能版、Server Core
Windows Nano Server Version 1809+ x64
Alpine Linux 3.15+ x64, Arm32, Arm64
CentOS 7+ x64
Debian 9+ x64, Arm32, Arm64
Fedora 33+ x64
Linux Mint 18+ x64 需要 glibc 2.27+
OpenSUSE 15+ x64
Red Hat Enterprise Linux 7+ x64, Arm64
SUSE Linux Enterprise 12 SP2+ x64
Ubuntu 18.04+ x64, Arm32, Arm64
macOS 10.15+ x64, Arm64
Android API 21+ x64, Arm32, Arm64
iOS 10.0+ x64, Arm32, Arm64

參考 编辑

  1. ^ https://dotnet.microsoft.com/en-us/download/dotnet/7.0; 检索日期: 2023年9月12日.
  2. ^ https://dotnet.microsoft.com/en-us/download/dotnet/8.0; 检索日期: 2023年9月12日.
  3. ^ core/LICENSE.TXT. GitHub. [2018-06-04]. (原始内容于2020-05-01). 
  4. ^ Overview of .NET Implementations Archive.is的存檔,存档日期2016-02-27,
  5. ^ NET Core Roadmap. [2016-03-13]. (原始内容于2019-09-06). 
  6. ^ .NET and .NET Core official support policy. .NET. Microsoft. [2022-08-25]. (原始内容于2020-06-01). 
  7. ^ Announcing .NET Core 1.0. .NET Blog. Microsoft. June 27, 2016 [2022-08-25]. (原始内容于2020-06-01). 
  8. ^ Announcing .NET Core 1.1. .NET Blog. Microsoft. November 16, 2016 [2022-08-25]. (原始内容于2020-06-01). 
  9. ^ Announcing .NET Core 2.0. .NET Blog. Microsoft. August 14, 2017 [2022-08-25]. (原始内容于2020-06-01). 
  10. ^ Announcing .NET Core 2.1. .NET Blog. Microsoft. May 30, 2018 [2022-08-25]. (原始内容于2019-12-25). 
  11. ^ Announcing .NET Core 2.2. .NET Blog. Microsoft. December 4, 2018 [2022-08-25]. (原始内容于2019-02-16). 
  12. ^ Announcing .NET Core 3.0. .NET Blog. Microsoft. September 23, 2019 [2022-08-25]. (原始内容于2020-06-01). 
  13. ^ Announcing .NET Core 3.1. .NET Blog. Microsoft. December 3, 2019 [2022-08-25]. (原始内容于2020-06-01). 
  14. ^ Announcing .NET 5.0. .NET Blog. Microsoft. November 10, 2020 [2022-08-25]. (原始内容于2021-02-18). 
  15. ^ Announcing .NET 6. .NET Blog. Microsoft. November 8, 2021 [2022-08-25]. (原始内容于2022-01-02). 
  16. ^ .NET 7 is Available Today. .NET Blog. Microsoft. November 8, 2022 [2022-11-09]. (原始内容于2022-12-22). 
  17. ^ Generate your API documentation with DocFX. [2016-03-13]. (原始内容于2016-04-11). 
  18. ^ JIT Compiler Structure. [2016-03-13]. (原始内容于2017-03-27). 
  19. ^ LLILC Architecture Overview. [2016-03-13]. (原始内容于2017-03-27). 
  20. ^ Announcing .NET Core and ASP.NET 5 RC. [2016-03-13]. (原始内容于2016-03-13). 
  21. ^ Changes to Project.json. [2017-03-08]. (原始内容于2017-03-08). 
  22. ^ .NET and Universal Windows Platform Development. [2016-03-13]. (原始内容于2016-03-23). 
  23. ^ Intro to .NET Core CLI. [2016-03-13]. (原始内容于2020-06-01). 
  24. ^ 24.0 24.1 .NET Core Home. [2016-03-13]. (原始内容于2016-02-11). 
  25. ^ About .NET Core. [2016-03-13]. (原始内容于2016-03-13). 
  26. ^ .NET 7 - Supported OS versions. GitHub. .NET Platform. [2022-08-25]. (原始内容于2022-12-30). 

此条目介紹的是微软公司开发的应用框架, 關於名称相近的旧版本框架, 請見, 框架, 關於网络域名, 請見, 此條目需要更新, 2020年12月10日, 請更新本文以反映近況和新增内容, 完成修改後請移除本模板, 此條目可参照英語維基百科相應條目来扩充, 2021年8月16日, 若您熟悉来源语言和主题, 请协助参考外语维基百科扩充条目, 请勿直接提交机械翻译, 也不要翻译不可靠, 低品质内容, 依版权协议, 译文需在编辑摘要注明来源, 或于讨论页顶部标记, href, template, translated, pa. 此条目介紹的是微软公司开发的应用框架 關於名称相近的旧版本框架 請見 NET框架 關於网络域名 請見 net 此條目需要更新 2020年12月10日 請更新本文以反映近況和新增内容 完成修改後請移除本模板 此條目可参照英語維基百科相應條目来扩充 2021年8月16日 若您熟悉来源语言和主题 请协助参考外语维基百科扩充条目 请勿直接提交机械翻译 也不要翻译不可靠 低品质内容 依版权协议 译文需在编辑摘要注明来源 或于讨论页顶部标记 a href Template Translated page html title Template Translated page Translated page a 标签 NET 3 1版以前稱作 NET Core 是微軟開發的第一個跨平台 Windows Mac OSX Linux 的應用程式開發框架 Application Framework 未來也將會支援FreeBSD與Alpine 平台 Net Core也是微軟在一開始發展時就開源的軟體平台 4 它經常也會拿來和現有的開源 NET 平台Mono比較 NET開發者 NET基金会首次发布2016年6月27日 7年前 2016 06 27 当前版本7 0 11 2023年9月12日 短期支援版本 1 8 0 0 rc 1 2023年9月12日 最终测试版本 2 源代码库github wbr com wbr dotnet wbr core编程语言C 和C 操作系统Windows Linux和macOS类型软件框架许可协议MIT许可证 3 网站dotnet wbr microsoft wbr com由於 NET Core 的開發目標是跨平台的 NET 平台 因此 NET Core 會包含 NET Framework 的類別庫 但與 NET Framework 不同的是 NET Core 採用套件化 Packages 的管理方式 應用程式只需要取得需要的組件即可 與 NET Framework 大包式安裝的作法截然不同 同時各套件亦有獨立的版本線 Version line 不再硬性要求應用程式跟隨主線版本 NET Core 專案的主要目標有 5 支援或可以移轉 port 到更多的作業系統平台與晶片架構 也就是未來計畫會跨出 x86 平台 具有引人注目的效能與高可靠度 開發人員能快速與直覺的獲取 NET Core 開發環境 在直覺與具生產力的情況下建造應用程式 使用文件 範例與 NuGet 元件 目录 1 历史 2 核心功能 2 1 RyuJIT 2 2 Core CLR 2 3 Core RT 2 4 LLILC 2 5 Roslyn 3 套件管理 3 1 NET Core v1 0 時期 3 2 NET Core v1 1 時期 4 應用程式類型 5 NET CLI 6 與其他平台的關係 6 1 NET Framework 6 2 Mono 7 與 ASP NET Core 的關係 8 支援作業系統 9 參考历史 编辑 NET Core 1 0 于 2016 年 6 月 27 日发布 2020 年 11 月 微软发布了 NET 5 0 统一了 NET的各个平台的碎片版本 NET Framework 4 8 NET Standard NET Core 3 1 Mono Xamarin等 2021 年 11 月 微软发布了 NET 6 0 2022 年 11 月 微软发布了 NET 7 0 版本 发布日期 一同发布的产品 最新补丁版本 补丁发布日期 终止支持 6 舊版本 不再支援 NET Core 1 0 2016 06 27 7 Visual Studio 2015 Update 3 1 0 16 000000002019 05 14 0000 2019年5月14日 000000002019 06 27 0000 2019年6月27日舊版本 不再支援 NET Core 1 1 2016 11 16 8 Visual Studio 2017 Version 15 0 1 1 13 000000002019 05 14 0000 2019年5月14日 000000002019 06 27 0000 2019年6月27日舊版本 不再支援 NET Core 2 0 2017 08 14 9 Visual Studio 2017 Version 15 3 2 0 9 000000002018 07 10 0000 2018年7月10日 000000002018 10 01 0000 2018年10月1日舊版本 不再支援 NET Core 2 1 2018 05 30 10 Visual Studio 2017 Version 15 7 2 1 30 LTS 000000002021 08 19 0000 2021年8月19日 000000002021 08 21 0000 2021年8月21日舊版本 不再支援 NET Core 2 2 2018 12 04 11 Visual Studio 2019 Version 16 0 2 2 8 000000002019 11 19 0000 2019年11月19日 000000002019 12 23 0000 2019年12月23日舊版本 不再支援 NET Core 3 0 2019 09 23 12 Visual Studio 2019 3 0 3 000000002020 02 18 0000 2020年2月18日 000000002020 03 03 0000 2020年3月3日舊版本 不再支援 NET Core 3 1 2019 12 03 13 Visual Studio 2019 3 1 32 LTS 000000002022 12 13 0000 2022年12月13日 000000002022 12 13 0000 2022年12月13日舊版本 不再支援 NET 5 2020 11 10 14 Visual Studio 2019 Version 16 8 5 0 17 000000002022 05 10 0000 2022年5月10日 000000002022 05 10 0000 2022年5月10日舊版本 仍被支援 NET 6 2021 11 08 15 Visual Studio 2022 Version 17 0 6 0 13 LTS 000000002023 01 10 0000 2023年1月10日 000000002024 11 12 0000 2024年11月12日當前版本 NET 7 2022 11 08 16 Visual Studio 2022 Version 17 4 7 0 2 000000002023 01 10 0000 2023年1月10日 000000002024 05 14 0000 2024年5月14日未来版本 NET 8 2023 11 預計 不適用 預計LTS 不適用 2026年11月 預計 格式 舊版本舊版本 仍被支援当前版本最新的预览版未来版本核心功能 编辑 NET Core 是由許多專案所組成 除了基本的類別庫 Core FX 之外 也包含採用 RyuJIT 編譯的執行平台 Core CLR 編譯器平台 NET Compiler Platform 採用 AOT 編譯技術運行最佳化的套件 Core RT NET Core Runtime 以及跨平台的 MSIL 編譯器 LLILC LLVM based MSIL Compiler 等專案 同時 微軟也發展了一個建置技術文件的平台 docfx 17 並運用於 NET Core 的文件網站 RyuJIT 编辑 RyuJIT 是微軟發展的新式即地編譯器 Just in Time Compiler 用以取代現有的 NET Framework 的 JIT 以及 JIT64 即地編譯器 依據微軟公佈的測試報告 RyuJIT 的效能較前一代的 JIT 提升約 25 並支援 SIMD Single Instruction Multiple Data 的技術 RyuJIT 同時應用於 NET Framework 4 6 以及 NET Core 18 Core CLR 编辑 主条目 通用語言運行庫 Core CLR 移植 NET Framework 的 CLR 的功能 包含核心程式庫 mscorlib JIT 編譯器 垃圾收集器 GC 以及其他執行 MSIL 所需要的執行期環境 Core RT 编辑 Core RT 是以 预先编译 英语 Ahead of time compilation 為主的核心功能 在 NET Core 內稱為 Core RT 在 UWP 則是稱為 NET Native Core RT 會在建造時期 非執行期 在編譯時將 MSIL 轉換成平台原生的機器碼 以獲取較短的啟動時間 JIT 採用的是執行時期編譯 使得啟動時間拉長 以及記憶體用量減少的優點 Core RT 會在不同的平台使用不同的 AOT 技術 Windows 上使用的是 NET Native Mac OS 與 Linux 上使用的是 LLILC 同時支援 JIT 和 AOT LLILC 编辑 主条目 LLILC LLILC LLVM based MSIL Compiler 英文發音為 lilac 是 NET Core 在非 Windows 平台的 MSIL 編譯器 19 基於 ECMA 335 Common Language Infrastructure 的標準將 MSIL 編譯成原生碼執行 適用於可運行 LLVM 的作業系統 例如 Mac OSX 與 Linux 作業系統 LLILC 同時支援 JIT 內含 RyuJIT 的實作 以及 AOT 未來將開始支援 的編譯方式 Roslyn 编辑 主条目 NET Compiler Platform NET Compiler Platform 專案代碼為 Roslyn 是將 NET 平台的編譯架構標準化的平台 它可提供程式管理工具 如整合開發環境 相當多的情報 用以發展有助於編寫程式與管理程式結構所需要的功能 例如型別資訊 語法結構 參考連結 語意 編譯器 自動化 錯誤回報等等功能 只要是遵循 CLI 標準的程式語言 都可以利用 NET Compiler Platform 實作出編譯器 讓程式管理工具能實作如語法提示 語法自動完成 關鍵字高亮等視覺化能力 NET Compiler Platform 可同時支援 NET Framework 4 6 以上版本 NET Core 也原生支援 套件管理 编辑主条目 ASP NET Core 專案系統 NET Core v1 0 時期 编辑 NET Core 的類別庫採用 NuGet 套件化的架構 應用程式只需要使用 project json 的 dependencies 區段加入指定套件版本的參考 就能獲得該套件的功能 與以往 NET Framework 大包式的提供方法完全不同 NET Core 團隊宣佈已經有 98 的 NET Framework 主要類別庫移轉到 NET Core 平台 20 例如下列 project json 內容 可直接加入 NET Standard Library v1 0 0 rc2 23901 的參考 version 1 0 0 compilationOptions emitEntryPoint true dependencies NETStandard Library 1 0 0 rc2 23901 frameworks netstandardapp1 5 imports dnxcore50 NET Standard Library 是一個總括型的 NuGet Package 其內包含了這些類別庫套件 Microsoft DotNet CoreHost NETStandard Platform System Collections Concurrent System Linq System Runtime Numerics System Text RegularExpressions其中的 NETStandard Platform 也是一個總括型套件 包含了下列類別庫套件 Microsoft NETCore Platforms Microsoft NETCore Runtime Microsoft Win32 Primitives System AppContext System Collections System Diagnostics Debug System Diagnostics Tools System Diagnostics Tracing System Globalization System Globalization Calendars System IO System IO FileSystem System IO FileSystem Primitives System Net Primitives System Net Sockets System Reflection System Reflection Extensions System Reflection Primitives System Reflection TypeExtensions System Runtime System Runtime Extensions System Runtime Handles System Runtime InteropServices System Runtime InteropServices RuntimeInformation System Text Encoding System Text Encoding Extensions System Threading System Threading Tasks System Threading Timer開發人員只需要使用 NETStandard Library 就能加入所有必要的 NET Core 類別庫參考 但若不需要這麼多組件 也可以只加入特定的套件即可 不一定都要加入 NETStandard Library NET Core v1 1 時期 编辑 對於微軟來說 NET Core 1 0 以及早期開發時 使用 project json 來處理套件管理與版本相依的問題 是因為很多工具還沒趕上 例如微軟主力的建置工具 MSBuild 再加上 project json xproj 架構並不相容於以 MSBuild 為主的工具鏈 Toolchain 若是要修改成相容 project json xproj 架構的話可能會付出極大成本 因此在 NET Core 1 0 RC2 發布不久 官方就宣布要將 project json xproj 系統移回到以 MSBuild 為主的 csproj 21 例如下列 csproj 的例子即可看到套件參考的內容 lt Project Sdk Microsoft NET Sdk Web gt lt PropertyGroup gt lt TargetFramework gt netcoreapp1 1 lt TargetFramework gt lt PropertyGroup gt lt PropertyGroup gt lt PackageTargetFallback gt PackageTargetFallback portable net45 win8 wp8 wpa81 lt PackageTargetFallback gt lt PropertyGroup gt lt PropertyGroup gt lt UserSecretsId gt aspnet MyCoolWebApplication e119bc96 38e9 44ab b4d3 d54964ade9b1 lt UserSecretsId gt lt DockerComposeProjectPath gt docker compose dcproj lt DockerComposeProjectPath gt lt PropertyGroup gt lt ItemGroup gt lt PackageReference Include Microsoft ApplicationInsights AspNetCore Version 2 0 0 gt lt PackageReference Include Microsoft AspNetCore Version 1 1 1 gt lt PackageReference Include Microsoft AspNetCore Authentication Cookies Version 1 1 1 gt lt PackageReference Include Microsoft AspNetCore Diagnostics EntityFrameworkCore Version 1 1 1 gt lt PackageReference Include Microsoft AspNetCore Identity EntityFrameworkCore Version 1 1 1 gt lt PackageReference Include Microsoft AspNetCore Mvc Version 1 1 2 gt lt PackageReference Include Microsoft AspNetCore StaticFiles Version 1 1 1 gt lt PackageReference Include Microsoft EntityFrameworkCore Design Version 1 1 1 PrivateAssets All gt lt PackageReference Include Microsoft EntityFrameworkCore SqlServer Version 1 1 1 gt lt PackageReference Include Microsoft EntityFrameworkCore SqlServer Design Version 1 1 1 PrivateAssets All gt lt PackageReference Include Microsoft EntityFrameworkCore Tools Version 1 1 0 PrivateAssets All gt lt PackageReference Include Microsoft Extensions Configuration UserSecrets Version 1 1 1 gt lt PackageReference Include Microsoft Extensions Logging Debug Version 1 1 1 gt lt PackageReference Include Microsoft VisualStudio Web CodeGeneration Design Version 1 1 0 PrivateAssets All gt lt PackageReference Include Microsoft VisualStudio Web BrowserLink Version 1 1 0 gt lt ItemGroup gt lt ItemGroup gt lt DotNetCliToolReference Include Microsoft EntityFrameworkCore Tools DotNet Version 1 0 0 gt lt DotNetCliToolReference Include Microsoft Extensions SecretManager Tools Version 1 0 0 gt lt DotNetCliToolReference Include Microsoft VisualStudio Web CodeGeneration Tools Version 1 0 0 gt lt ItemGroup gt lt Project gt 由於 NET Core 移回了 MSBuild 架構 因此在 Visual Studio 2017 的 NET Core 工具內 已恢復可直接於 IDE 的 GUI 介面中編修套件參考的功能 應用程式類型 编辑 NET Core 基於跨平台能力 並沒有將與 GUI 高度相關的 API 移植到 NET Core 內 因此像是 Windows Forms 或是 Windows Presentation Foundation WPF 並未移植到 NET Core NET Core 支援主控台應用程式 Console Application 以及類別庫 Class Library 類型的專案 不過微軟在其 Universal Windows Platform UWP 開發平台使用了 NET Core 22 並且利用 NET Native 技術將其效能提升至十分接近原生碼的速度 ASP NET Core 則以主控台應用程式驅動其代管環境 Kestrel Server 以支援 ASP NET Core 程式的執行 NET CLI 编辑 NET CLI Command Line Interface 指令列工具是 NET Core 處理建造 執行與編輯工作的主要工具 23 有幾個主要的動作 指令 說明dotnet new 產生新的基本 NET 專案內容 包含 project json Program cs 以及 NuGet config dotnet restore 還原所參考的 NuGet 套件dotnet build 建造 NET 專案dotnet publish 產生可發行的 NET 專案 包含所屬的 Runtime dotnet run 編譯與立即執行 NET 專案 較適用於 exe 型專案 dotnet repl 啟動互動式的對話dotnet pack 將專案的產出封裝成 NuGet 套件與其他平台的關係 编辑主条目 NET Framework和Mono NET Core 經常會拿來與其他平台做類比 尤其是它的源頭 NET Framework 以及另一個相似性質的開源平台 Mono NET Framework 编辑 據微軟的說明 NET Core 和 NET Framework 是子集 Subset 與超集 Superset 的關係 NET Core 將會實作出部份的 NET Framework 功能 基本上是不含使用者介面的部份 例如 JIT NET Core 採用 RyuJIT 垃圾收集器 GC 以及型別 包含基本型別以及泛型型別等 24 未來 NET Framework 和 NET Core 也將會是各自發展 但它們也會同時使用彼此的功能 例如 NET Compiler Platform 與 RyuJIT 等技術 Mono 编辑 Mono 是另一個已發展許久的 NET Framework 跨平台開源版本 基本上並不隸屬微軟官方 而是由社群的力量所主導 自成一個生態系統 也開發出了像Xamarin這樣的跨平台 NET行動應用 NET Core 與 Mono 未來會是合作的關係 Mono 仍會維持社群力量的維護與發展 而 NET Core 則會以官方角度來進行發展 兩邊也會一起進行彼此功能上的增進 24 與 ASP NET Core 的關係 编辑主条目 ASP NET Core NET Core 與 ASP NET Core 的關係其實一開始並不是主從關係 25 ASP NET Core 的開發初期 ASP NET 5 NET Core 還沒有開始起跑 因此 ASP NET Core 當時有自己的執行期與工具 一開始稱為 Project K 後來改為 DNX NET Execution Environment DNX 本身就具有可獨立運作的執行能力 不需要依賴 NET Core 執行 但是這樣會變成 NET Core 和 ASP NET Core 雙頭馬車的現象 在 NET Core 逐漸成熟之後 微軟也決定要將這兩個各自獨立發展的產品線整合在一起 DNX 也將因改用 NET Core 執行期而終止開發 DNX 的功能將由 NET Core 以及旗下的 NET CLI 接替提供 整合後的版本將在 1 0 RC2 時釋出 支援作業系統 编辑 NET 7 支援下列作業系統 26 作業系統 版本 平台 組態Windows 用戶端 Windows 7 SP1 8 1 x64 x86 Windows 7 需要安装扩展安全更新Windows 10 用戶端 Version 1607 x64 x86 Arm64Windows 11 Version 22000 x64 x86 Arm64Windows Server 2012 x64 x86 全功能版 Server CoreWindows Nano Server Version 1809 x64Alpine Linux 3 15 x64 Arm32 Arm64CentOS 7 x64Debian 9 x64 Arm32 Arm64Fedora 33 x64Linux Mint 18 x64 需要 glibc 2 27 OpenSUSE 15 x64Red Hat Enterprise Linux 7 x64 Arm64SUSE Linux Enterprise 12 SP2 x64Ubuntu 18 04 x64 Arm32 Arm64macOS 10 15 x64 Arm64Android API 21 x64 Arm32 Arm64iOS 10 0 x64 Arm32 Arm64參考 编辑 https dotnet microsoft com en us download dotnet 7 0 检索日期 2023年9月12日 https dotnet microsoft com en us download dotnet 8 0 检索日期 2023年9月12日 core LICENSE TXT GitHub 2018 06 04 原始内容存档于2020 05 01 Overview of NET Implementations Archive is的存檔 存档日期2016 02 27 NET Core Roadmap 2016 03 13 原始内容存档于2019 09 06 NET and NET Core official support policy NET Microsoft 2022 08 25 原始内容存档于2020 06 01 Announcing NET Core 1 0 NET Blog Microsoft June 27 2016 2022 08 25 原始内容存档于2020 06 01 Announcing NET Core 1 1 NET Blog Microsoft November 16 2016 2022 08 25 原始内容存档于2020 06 01 Announcing NET Core 2 0 NET Blog Microsoft August 14 2017 2022 08 25 原始内容存档于2020 06 01 Announcing NET Core 2 1 NET Blog Microsoft May 30 2018 2022 08 25 原始内容存档于2019 12 25 Announcing NET Core 2 2 NET Blog Microsoft December 4 2018 2022 08 25 原始内容存档于2019 02 16 Announcing NET Core 3 0 NET Blog Microsoft September 23 2019 2022 08 25 原始内容存档于2020 06 01 Announcing NET Core 3 1 NET Blog Microsoft December 3 2019 2022 08 25 原始内容存档于2020 06 01 Announcing NET 5 0 NET Blog Microsoft November 10 2020 2022 08 25 原始内容存档于2021 02 18 Announcing NET 6 NET Blog Microsoft November 8 2021 2022 08 25 原始内容存档于2022 01 02 NET 7 is Available Today NET Blog Microsoft November 8 2022 2022 11 09 原始内容存档于2022 12 22 Generate your API documentation with DocFX 2016 03 13 原始内容存档于2016 04 11 JIT Compiler Structure 2016 03 13 原始内容存档于2017 03 27 LLILC Architecture Overview 2016 03 13 原始内容存档于2017 03 27 Announcing NET Core and ASP NET 5 RC 2016 03 13 原始内容存档于2016 03 13 Changes to Project json 2017 03 08 原始内容存档于2017 03 08 NET and Universal Windows Platform Development 2016 03 13 原始内容存档于2016 03 23 Intro to NET Core CLI 2016 03 13 原始内容存档于2020 06 01 24 0 24 1 NET Core Home 2016 03 13 原始内容存档于2016 02 11 About NET Core 2016 03 13 原始内容存档于2016 03 13 NET 7 Supported OS versions GitHub NET Platform 2022 08 25 原始内容存档于2022 12 30 nbsp 微软主题 取自 https zh wikipedia org w index php title NET amp oldid 78980357, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。