November 28th, 2023

官宣.NET 8的发布

Amy Peng
Partner Tech Advisor

本篇翻译于Gaurav Seth的Announcing .NET 8 – .NET Blog (microsoft.com)

我们很高兴地宣布从今天开始 .NET 8正式发布,它是世界领先的开发平台之一的最新 LTS 版本。.NET 8 提供了数以千计的性能、稳定性和安全性改进,以及平台和工具增强功能,有助于提高开发人员的工作效率和创新速度。在为期三天(11 14 日至 16 日)的 .NET Conf 2023 上,.NET 团队、我们的合作伙伴和 .NET 社区将讨论 .NET 8 中的新增功能以及人们使用 .NET 构建的内容以满足未来的需求。快来加入我们吧 

.NET 8 is now available

在这个版本中,.NET 重塑了我们构建可按需扩展的智能云原生应用程序和高流量服务的方式。无论您是部署到 Linux 还是 Windows,使用容器还是您选择的云应用程序模型,.NET 8 都可以让您更轻松地构建这些应用程序。它包括一组经过验证的库,目前 Microsoft 的许多大规模服务都在使用这些库,可以帮助您应对可观察性、弹性、可扩展性、可管理性等方面的基本挑战。 

.NET 8 - Cloud Native Features

 

将大型语言模型 (LLM)(OpenAI GPT) 直接集成到您的 .NET 应用程序中。Blazor 使用单个强大的组件模型来处理您的所有 Web UI 需求。使用 .NET MAUI 将您的移动应用程序部署到最新版本的 iOS Android。发现新的语言增强功能,使您的 C# 12 代码更加简洁和富有表现力。 

让我们看看 .NET 8 中的新增功能。 

无与伦比的性能体验迄今为止最快的 .NET 

.NET 8在整个堆栈中带来了数千项性能改进默认情况下会启用一种名为动态配置文件引导优化 (PGO) 的新代码生成器,它可以根据实际使用情况优化您的代码,并且可以将应用程序的性能提高最多20%。现在支持的 AVX-512 指令集使您能够对 512 位数据向量执行并行操作,这意味着您可以在更短的时间内处理更多的数据。原始类型(数字及其他类型)现在实现了新的可格式化和可解析接口,这使它们能够直接格式化和解析为 UTF-8,而无需任何转码开销。 

每年我们都会讨论 .NET 的性能提升。今年,我们继续致力于将 .NET 的性能推向新的高度。从 .NET 8 的最新 TechEmpower 基准测试中,我们看到 JSON API 场景改进了 18%,ASP.NET Core Minimal API 每秒可处理近一百万个请求。 

TechEmpower requests per second (RPS)

Fortunes 场景更接近实际工作负载,包括数据库访问和服务器端 HTML 渲染。在这个测试中,我们看到 ASP.NET Core 的性能提升了 24%,现在每秒处理的请求数超过 300K。 

.NET Aspire – 一个用于构建可观察、生产就绪的云原生应用程序的固执己见的堆栈 

.NET Aspire 是一个使用 .NET 构建弹性、可观察和可配置的云原生应用程序的堆栈。它包括一组针对云原生而增强的精选组件,默认情况下包括遥测、弹性、配置和运行状况检查。.NET Aspire结合了先进而简单的本机开发人员体验,使您不管在刚开始还是使用了 100 天都能轻松发现、获取和配置云原生应用程序的基本依赖项。.NET Aspire 第一个预览版现已发布 

.NET Aspire

 

.NET 8 容器增强功能更安全、更紧凑、更高效 

使用.NET容器打包您的应用程序比以往更轻松、更安全。每个 .NET 映像都包含一个非 root 用户,从而通过单行配置启用更安全的容器。.NET SDK 工具无需 Dockerfile 即可发布容器映像,并且默认情况下是非 root 的。由于 .NET 基础映像更小,因此可以更快地部署容器化应用程序包括我们映像的新实验变体,这些变体可为本机 AOT 提供真正最小的应用程序。选择使用新的 Chiseled Ubuntu 映像变体进行更多安全强化,以进一步减少攻击面。使用 Dockerfile SDK 工具,为任何架构构建应用程序和容器映像。 

Modern containers

本机 AoT – 迈向更高密度可持续计算的旅程 

将您的 .NET 应用程序编译为本机代码,使用更少的内存并立即启动。无需等待 JIT(即时)编译器在运行时编译代码。无需部署JIT编译器和IL代码。AOT 应用程序只部署应用程序所需的代码。您的应用程序现在可以在无法使用 JIT 编译器的受限环境中运行。 

Before and After AOT

人工智能 AI 融入您的 .NET 应用程序 

生成式人工智能和大型语言模型正在改变人工智能领域,使开发人员能够在其应用程序中创建独特的人工智能体验。.NET 8通过 .NET SDK 中一流的开箱即用 AI 功能以及与多种工具的无缝集成,使您可以轻松利用 AI。 

.NET 8 System.Numerics 库带来了多项增强功能,以提高其与生成式 AI 工作负载的兼容性,例如集成 Tensor Primitive随着人工智能应用程序的兴起,涌现出了新的工具和 SDK 。我们与众多内部和外部合作伙伴合作,例如 Azure OpenAIAzure Cognitive SearchMilvusQdrant Microsoft Teams,以确保 .NET 开发人员可以通过各自的 SDK 轻松访问各种 AI 模型、服务和平台。此外,开源Semantic Kernel SDK 简化了这些 AI 组件与新的和现有应用程序的集成,以帮助您提供创新的用户体验。 

现在可以使用各种示例和参考模板,展示模式和实践,以便开发人员轻松入门: 

Infuse AI dotnet apps

Blazor – 使用 .NET 构建全栈 Web 应用程序 

.NET 8 中的 Blazor 可以同时使用服务器和客户端来处理您的所有 Web UI 需求。这是全栈 Web UI!通过专注于优化页面加载时间、可扩展性和提升用户体验的多项新增强功能,开发人员现在可以在同一应用程序中使用Blazor Server Blazor WebAssembly,在运行时自动将用户从服务器转移到客户端您的 .NET 代码在 WebAssembly 上的运行速度显然更快,这要归功于新的基于“Jiterpreter”的运行时和新的内置组件。作为.NET 8 增强整体身份验证、授权和身份管理的一部分,Blazor 现在支持生成完整的基于 Blazor 的身份 UI。 

Full stack Blazor

.NET MAUI – 提升性能、可靠性和开发人员体验 

.NET MAUI 为您提供单一项目系统和单一代码库来构建 WinUI、Mac Catalyst、iOS Android 应用程序。本机 AOT(实验性)现已在 iOS 等平台上支持。适用于 .NET MAUI Visual Studio Code 扩展为您提供了开发跨平台 .NET 移动和桌面应用程序所需的工具。现在支持 Xcode 15 Android API 34,允许您针对最新版本的 iOS Android进行开发。在性能、控件和 UI 元素以及特定于平台的行为方面进行了大量的质量改进,例如桌面交互添加了更好的单击处理、键盘侦听器等。 

.NET MAUI Visual Studio Code Extension

C# 12 功能简化语法以提高开发人员的工作效率 

C# 12 让您的编码体验更加高效和愉快。现在,您可以使用简单而优雅的语法在任何类和结构中创建主构造函数。不再需要样板代码来初始化您的字段和属性。当您使用简洁且富有表现力的语法创建数组、跨度和其他集合类型时会感到高兴。对 lambda 表达式中的参数使用新的默认值。不再需要重载或空检查来处理可选参数。您甚至可以使用using别名 指令为任何类型添加别名,而不仅仅是命名类型! 

// Create a list:
List<int> a = [1, 2, 3, 4, 5, 6, 7, 8];

// Create a span
Span<char> b  = ['a', 'b', 'c', 'd', 'e', 'f', 'h', 'i'];

// Use the spread operator to concatenate
int[] array1 = [1, 2, 3];
int[] array2 = [4, 5, 6];
int[] array3 = [7, 8, 9];
int[] fullArray = [..array1, ..array2, ..array3]; // contents is [1, 2, 3, 4, 5, 6, 7, 8, 9]

有关 C# 最新版本的更多信息,请参阅宣布 C# 12 

Visual Studio 系列工具支持 .NET 8 

我们拥有一组出色的工具,可帮助您在开发工作流程中实现最高效率并充分利用 .NET 8。Visual Studio 2022 17.8 版本 .NET 8 一起发布,支持 .NET 8、C# 12 语言增强功能以​​及各种新的生产力功能。如果您正在学习和想要快速熟悉运行时,VS Code C# 开发工具包是开始使用 .NET 8 的好方法,并且可以在 Linux、macOS GitHub Codespaces 中使用。适用于 .NET 的新GitHub Codespaces 模板附带 .NET SDK 和一组配置的扩展,是开始使用 .NET 8 的最快方法之一。 

.NET 8 中的附加功能: 

.NET 8 入门 

为了获得 .NET 8 的最佳开发体验,我们建议您使用最新版本的Visual StudioVisual Studio Code C# 开发工具包。设置完成后,您应该执行以下操作: 

庆祝 .NET 8发布 

.NET❤️我们的社区 

最后,我们想对大家说声: 

https://dotnet.microsoft.com/thanks/8.0

Author

Amy Peng
Partner Tech Advisor

Amy Peng is a Partner Tech Advisor on the Dev Community Team focused on .NET. Her responsibility is providing technical support on the forum and promote .NET to all the community members.

0 comments