GKLBB

当你经历了暴风雨,你也就成为了暴风雨

导航

.NET是什么

.NET” (发音为 "dot net") 是一个免费、开源、跨平台的开发者平台,用于构建多种类型的应用程序。它不仅仅是一个框架或一个库,而是一个完整的生态系统,提供了运行应用程序所需的环境、编程语言支持、丰富的库和工具。

简单来说,你可以把 .NET 理解为一个强大的工具箱和工作台,开发者用它来建造软件。

以下是 .NET 的核心组成部分和关键概念:

  1. .NET Runtime (运行时环境):

    • 这是 .NET 的心脏。最核心的运行时是 CLR (Common Language Runtime - 公共语言运行时)
    • 作用:当你运行一个 .NET 程序时,CLR 负责管理程序的执行。这包括:
      • 内存管理 (垃圾回收 - GC):自动分配和释放内存,避免内存泄漏。
      • 安全性:提供代码访问安全机制。
      • 异常处理:提供统一的错误处理机制。
      • 线程管理:支持多线程编程。
      • 即时编译 (JIT Compilation):将编译生成的中间代码 (IL - Intermediate Language) 在运行时编译成目标机器能直接执行的本地机器码,优化性能。
  2. .NET SDK (Software Development Kit - 软件开发工具包):

    • 这是一套开发者用来构建 .NET 应用程序的工具集。
    • 包含:编译器 (将 C#, F#, VB.NET 代码编译成 IL)、CLI (命令行接口)、库、模板、调试器、文档等。有了 SDK,你才能开发 .NET 应用。
  3. 框架类库 (FCL / Base Class Library - BCL):

    • 这是一个庞大且标准化的类、接口和值类型库
    • 作用:提供了几乎所有应用程序都需要的基础功能,开发者不必从零开始造轮子。例如:
      • 文件系统操作 (System.IO)
      • 网络通信 (System.Net)
      • 数据库访问 (System.Data, Entity Framework Core)
      • 字符串操作、数学计算、日期时间处理 (System)
      • 集合 (System.Collections)
      • 异步编程 (System.Threading.Tasks)
      • 加密 (System.Security.Cryptography)
      • XML/JSON 处理 (System.Text.JsonSystem.Xml)
      • 等等...
  4. 支持的语言:

    • .NET 支持多种编程语言,它们都编译成相同的中间语言 (IL),然后在 CLR 上运行。这使得不同语言编写的组件可以无缝互操作。主要语言包括:
      • C# (最流行):现代、面向对象、类型安全的语言。
      • F#:函数式优先的语言,也支持面向对象。
      • Visual Basic (VB.NET):更易于学习的语言,语法接近经典 VB。
    • (历史上还有其他语言如 Managed C++, J# 等,但已基本不再使用或不受支持)
  5. 应用模型 (Application Models):

    • .NET 提供了丰富的库和框架,用于构建特定类型的应用程序:
      • Web 应用:ASP.NET Core (用于构建 API、Web UI、微服务)
      • 桌面应用:Windows Forms (WinForms), Windows Presentation Foundation (WPF), .NET MAUI (Multi-platform App UI - 跨平台移动和桌面)
      • 移动应用:.NET MAUI (Android, iOS, macOS, Windows), Xamarin (已整合进 .NET MAUI)
      • 云原生 & 微服务:ASP.NET Core, gRPC, 与 Docker/Kubernetes 良好集成
      • 游戏:Unity 游戏引擎的主要脚本语言是 C# (运行在 .NET 上)
      • 机器学习:ML.NET
      • 物联网 (IoT)
      • 控制台应用

关键特点和优势:

  • 跨平台:现代的 .NET (从 .NET Core 开始,现在是 .NET 5/6/7/8+) 可以在 Windows, Linux, macOS 上运行。
  • 开源:整个平台(运行时、库、编译器、语言)都在 GitHub 上开源 (github.com/dotnet),由微软和活跃的社区共同维护。
  • 高性能:持续优化,在高性能场景 (Web 服务、微服务) 中表现非常出色。
  • 现代化且活跃:不断更新,拥抱现代开发实践 (云原生、容器化、微服务、DevOps)。
  • 强大的生态系统:拥有庞大的开发者社区、丰富的第三方库 (NuGet 包)、优秀的工具支持 (Visual Studio, Visual Studio Code, JetBrains Rider)。
  • 统一的平台:现代的 .NET (5+) 旨在统一之前碎片化的 .NET Framework, .NET Core, Xamarin/Mono,提供一个单一的、一致的平台来构建所有类型的应用。
  • 托管执行环境:CLR 提供的自动内存管理 (GC) 和安全性是核心优势。

历史演变的重要节点:

  1. .NET Framework (约 2002 - ):最初的 .NET,仅限 Windows 平台。非常成熟,主要用于 Windows 桌面 (WinForms, WPF) 和 ASP.NET Web Forms/MVC 应用。现在处于维护模式,新开发推荐使用现代 .NET。
  2. Mono (约 2004 - ):开源的、跨平台 (Linux, macOS 等) 的 .NET 实现,最初是为了在非 Windows 上运行 .NET 应用(特别是 Xamarin 用于移动开发)。它证明了 .NET 跨平台的可行性。
  3. .NET Core (2016 - ):微软重新设计的、开源的、模块化的、高性能的、真正跨平台 (Windows, Linux, macOS) 的 .NET 实现。专注于云、微服务、控制台和 Web (ASP.NET Core) 应用。是现代化 .NET 的基础。
  4. .NET 5 (2020), .NET 6 (2021), .NET 7 (2022), .NET 8 (2023)...:这是 .NET 的未来和统一平台。它将 .NET Core 的功能、.NET Framework 的最佳特性(如 WPF/WinForms,但仅限 Windows)和 Xamarin/Mono 的移动功能整合到一个单一的、一致的平台中。它放弃了 "Core" 后缀,直接称为 ".NET",并采用基于年份的版本号 (.NET 8)。它是开源的、跨平台的,并且是微软和社区大力投入的方向。

总结来说:

.NET 是一个由微软创建并积极维护的开源、跨平台平台,它包含运行应用程序的引擎 (CLR)、庞大的标准库 (BCL)、多种编程语言支持 (C#, F#, VB.NET) 以及用于构建各种类型应用(Web、桌面、移动、云、游戏等)的工具和框架。它的核心优势在于跨平台能力、高性能、现代化的设计和强大的生态系统。

如果你是想开始学习 .NET 开发,最推荐的起点是 安装最新的 .NET SDK (如 .NET 8) 并使用 C# 语言,配合 Visual Studio Code 或 Visual Studio 作为开发工具。

posted on 2025-06-15 08:04  GKLBB  阅读(411)  评论(0)    收藏  举报