Movatterモバイル変換


[0]ホーム

URL:


跳转到内容
维基百科自由的百科全书
搜索

.NET

本页使用了标题或全文手工转换
维基百科,自由的百科全书
此条目介紹的是微软公司开发的应用框架。
  • 關於名称相近的旧版本框架,請見「.NET框架」。
  • 關於网络域名,請見「.net」。
此條目需要更新(2020年12月10日)
請更新本文以反映近況和新增内容。完成修改後請移除本模板。
此條目可参照英語維基百科相應條目来扩充(2021年8月16日)
若您熟悉来源语言和主题,请协助参考外语维基百科扩充条目。请勿直接提交机械翻译,也不要翻译不可靠、低品质内容。依版权协议,译文需在编辑摘要注明来源,或于讨论页顶部标记{{Translated page}}标签。
.NET
開發者.NET基金会
首次发布2016年6月27日,​9年前​(2016-06-27
当前版本
  • 10.0.0-rc.2(2025年10月14日;最终测试版本)[1]
  • 10.0.3(2026年2月10日;長期支援)[2]
編輯維基數據鏈接
源代码库編輯維基數據鏈接
编程语言C++C#F#VB.NET
操作系统WindowsLinuxmacOS
类型软件框架
许可协议MIT许可证[3]
网站dotnet.microsoft.com

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

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

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

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

历史

[编辑]

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

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

此后,微软每年11月发布一个 .NET 的大版本更新,并将偶数大版本指定为長期支援(LTS)版本。

2021年11月,微软发布了 .NET 6.0[7],为LTS版本,提升了性能并完善了跨平台开发能力。

2022年11月,微软发布了 .NET 7.0[8],进一步提升性能和开发体验,增强了云原生和容器支持。

2023年11月,微软发布了 .NET 8.0[9],作为LTS版本,继续在性能、多平台和AI场景方面优化。

2024年11月,微软发布了 .NET 9.0[10],聚焦性能提升和云原生应用,并持续完善开发工具链。

2025年11月,微软发布了 .NET 10.0[11]


版本发布日期一同发布的产品最新补丁版本补丁发布日期终止支持[12]
舊版本,不再支援: .NET Core 1.02016-06-27[13]Visual Studio 2015 Update 31.0.16000000002019-05-14-00002019年5月14日000000002019-06-27-00002019年6月27日
舊版本,不再支援: .NET Core 1.12016-11-16[14]Visual Studio 2017 Version 15.01.1.13000000002019-05-14-00002019年5月14日000000002019-06-27-00002019年6月27日
舊版本,不再支援: .NET Core 2.02017-08-14[15]Visual Studio 2017 Version 15.32.0.9000000002018-07-10-00002018年7月10日000000002018-10-01-00002018年10月1日
舊版本,不再支援: .NET Core 2.12018-05-30[16]Visual Studio 2017 Version 15.72.1.30 (LTS000000002021-08-19-00002021年8月19日000000002021-08-21-00002021年8月21日
舊版本,不再支援: .NET Core 2.22018-12-04[17]Visual Studio 2019 Version 16.02.2.8000000002019-11-19-00002019年11月19日000000002019-12-23-00002019年12月23日
舊版本,不再支援: .NET Core 3.02019-09-23[18]Visual Studio 20193.0.3000000002020-02-18-00002020年2月18日000000002020-03-03-00002020年3月3日
舊版本,不再支援: .NET Core 3.12019-12-03[19]Visual Studio 20193.1.32 (LTS000000002022-12-13-00002022年12月13日000000002022-12-13-00002022年12月13日
舊版本,不再支援: .NET 52020-11-10Visual Studio 2019 Version 16.85.0.17000000002022-05-10-00002022年5月10日000000002022-05-10-00002022年5月10日
舊版本,不再支援: .NET 62021-11-08Visual Studio 2022 Version 17.06.0.36 (LTS000000002024-11-12-00002024年11月12日000000002024-11-12-00002024年11月12日
舊版本,不再支援: .NET 72022-11-08Visual Studio 2022 Version 17.47.0.20000000002024-05-29-00002024年5月29日000000002024-05-14-00002024年5月14日
舊版本,仍被支援: .NET 82023-11-14Visual Studio 2022 Version 17.88.0.22 (LTS000000002025-11-11-00002025年11月11日000000002026-11-10-00002026年11月10日
舊版本,仍被支援: .NET 92024-11-12Visual Studio 2022 Version 17.129.0.11000000002025-11-19-00002025年11月19日000000002026-11-10-00002026年11月10日
當前版本:.NET 102025-11-11Visual Studio 2026 Version 18.0.110.0.100 (LTS000000002025-11-11-00002025年11月11日000000002028-11-14-00002028年11月14日
格式:
舊版本
舊版本,仍被支援
当前版本
最新的预览版
未来版本

核心功能

[编辑]

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

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

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[21]

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。
  • macOS與Linux上使用的是LLILC(同時支援JIT和AOT)。

LLILC

[编辑]

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

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

因为RyuJIT的跨平台能力与性能逐渐追上,LLILC的Github仓库已于2022年被归档,不再维护[23]

Roslyn

[编辑]
主条目:Roslyn英语Roslyn (compiler)

.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平台[24]

例如下列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[25],例如下列csproj的例子即可看到套件參考的內容。

<ProjectSdk="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><PackageReferenceInclude="Microsoft.ApplicationInsights.AspNetCore"Version="2.0.0"/><PackageReferenceInclude="Microsoft.AspNetCore"Version="1.1.1"/><PackageReferenceInclude="Microsoft.AspNetCore.Authentication.Cookies"Version="1.1.1"/><PackageReferenceInclude="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore"Version="1.1.1"/><PackageReferenceInclude="Microsoft.AspNetCore.Identity.EntityFrameworkCore"Version="1.1.1"/><PackageReferenceInclude="Microsoft.AspNetCore.Mvc"Version="1.1.2"/><PackageReferenceInclude="Microsoft.AspNetCore.StaticFiles"Version="1.1.1"/><PackageReferenceInclude="Microsoft.EntityFrameworkCore.Design"Version="1.1.1"PrivateAssets="All"/><PackageReferenceInclude="Microsoft.EntityFrameworkCore.SqlServer"Version="1.1.1"/><PackageReferenceInclude="Microsoft.EntityFrameworkCore.SqlServer.Design"Version="1.1.1"PrivateAssets="All"/><PackageReferenceInclude="Microsoft.EntityFrameworkCore.Tools"Version="1.1.0"PrivateAssets="All"/><PackageReferenceInclude="Microsoft.Extensions.Configuration.UserSecrets"Version="1.1.1"/><PackageReferenceInclude="Microsoft.Extensions.Logging.Debug"Version="1.1.1"/><PackageReferenceInclude="Microsoft.VisualStudio.Web.CodeGeneration.Design"Version="1.1.0"PrivateAssets="All"/><PackageReferenceInclude="Microsoft.VisualStudio.Web.BrowserLink"Version="1.1.0"/></ItemGroup><ItemGroup><DotNetCliToolReferenceInclude="Microsoft.EntityFrameworkCore.Tools.DotNet"Version="1.0.0"/><DotNetCliToolReferenceInclude="Microsoft.Extensions.SecretManager.Tools"Version="1.0.0"/><DotNetCliToolReferenceInclude="Microsoft.VisualStudio.Web.CodeGeneration.Tools"Version="1.0.0"/></ItemGroup></Project>

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

應用程式類型

[编辑]

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

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

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

.NET CLI

[编辑]

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

指令說明
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 FrameworkMono

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

.NET Framework

[编辑]

據微軟的說明,.NET Core和 .NET Framework是子集(Subset)與超集(Superset)的關係,.NET Core將會實作出部份的 .NET Framework功能 (基本上是不含使用者介面的部份),例如 JIT(.NET Core採用 RyuJIT)、垃圾收集器(GC)以及型別(包含基本型別以及泛型型別等)[29]。.NET Framework与 .NET Core已经在 .NET 5及以后版本合并为统一的 .NET平台。

Mono

[编辑]

Mono是另一個已發展許久的 .NET Framework跨平台開源版本,起初由社群主导,并由Xamarin等技术推动了.NET跨平台应用的开发。在.NET Core问世后,微软逐步将跨平台的核心功能和支持纳入微软官方的.NET生态中,最终在.NET5及以后版本将.NET Core和Mono合并至统一的.NET平台。此后不再区分.NET Framework、.NET Core和Mono[29]

Mono的最后一个大版本于2024年2月发布,之后微软将其移交至Wine进行管理[30]

然而,Mono仍然具有其特定的用途,例如作为Unity游戏引擎和Xamarin。Android/Xamarin.iOS的运行环境,因为其提供的轻量级JIT编译和AOT(Ahead Of Time)功能。

與ASP.NET Core的關係

[编辑]
主条目:ASP.NET Core

.NET Core與ASP.NET Core的關係其實一開始並不是主從關係[31],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 9支援下列作業系統[32]

作業系統版本平台組態
Windows 10Version 1607+x64, x86, Arm64
Windows 11Version 2200+x64, x86, Arm64
Windows Server2012+x64, x86全功能版、Server Core
Windows Nano ServerVersion 2019+x64
Windows Server Core2012+x64,x86
Alpine Linux3.19+x64, Arm32, Arm64
CentOS9+x64, Arm64,ppc664le,s390x
Debian12+x64, Arm32, Arm64
Fedora40+x64, Arm32, Arm64
OpenSUSE15.5+x64
Red Hat Enterprise Linux8+x64, Arm64
SUSE Linux Enterprise12 SP2+x64, Arm64,ppc664le,s390x
Ubuntu18.04+x64, Arm32, Arm64
macOS13+x64, Arm64
iOS16.0+Arm64
tvOS12.2+Arm64
AndroidAPI 21+x64, Arm32, Arm64

參考

[编辑]
  1. ^Download .NET 10.0. [2025年10月14日]. 
  2. ^Download .NET 10.0. [2026年2月11日]. 
  3. ^core/LICENSE.TXT.GitHub. [2018-06-04]. (原始内容存档于2020-05-01). 
  4. ^Overview of .NET ImplementationsArchive.today存檔,存档日期2016-02-27,
  5. ^NET Core Roadmap. [2016-03-13]. (原始内容存档于2019-09-06). 
  6. ^Announcing .NET 5.0. .NET Blog. Microsoft. November 10, 2020 [2022-08-25]. (原始内容存档于2021-02-18). 
  7. ^Announcing .NET 6. .NET Blog. Microsoft. November 8, 2021 [2022-08-25]. (原始内容存档于2022-01-02). 
  8. ^.NET 7 is Available Today. .NET Blog. Microsoft. November 8, 2022 [2022-11-09]. (原始内容存档于2022-12-22). 
  9. ^Seth, Gaurav.Announcing .NET 8. .NET Blog. 2023-11-14 [2025-06-04](美国英语). 
  10. ^Team, N. E. T.Announcing .NET 9. .NET Blog. 2024-11-12 [2025-06-04](美国英语). 
  11. ^Team, N. E. T.Announcing .NET 10. .NET Blog. 2025-11-11 [2025-11-24](美国英语). 
  12. ^.NET and .NET Core official support policy. .NET. Microsoft. [2022-08-25]. (原始内容存档于2020-06-01). 
  13. ^Announcing .NET Core 1.0. .NET Blog. Microsoft. June 27, 2016 [2022-08-25]. (原始内容存档于2020-06-01). 
  14. ^Announcing .NET Core 1.1. .NET Blog. Microsoft. November 16, 2016 [2022-08-25]. (原始内容存档于2020-06-01). 
  15. ^Announcing .NET Core 2.0. .NET Blog. Microsoft. August 14, 2017 [2022-08-25]. (原始内容存档于2020-06-01). 
  16. ^Announcing .NET Core 2.1. .NET Blog. Microsoft. May 30, 2018 [2022-08-25]. (原始内容存档于2019-12-25). 
  17. ^Announcing .NET Core 2.2. .NET Blog. Microsoft. December 4, 2018 [2022-08-25]. (原始内容存档于2019-02-16). 
  18. ^Announcing .NET Core 3.0. .NET Blog. Microsoft. September 23, 2019 [2022-08-25]. (原始内容存档于2020-06-01). 
  19. ^Announcing .NET Core 3.1. .NET Blog. Microsoft. December 3, 2019 [2022-08-25]. (原始内容存档于2020-06-01). 
  20. ^Generate your API documentation with DocFX. [2016-03-13]. (原始内容存档于2016-04-11). 
  21. ^JIT Compiler Structure. [2016-03-13]. (原始内容存档于2017-03-27). 
  22. ^LLILC Architecture Overview. [2016-03-13]. (原始内容存档于2017-03-27). 
  23. ^Dotnet.LLILC Is Now Archived. Github. [2025-08-09]. 
  24. ^Announcing .NET Core and ASP.NET 5 RC. [2016-03-13]. (原始内容存档于2016-03-13). 
  25. ^Changes to Project.json. [2017-03-08]. (原始内容存档于2017-03-08). 
  26. ^Carter, Phillip; Knezevic, Zlatko..NET Core – .NET Goes Cross-Platform with .NET Core.MSDN Magazine.Microsoft. 2016-04. 
  27. ^.NET and Universal Windows Platform Development. [2016-03-13]. (原始内容存档于2016-03-23). 
  28. ^Intro to .NET Core CLI. [2016-03-13]. (原始内容存档于2020-06-01). 
  29. ^29.029.1.NET Core Home. [2016-03-13]. (原始内容存档于2016-02-11). 
  30. ^mono.Thank you to all the Mono developers!. GitHub. [2025-02-22]. 
  31. ^About .NET Core. [2016-03-13]. (原始内容存档于2016-03-13). 
  32. ^dotnet..NET 9 - Supported OS versions. github. [2024-12-18]. (原始内容存档于2024-12-28). 
实现
架構
共同語言基礎架構
CLI支持語言
共同語言1
其他語言2
Core家族3
元件
比較
即將推出
1微软在Visual Studio.NET Framework中提供了或者将提供支持的语言
2被多數使用者使用,且非教學或研究型的語言。
3具有跨平台(Windows, Mac OSX, Linux)能力的開發框架。
圖形介面
音樂與音效
多媒體
Web
資料存取
網路
通訊
管理
元件與模型
函式庫
驱动程序
安全性
.NET
软件工廠
行程間通訊
可協助性
文字與多語系支援
遊戲開發
人物
創始人
董事会
高層領導團隊
公司副總裁
部門
產品
系列
網絡
大會
批評
訴訟
收購英语List of mergers and acquisitions by Microsoft
管理工具
應用程式
Shell
服務
文件系統
服务器
架構
安全性
兼容性
API
已經终止
遊戲
应用程序
其他
检索自“https://zh.wikipedia.org/w/index.php?title=.NET&oldid=90244171
分类:​
隐藏分类:​

[8]ページ先頭

©2009-2026 Movatter.jp