什么是 .NET?

已完成

当某人使用 术语 .NET 时,他们的含义在很大程度上取决于上下文。 在本单元中,你将通过将其视为生态系统来了解 .NET。 换句话说,.NET 是许多部分和人员集合,共同创建强大的环境来生成应用程序。

.NET 是用于应用程序开发的生态系统

术语 生态系统 描述了应用程序开发环境和围绕它的社区的多个方面。 这些方面结合在一起,创建一个令人信服的理由来投资学习 .NET 和构建 .NET 应用程序。

使用 .NET 语言和编译器在 .NET 运行时中运行应用程序

软件开发人员使用 .NET 语言(如 C# 和 F#)编写源代码。 他们编写的每行代码都表示计算机在程序运行时应执行的指令或命令。

在软件开发人员可以运行其代码之前,必须先对其进行编译。 .NET 编译器是将源代码(在任何受支持的编程语言中)转换为称为中间语言(IL)的可移植语言的程序。 .NET 编译器将 IL 代码保存到名为 .NET 程序集的文件中。 通过将代码编译为中间格式,无论在 Windows 或 Linux 上还是在 32 位或 64 位计算机硬件上运行代码,都可以使用相同的代码库。

.NET 运行时是已编译的 .NET 程序集的执行环境。 换句话说,NET 运行时是在主机操作系统上运行时负责执行和管理应用程序的系统。 我们马上会详细讨论 .NET 运行时的功能。

幸运的是,作为刚刚开始使用 .NET 的软件开发人员,无需详细了解这些机制的工作原理。 通过体验,你可以更充分地理解和欣赏 .NET 语言、编译器和运行时的基础功能。

小窍门

有时人们认为 C# 编程语言 .NET。 但是,C# 和 .NET 是不同的。 C# 是一种编程语言语法。 作为语法的一部分,可以引用和调用 .NET 代码库或 程序集中定义的方法。 接下来,使用随 .NET SDK 一起安装的 C# 编译器从 C# 代码创建 .NET 程序集。 然后,.NET 运行时运行 .NET 程序集。 这些区别是了解 .NET 和 C# 的详细信息时的重要概念。

使用 .NET 应用程序框架和库利用预生成功能

所有软件都内置于层中,这意味着软件在计算机上的各种抽象级别上运行:

  • 在最低级别,软件直接与计算机的硬件通信。 它控制主板、处理器、内存和硬盘驱动器上的数据流。
  • 在下一级别,软件允许最终用户通过操作系统提供指令。
  • 在下一级别,.NET 等软件提供了开发和运行应用程序的方法。
  • 在下一级别,应用程序框架和功能库允许你快速生成丰富的应用程序,其工作量比旧的开发方法少。

代码库将特定用途的功能封装到单个程序集中。 对于 .NET,有数千个库可用。 这些库可以是第一方或第三方,可以是商业或开放源代码。 这些库提供了大量可在应用程序中使用的功能。 只需引用这些程序集并调用所需的方法。 作为开发人员,你可以使用这种方法在其他软件开发人员的工作之上生成应用程序。 你节省时间和精力,因为你不必自己构建和维护每个功能。

应用程序框架结合了多个相关库,以及初学者项目、文件模板、代码生成器和其他工具。 可以使用这些资源针对特定目的生成整个应用程序。 这些应用程序框架称为 应用模型。 例如,.NET 应用程序框架可用于常用的应用模型,例如 Web 开发、桌面和移动开发以及游戏开发。

可以直接安装 .NET SDK,也可以安装 Visual Studio 2022。 .NET SDK 预安装一组名为 基类库的综合库和应用程序框架。 无论要构建的平台或应用模型如何,都可以在程序中使用此代码库。

对于其他第三方库,开发人员使用 NuGet 等包管理器从包存储库(如 NuGet Gallery)中查找和集成代码库。

什么是主要应用模型?

你可能想知道哪些框架支持哪些应用模型。 使用下表将应用模型映射到 .NET Framework。

应用模型 框架 注释
网络 ASP.NET Core 用于构建服务器端逻辑的框架。
网络 ASP.NET Core MVC 用于为网页或 Web API 构建服务器端逻辑的框架。
网络 ASP.NET Core Razor 页面 用于生成服务器生成的 HTML 的框架。
Web 客户端 Blazor Blazor 是 ASP.NET Core 的一部分。 它的两种模式允许通过套接字将文档对象模型(DOM)作为一个运行服务器端代码的通信工具,或者通过 WebAssembly 实现在浏览器中运行已编译的 C#。
桌面 .NET for Mac 允许 .NET 开发人员使用本机 UI 和 API 访问生成适用于 Mac 设备的应用。
桌面 WinForms 用于构建“战斗舰灰色”Windows 样式应用程序的框架。
桌面 Windows Presentation Foundation (WPF) 用于构建符合不同外形规格的动态桌面应用程序的框架。 WPF 允许表单元素使用丰富的动画库来实现移动、淡化、滑行和其他效果。
手机 适用于 Android 的 .NET 允许 .NET 开发人员为 Android 设备开发具有原生 UI 和 API 访问权限的应用。
手机 适用于 iOS 的 .NET 允许 .NET 开发人员使用本机 UI 和 API 访问权限生成适用于 iOS 和 iPadOS 的应用。
多平台应用用户界面 .NET MAUI 构建适用于 iOS、Android、Mac 和 Windows 应用的首选方法是利用单个共享代码库,实现本机 UI 并访问本机 API。

.NET 还支持常用的第三方和开源游戏开发环境和 Unity 等引擎。

使用 .NET 工具生成 .NET 应用

软件开发人员依赖工具编写代码、添加对代码库的引用、编译代码和调试代码。 本部分介绍用于生成 .NET 应用程序的多个 .NET 工具。

Visual Studio 2022 是Microsoft旗舰开发环境。 数百万开发人员使用它来生成 .NET 应用程序。 图形用户界面(包括菜单、窗口、视觉设计器、对话框和向导)指导开发人员完成应用程序开发过程。 Visual Studio 2022 有三个版本:社区版、专业版和企业版。 每个版本都包含不同的工具,并出于不同目的获得许可。

Visual Studio Code 是支持多种编程语言的Microsoft旗舰代码编辑器,在 Windows、Mac 和 Linux 上受支持。 C# 开发工具包扩展 为 Visual Studio Code 带来了改进的编辑器优先 C# 开发,并增强了使用 .NET 项目的体验,并支持解决方案资源管理器、项目系统、测试增强功能和资源管理器、AI 辅助开发,以及一种功能强大的语言服务,适用于代码导航、重构、语义感知等最佳 C# 语言功能。

喜欢命令行工作流的开发人员可以使用 Visual Studio Code (世界上最常用的代码编辑器)和 .NET 命令行接口(.NET CLI)的组合。

此外,还可以从许多高级 .NET 用例的第一方和第三方工具中进行选择。 选项包括代码探查器、单元测试运行程序和代码覆盖率分析器。

你可以找到适用于不同场景的其他 .NET 工具。 例如,在本模块的后面部分,你将使用 Try .NET。 使用此基于浏览器的界面编写简单的应用程序,以帮助你了解 C# 编程语言。

在文档和教程中查找解决方案和答案

Microsoft主动提供一组丰富的文档、教程和培训。 你可以找到常用形式的学习材料,以帮助你在学习过程中的每一步。

下表提供了一些可能想要添加书签并返回的出色资源。

资源 目的
Microsoft Learn 提供快速入门教程和最终参考文档。
模式和做法 帮助开发人员和软件架构师找到常见应用程序开发需求的解决方案。 资源通常超越编写代码的低级别细节,并深入探讨选择支持看似无限可缩放体系结构的产品和服务。
.NET 视频 提供 .NET 团队的视频教程。 这些视频向开发人员讲解常见使用场景。
开始使用 C# 提供动手实验室,通过结合指令、练习、媒体、知识检查和跟踪进度的方法,帮助你构建技能。

了解并与 .NET 社区共享解决方案

.NET生态系统不仅包括语言、库和工具,还扩展到人们的交流与合作。 你可以通过向社区学习和贡献来自由互动。

  • 了解:.NET 社区成员主持现场会议和实时在线活动。 他们构建开源软件,参与问答论坛,并录制视频教程。 他们写书籍和博客文章,帮助你学习并得到解脱,当你不确定接下来做什么。
  • 参与:.NET 是 GitHub 上的开放源代码。 .NET Foundation 管理此存储库中的项目。 这个独立组织致力于围绕 .NET 开发平台发展受信任的、商业友好的开源生态系统。 在此存储库中,可以共享独特的视角和语音,以帮助他人学习。

.NET 生态系统如何与其他生态系统进行比较?

如果你熟悉软件开发世界,你可能想知道 .NET 生态系统与其他生态系统的对比。 坦率地说,其他生态系统可以就本单元迄今发表的一些或许多声明提出类似的声明。

然而,.NET 最独特的功能之一是,其持续开发和支持不仅来自主要的技术领导者,而且来自社区。 .NET 的重要部分是通过开源手段开发的。 社区投入和贡献都受到欢迎和鼓励。 事实上,87%的参与者不在Microsoft之外。 根据超过 100,000 个已接受的社区意见,微软通过功能增强、漏洞修复和性能改进积极推动平台发展。

此外,.NET 生态系统具有势头:

  • .NET 开发人员数量超过 500 万!
  • Stack Overflow 投票的结果一直显示 .NET Core 和 .NET 是最受欢迎的框架。
  • 学生喜欢 .NET;40% 的新学 .NET 的开发人员是学生。
  • 适用于 .NET 和 ASP.NET 的 GitHub 存储库在前 30 个最高速度的开源软件 (OSS) 项目中排名。
  • GitHub 列出了前五种编程语言中的 C#,根据 2020 TIOBE 编程社区索引,该语言越来越受欢迎。
  • 根据 TechEmpower 基准,.NET 拥有地球上最快的 Web 框架。 一组独立的开源 Web 性能基准,用于测量数十种语言和应用程序框架。

.NET 的简要历史记录

原始 .NET Framework 于 2002 年初首次发布。 此后,许多更新和更多功能都随之而来。 经过多年的增强和新功能,原始 .NET Framework(尤其是关键代码库)显著增长。

2002年之后,微软致力于开发一个具有跨平台兼容性的.NET版本。 目标是允许开发人员编写一个基本代码,并跨 macOS、Linux 和 Windows作系统使用它。

通过这些努力,2014 年左右引入了 .NET Core。 Microsoft维护原始 .NET Framework,但为 .NET Core 保留新功能和改进。 核心 后来从名称中删除。 下一个主要版本是 .NET 5、.NET 6、.NET 7、.NET 8 等。 版本通常在 11 月发布。

为什么 .NET 历史记录值得一提? 因为你可能会找到面向原始 .NET Framework 的博客文章、视频和源代码。 在某些情况下,说明或代码仍然有效,但在其他情况下,可能需要进行调整以适应新的 .NET。