首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> C# 入門

全面認識 C#(二十五-二十六):基礎類別庫與互通性

     編輯:C# 入門

二十五、基礎類別庫 (BCL / .NET 標準程式庫)

核心命名空間

領域關鍵命名空間說明
基礎型別System, System.Collections.GenericObject, String, Array, List, Dictionary, Span
IO/檔案System.IO, System.IO.CompressionStream, File, Path, ZipArchive
網路/HTTPSystem.Net, System.Net.Http, System.Net.SocketsHttpClient, TcpListener, Socket, DNS
資料存取System.Data, Microsoft.Data.SqlClientADO.NET, SqlConnection, DataTable
XML/JSONSystem.Xml, System.Text.JsonXmlDocument, JsonSerializer, LINQ to XML
執行緒/非同步System.Threading, System.Threading.TasksTask, Parallel, Async/Await, Channel
反射/發射System.Reflection, System.Reflection.EmitType, Assembly, MethodInfo, ILGenerator
安全/加密System.Security.CryptographyAES, RSA, SHA256, X509Certificate2
文字/正則System.Text, System.Text.RegularExpressionsStringBuilder, Regex, Encoding
診斷/記錄System.Diagnostics, Microsoft.Extensions.LoggingActivity, Stopwatch, ILogger

.NET Standard / .NET 5+ 統一

  • .NET Standard 2.0/2.1:跨平台 API 契約
  • .NET 5+:單一平台實作,取代 .NET Framework/.NET Core/Xamarin
  • NuGet 套件生態系:Microsoft.Extensions.*, System.*, 社群套件

二十六、互通性三大維度

1. 語言互通性

  • CTS (Common Type System):定義共同型別系統 (值/參考/泛型/委派/介面)
  • CLS (Common Language Specification):跨語言互通子集規範
  • 多語言共享組件:C# 定義類別 → VB.NET 繼承覆寫 → F# 使用 → C++/CLI 互通
  • 動態語言支援:DLR (Dynamic Language Runtime) 支援 IronPython, IronRuby

2. 平台互通性

技術支援範圍現狀
.NET FrameworkWindows Only維護模式 (4.8.1 最後版本)
.NET Core / .NET 5+Windows, Linux, macOS, ARM64主流跨平台
Mono行動裝置、遊戲主機、WebAssembly整合進 .NET 6+
Blazor WebAssembly瀏覽器 (WASM)客戶端 C# 運行
MAUI跨平台 UI (Win/Mac/iOS/Android)統一 UI 堆疊

3. 標準互通性

  • 資料庫:ADO.NET 提供者模式 (SQL Server, PostgreSQL, MySQL, SQLite, Oracle)
  • 訊息佇列:AMQP, MQTT, Kafka, RabbitMQ, Azure Service Bus
  • Web 服務:gRPC, REST/HTTP, GraphQL, SOAP (WCF Legacy)
  • 序列化:JSON (System.Text.Json), Protobuf, MessagePack, Avro
  • 雲端原生:OpenTelemetry, OpenMetrics, CloudEvents, CNCF 標準
  • 安全標準:OAuth 2.0, OIDC, JWT, X.509, FIDO2

平台呼叫

P/Invoke (Platform Invocation)


internal static class NativeMethods {
    [DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Auto)]
    public static extern bool CloseHandle(IntPtr hObject);

    [DllImport("user32.dll", SetLastError = true)]
    public static extern int MessageBox(IntPtr hWnd, string text, string caption, uint type);
}

// 使用
NativeMethods.MessageBox(IntPtr.Zero, "Hello", "P/Invoke", 0);

C++/CLI 混合模式組件

  • 單一組件包含原生 C++ 與受控碼
  • 無縫互通,無 P/Invoke 開銷
  • 適用大量既有 C++ 程式碼遷移

COM Interop

  • 受控物件自動暴露為 COM 物件 (ComVisibleAttribute)
  • Type Library Importer (tlbimp) / Exporter (tlbexp)
  • RCW (Runtime Callable Wrapper) / CCW (COM Callable Wrapper)
  • .NET 5+ 繼續支援,但建議遷移至現代標準

總結

.NET 基礎類別庫提供全面、現代化、跨平台的 API 覆蓋。互通性三大維度:語言 (CTS/CLS/DLR)、平台 (.NET 5+ 全平台)、標準 (開放協定/雲原生)。P/Invoke、C++/CLI、COM Interop 解決既有資產整合。選擇 .NET 即獲得豐富生態系與長期演進保障。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved