共用方式為


.NET 簡介

.NET 是免費的跨平臺 開放原始碼開發人員平臺 ,可用於建置 多種應用程式。 它可以執行 以多種語言撰寫的程式,而 C# 是最受歡迎的程式。 它依賴一個在生產環境中被許多大規模應用程式使用的高效能執行環境。

若要瞭解如何 下載 .NET 並開始撰寫您的第一個應用程式,請參閱 用戶入門

.NET 平台的設計目的是提供生產力、效能、安全性和可靠性。 它透過 垃圾回收器 (GC) 提供自動記憶體管理。 由於使用 GC 和嚴格的語言編譯程式,所以它是類型安全且記憶體安全。 它透過async/和await原語提供Task。 它包含一組具有廣泛功能的大型程式庫,並已針對多個作業系統和晶元架構優化效能。

.NET 具有下列 設計點

  • 生產力全方位涵蓋執行環境、函式庫、語言和工具,全面提升開發人員的使用體驗。
  • 安全程式代碼 是主要的計算模型,而 不安全的程式代碼 可啟用額外的手動優化。
  • 同時支援靜態和動態程式碼,涵蓋多種不同的情境。
  • 原生程式碼互操作性和硬體內部函數具有低成本和高精確度(對原始 API 和指令的存取)。
  • 程序代碼可在平台之間移植 (OS 和晶元架構),而平臺目標可啟用特製化和優化。
  • 透過一般用途程序設計模型的特製化實作,可跨程式設計領域(雲端、用戶端、遊戲)進行調整。
  • OpenTelemetry 和 gRPC 等業界標準優先於定製解決方案。

Microsoft與全球社群會共同維護 .NET。 一般更新可確保使用者將安全且可靠的應用程式部署到生產環境。

元件

.NET 包含下列元件:

  • 運行時間 -- 執行應用程式程式代碼。
  • 函式庫 -- 提供公用程式功能,例如 JSON 剖析
  • 編譯程式 -- 將 C# (和其他語言) 原始程式碼編譯成 (運行時間) 可執行的程式代碼。
  • SDK 和其他工具 -- 使用新式工作流程來建置和監視應用程式。
  • 應用程式堆疊 -- 例如 ASP.NET Core 和 Windows Forms,可啟用撰寫應用程式。

運行時間、連結庫和語言是 .NET 堆棧的支柱。 較高層級的元件,例如 .NET 工具和應用程式堆疊,例如 ASP.NET Core,建置在這些要素之上。 C# 是 .NET 的主要程序設計語言,大部分的 .NET 是以 C# 撰寫。

C# 是面向物件,運行時間支援物件方向。 C# 需要垃圾收集,運行時間會提供追蹤垃圾收集行程。 連結庫(以及應用程式堆棧)會將這些功能塑造成概念和物件模型,讓開發人員能夠在直覺式工作流程中有效率地撰寫演算法。

核心連結庫會公開數千種類型,其中許多類型會與 C# 語言整合並推動。 例如,C# 的 foreach 語句可讓您列舉任意集合。 以模式為基礎的優化可讓類似 List<T> 的集合簡單且有效率地進行處理。 您可以將資源管理交由垃圾收集處理,但可以透過 IDisposable 語句中的 using 直接語言支援來及時清除。

支援同時執行多個作業,對於幾乎所有工作負載而言都是基本的。 這可能是客戶端應用程式在保持 UI(使用者介面)回應的同時執行背景處理、處理數千個同時要求的服務、回應許多同時刺激的裝置,或平行處理計算密集型作業的高性能機器。 異步程式設計支援是 C# 程式設計語言的一流功能,其提供 asyncawait 關鍵詞,可讓您輕鬆撰寫和撰寫異步作,同時仍享有語言所必須提供之所有控制流程建構的完整優點。

型別系統具備相當廣泛的功能,能夠平衡地滿足安全性、描述性、動態性和原生互操作性的需求。 首先,類型系統會啟用面向物件程序設計模型。 它包含類型、(單一基類)繼承、介面(包括預設方法實作),以及虛擬方法分派,為物件方向允許的所有類型分層提供合理的行為。 泛型類型 無處不在,可讓您將類別特製化為一或多個類型。

.NET 執行環境透過垃圾回收器提供自動記憶體管理。 對於任何語言而言,其記憶體管理模型可能是其最具決定性的特性。 這適用於 .NET 語言。 .NET 具有自我微調、追蹤 GC。 其目標是在一般情況下提供「免操作」使用,同時針對高需求工作負載提供設定選項。 目前的 GC 是多年投資和從大量工作負載中學習的結果。

實值型別與堆疊配置的記憶體區塊相較於 .NET 的垃圾回收機制管理的類型,提供更直接和低階的數據與原生平台互操作控制。 .NET 中大部分的基本類型,例如整數類型,都是實值型別,使用者可以使用類似的語意來定義自己的類型。 透過 .NET 的泛型系統對實值型別的完全支持,這意味著像 List<T> 這樣的泛型型別可以為實值型別集合提供簡單、無額外負荷的記憶體表示法。

反映 是「程式即數據」範例,可讓程式的某個部分以元件、類型和成員的方式動態查詢和叫用另一個部分。 這對於晚期綁定程序設計模型和工具特別有用。

例外狀況是 .NET 中的主要錯誤處理模型。 例外狀況的優點是錯誤資訊不需要在方法簽章中表示,或由每個方法處理。 適當的例外狀況處理對於應用程式可靠性而言很重要。 若要防止應用程式當機,您可以刻意處理程式碼中預期的例外狀況。 當機的應用程式比未定義行為的應用程式更可靠且可診斷。

應用程式堆疊,例如 ASP.NET Core 和 Windows Forms,建構於低階函式庫、語言和執行階段之上,並加以利用。 應用程式堆疊會定義應用程式建構的方式,以及其執行週期。

SDK 和其他工具可在開發人員桌面上啟用新式開發人員體驗,以及持續整合 (CI)。 新式開發人員體驗包括能夠建置、分析和測試程序代碼。 .NET 專案通常可以透過一個 dotnet build 命令來建置,協調還原 NuGet 套件並處理相依性。

NuGet 是 .NET 的套件管理員。 其中包含數十萬個套件,可實作許多案例的功能。 大部分的應用程式都依賴 NuGet 套件來取得某些功能。 NuGet 資源庫由Microsoft維護。

免費和開放原始碼

.NET 是免費的開放原始碼,而且是 .NET Foundation 專案。 .NET 是由Microsoft和 GitHub 上的 社群在數個存放庫中維護。

.NET 來源和二進位檔是使用 MIT 授權來授權。 其他 授權適用於 Windows

支援

多個 組織都支援 .NET,以確保 .NET 可以在 多個作系統 上執行,並且保持最新狀態。 它可用於 Arm64、x64 和 x86 架構。

根據我們的 版本和支持原則,每年 11 月發行新版本的 .NET。 它會在每月的修補程式星期二(第二個星期二),通常於太平洋時間上午 10 點更新。

.NET 生態系統

.NET 有多個變體,每個變體都支援不同類型的應用程式。 多個變體的原因是部分歷程記錄、部分技術。

.NET 實作:

  • .NET Framework -- 原始的 .NET。 它可讓您存取 Windows 和 Windows Server 的廣泛功能。 它正受到積極的支援,並且正在維護中。
  • Mono - 原始社群和開放原始碼 .NET。 .NET Framework 的跨平台實作。 主動支援 Android、iOS 和 WebAssembly。
  • .NET (Core) -- 新式 .NET。 .NET 的跨平臺和開放原始碼實作,針對雲端時代重新考慮,同時與 .NET Framework 大幅相容。 主動支援Linux、macOS和 Windows。

後續步驟