.NET(和 .NET Core)

您所在的位置:网站首页 windows的版本及特点 .NET(和 .NET Core)

.NET(和 .NET Core)

2023-10-05 07:09| 来源: 网络整理| 查看: 265

什么是 .NET? 简介和概述 项目 05/10/2023

.NET 是一个免费的跨平台开放源代码开发人员平台,用于生成多种类型的应用程序。 .NET 基于许多大规模应用在生产中使用的高性能运行时构建而来。

云应用

云原生应用 控制台应用 云中的无服务器函数 Web 应用、Web API 和微服务

跨平台客户端应用

桌面应用 游戏 移动应用

Windows 应用

Windows 桌面应用 Windows 窗体 Windows WPF 通用 Windows 平台 (UWP) Windows 服务

其他应用类型

机器学习 物联网 (IoT) 功能

借助 .NET 功能,开发人员可以高效地编写可靠的高性能代码。

异步代码 属性 反射 代码分析器 委托和 lambda 事件 异常 垃圾回收 泛型类型 LINQ(语言集成查询)。 并行编程和托管线程 类型推理 - C#、F#、Visual Basic。 类型系统 不安全代码 使用 .NET

.NET 应用和库是通过源代码和项目文件,使用 .NET CLI 或集成开发环境 (IDE)(如 Visual Studio)生成的。

下面的示例是一个最小的 .NET 应用:

项目文件:

Exe net7.0

源代码:

Console.WriteLine("Hello, World!");

可以使用 .NET CLI 生成和运行应用:

dotnet run Hello, World! 二进制分布 .NET SDK:用于开发、生成和测试应用的一组工具、库和运行时。 .NET 运行时:用于运行应用的一组运行时和库。

可从以下位置下载它:

Microsoft 下载站点。 容器。 Linux 包管理器。 免费且开源

.NET 是免费的开放源代码,并且是一个 .NET 基金会项目。 .NET 由 Microsoft 和 GitHub 上的社区在几个存储库中维护。

.NET 源和二进制文件获得了 MIT 许可证许可。 其他许可证适用于 Windows 二进制分发。

支持

Microsoft 支持 Android、Apple、Linux 和 Windows 操作系统上的 .NET。 它可以在 Arm64、x64 和 x86 体系结构上使用。 它在模拟环境中也受支持,例如 macOS Rosetta 2。

.NET 的新版本于每年 11 月发布。 奇数年份发布的 .NET 版本是长期支持 (LTS) 版本,支持期为 3 年。 偶数年份发布的版本是标准期限支持 (STS) 版本,支持期为 18 个月。 各版本的质量级别、中断性变更策略以及所有其他方面都是相同的。 有关详细信息,请参阅发布和支持。

Microsoft .NET 团队与其他组织合作,以各种方式分发和支持 .NET。

Red Hat 支持在 Red Hat Enterprise Linux (RHEL) 上使用 .NET。

Samsung 支持在 Tizen 平台上使用 .NET。

运行时

公共语言运行时 (CLR) 是生成所有 .NET 应用的基础。 运行时的基本功能包括:

垃圾回收。 内存安全和类型安全。 对编程语言的全面支持。 跨平台设计。

.NET 有时被称为“托管代码”运行时。 之所以称为“托管”,主要是因为它使用垃圾回收器进行内存管理,还因为它强制执行类型和内存安全。 CLR 虚拟化(或抽象)了各种操作系统和硬件概念,例如内存、线程和异常。

CLR 从一开始就被设计为一个跨平台运行时。 它已被移植到多个操作系统和体系结构。 通常,跨平台 .NET 代码不需要经过重新编译就能在新环境中运行。 相反,你只需安装一个不同的运行时即可运行应用。

运行时为调试器、转储和跟踪工具以及可观测性公开各种诊断服务和 API。 可观测性实现主要是围绕 OpenTelemetry 构建的,可实现灵活的应用程序监视和站点可靠性工程 (SRE)。

运行时通过结合使用 P/Invoke、值类型以及跨本机/托管代码边界对值进行 blit 的功能,提供低级别的 C 样式互操作功能。

语言

运行时旨在支持多种编程语言。 Microsoft 支持 C#、F# 和 Visual Basic 语言,这些语言是与社区协作设计的。

C# 是一种简单、现代、面向对象和类型安全的编程语言。 它源于 C 语言系列,C、C++、Java 和 JavaScript 程序员很快就可以上手使用。

F# 是一种可互操作的编程语言,用于编写简洁、可靠的高性能代码。 F# 编程是面向数据的,其中代码涉及到用函数转换数据。

Visual Basic 使用更详细语法,更接近普通人类语言。 对于不熟悉编程的人员来说,学习这种语言可能更简单。

编译

.NET 应用(比如用 C# 等高级语言编写的)被编译为中间语言 (IL)。 IL 是一种紧凑的代码格式,可在任何操作系统或体系结构上受到支持。 大多数 .NET 应用使用在多种环境下支持的 API,只需运行 .NET 运行时。

IL 需要编译为本机代码才能在 CPU 上执行,例如 Arm64 或 x64。 .NET 支持提前 (AOT) 和实时 (JIT) 编译模型。

在 Android、macOS 和 Linux 上,JIT 编译是默认的,AOT 是可选的(例如,使用 ReadyToRun)。 在 iOS 上,除非在模拟器中运行,否则 AOT 是必需的。 在 WebAssembly (Wasm) 环境中,AOT 是必需的。

JIT 的优势在于,它可以根据基础操作系统和硬件,在给定的环境中将应用(未修改)编译为 CPU 指令和调用约定。 它还可以在更高或更低的质量级别编译代码,以实现更好的启动和稳定状态吞吐量性能。

AOT 的优势是,它提供最佳的应用启动性能,并且在某些情况下,可以使部署更小。 主要缺点是,必须为每个单独的部署目标生成二进制文件(与任何其他本机代码相同)。 AOT 代码与某些反射模式不兼容。

运行时库

.NET 具有一组全面的标准类库。 这些库为许多常规用途类型和特定于工作负载的类型和实用工具功能提供实现。

下面是在 .NET 运行时库中定义的一些类型示例:

每个 .NET 类型都派生自 System.Object 类型。 基元值类型,如 System.Boolean 和 System.Int32。 集合,例如 System.Collections.Generic.List 和 System.Collections.Generic.Dictionary。 数据类型,例如 System.Data.DataSet 和 System.Data.DataTable。 网络实用程序类型,如 System.Net.Http.HttpClient。 文件和流 I/O 实用程序类型,如 和 System.IO.TextWriter。 序列化实用程序类型,例如 和 System.Xml.Serialization.XmlSerializer。 高性能类型,例如 System.Span、System.Numerics.Vector 和 System.Span。

有关详细信息,请参阅运行时库概述。

NuGet 程序包管理器

NuGet 是适用于 .NET 的包管理器。 它使开发人员能够彼此共享经过编译的二进制文件。 NuGet.org 提供了来自社区的许多常用包。

工具

.NET SDK 是一组用于开发和运行 .NET 应用程序的库和工具。 其中包括 MSBuild 生成引擎、Roslyn(C# 和 Visual Basic)编译器以及 F# 编译器。 大多数命令都是使用 dotnet 命令运行的。 CLI 工具可用于本地开发和持续集成。

Visual Studio 系列 IDE 为 .NET 和 C#、F# 和 Visual Basic 语言提供了出色的支持。

GitHub Codespaces 和 GitHub 安全功能支持 .NET。

笔记本

.NET Interactive 是一组 CLI 工具和 API,使用户能够跨 Web、markdown 和笔记本创建交互式体验。

有关详细信息,请参阅以下资源:

.NET 浏览器内教程 在计算机上将 .NET 笔记本与 Jupyter 配合使用 .NET Interactive 文档 CI/CD

MSBuild 和 .NET CLI 可与各种连续集成工具和环境一起使用,例如:

GitHub Actions GitHub Actions 和 .NET Azure DevOps CAKE for C# FAKE for F#

有关详细信息,请参阅在持续集成 (CI) 环境中使用 .NET SDK。

部署模型

可以在两种不同模式下发布 .NET 应用:

独立应用包括 .NET 运行时和依赖库。 它们可以是单文件或多文件。 应用程序的用户可以在未安装 .NET 运行时的计算机上运行该应用程序。 独立应用始终面向单个操作系统和体系结构配置。 依赖于框架的应用需要兼容版本的 .NET 运行时,通常会进行全局安装。 可以针对单个操作系统和体系结构配置发布依赖于框架的应用,也可以面向所有受支持的配置作为“可移植”应用发布。

默认情况下,.NET 应用通过本机可执行文件启动。 可执行文件既特定于操作系统,又特定于体系结构。 还可以通过 dotnet 命令启动应用。

可以在容器中部署应用。 Microsoft 为各种目标环境提供了容器映像。

.NET 历史信息

在 2002 年,Microsoft 发布了 .NET Framework,这是用于创建 Windows 应用的开发平台。 目前 .NET Framework 的版本为 4.8,并且仍由 Microsoft 支持。

2014 年,Microsoft 推出了 .NET Core 作为 .NET Framework 的跨平台开源后续产品。 这种新的 .NET 实现在版本 3.1 中一直保持 .NET Core 的名称。 .NET Core 3.1 之后的下一个版本被命名为 .NET 5。

新的 .NET 版本将继续每年发布,每一个主版本号都会更高。 它们包括重要的新功能,并且通常启用新的方案。

.NET 生态系统

.NET 有多个变体,每个变体都支持不同类型的应用。 有多个变体的原因一部分是历史信息相关、一部分是技术相关。

.NET 实现(历史顺序):

.NET Framework - 它提供对 Windows 和 Windows Server 的广泛功能的访问权限。 此外,它还广泛用于基于 Windows 的云计算。 是原始 .NET。 Mono - 一个跨平台 .NET Framework 实现。 原始社区和开放源代码 .NET。 用于 Android、iOS 和 Wasm 应用。 .NET (Core) - .NET 的一个跨平台开放源代码实现,已针对云时代进行了反思,同时与 .NET Framework 保持极大的兼容。 用于 Linux、macOS 和 Windows 应用。 后续步骤 选择 .NET 教程 在浏览器中试用 .NET C# 导览 F# 导览


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3