前言
从今天开始推出 .NET 8,这是世界领先的开发平台之一的最新 LTS 版本。.NET 8 提供了数以千计的性能、稳定性和安全性改进,以及平台和工具增强功能,有助于提高开发人员的工作效率和创新速度。
在为期三天的活动 .NET Conf 2023(11 月 14 日至 16 日)上,.NET 团队、我们的合作伙伴和 .NET 社区将讨论 .NET 8 中的新增功能,以及使用 .NET 构建的内容,以满足更多的需求。
在此版本中,.NET 重塑了我们构建按需扩展的智能云原生应用程序和高流量服务的方式。无论是部署到 Linux 还是 Windows,使用容器还是所选的云应用模型,.NET 8 都可以更轻松地构建这些应用。它包括一组经过验证的库,目前 Microsoft 的许多大规模服务都在使用这些库来帮助您应对可观测性、弹性、可伸缩性、可管理性等方面的基本挑战。
将 OpenAI 的 GPT 等大型语言模型 (LLM) 直接集成到 .NET 应用中。使用单个功能强大的组件模型来处理 Blazor 的所有 Web UI 需求。使用 .NET MAUI 将移动应用程序部署到最新版本的 iOS 和 Android。发现新的语言增强功能,使你的代码在 C# 12 中更加简洁和富有表现力。让我们看看 .NET 8 中的新增功能。
无与伦比的性能 – 体验迄今为止最快的 .NET
.NET 8 在整个堆栈中提供了数千项性能改进。默认情况下,会启用一个名为动态配置文件引导优化 (PGO) 的新代码生成器,该生成器会根据实际使用情况优化代码,并且可以将应用的性能提高多达 20%。现在支持的 AVX-512 指令集使您能够对 512 位数据向量执行并行运算,这意味着您可以在更短的时间内处理更多的数据。基元类型(数值和更高类型)现在实现了一个新的格式化和可解析接口,使它们能够直接格式化和解析为 UTF-8,而不会产生任何转码开销。
每年,我们都会讨论 .NET 的性能提升。今年,我们将继续努力将 .NET 的性能提升到新的高度。从最新的 TechEmpower 对 .NET 8 的基准测试来看,我们看到 JSON API 方案改进了 18%,使用 ASP.NET Core Minimal API 达到了每秒近 100 万个请求。
Fortunes 方案更接近实际工作负载,包括数据库访问和服务器端 HTML 呈现。在这次测试中,我们看到了 24% 的更大改进,现在使用 ASP.NET Core 时每秒超过 300K 个请求。
.NET Aspire – 一个自以为是的堆栈,用于构建可观察的生产就绪型云原生应用程序
.NET Aspire 是一个堆栈,用于使用 .NET 构建可复原、可观察和可配置的云原生应用程序。它包括一组针对云原生增强的精选组件,默认情况下包括遥测、复原能力、配置和运行状况检查。结合复杂但简单的本地开发人员体验,.NET Aspire 可以在第 1 天和第 100 天轻松发现、获取和配置云原生应用程序的基本依赖项。.NET Aspire 的第一个预览版现已推出。
.NET 8 容器增强功能 - 更安全、更紧凑、更高效
使用 .NET 比以往任何时候都更轻松、更安全地使用容器打包您的应用程序。每个 .NET 映像都包含一个非 root 用户,从而通过单行配置实现更安全的容器。.NET SDK 工具发布没有 Dockerfile 的容器映像,默认情况下是非根映像。
由于 .NET 基础映像较小,因此可以更快地部署容器化应用,包括映像的新实验变体,这些变体为本机 AOT 提供真正最小的应用程序大小。选择使用新的 Chiseled Ubuntu 映像变体进行更多安全强化,以进一步减少攻击面。使用 Dockerfile 或 SDK 工具,为任何架构构建应用和容器映像。
原生 AoT – 迈向更高密度可持续计算的旅程
将 .NET 应用编译为使用较少内存并立即启动的本机代码。无需等待 JIT(实时)编译器在运行时编译代码。无需部署 JIT 编译器和 IL 代码。AOT 应用仅部署应用所需的代码。现在,你的应用可以在不允许使用 JIT 编译器的受限环境中运行。
人工智能 – 将 AI 融入 .NET 应用程序
生成式 AI 和大型语言模型正在改变 AI 领域,使开发人员能够在其应用程序中创建独特的 AI 驱动体验。.NET 8 使你能够通过 .NET SDK 中一流的开箱即用 AI 功能以及与多个工具的无缝集成轻松利用 AI。
.NET 8 为库带来了多项增强功能,以提高其与生成式 AI 工作负载的兼容性,例如集成 Tensor 基元。随着支持 AI 的应用程序的兴起,新的工具和 SDK 应运而生。我们与众多内部和外部合作伙伴合作,例如 Azure OpenAI、Azure 认知搜索、Milvus、Qdrant 和 Microsoft Teams,以确保 .NET 开发人员可以通过各自的 SDK 轻松访问各种 AI 模型、服务和平台。此外,开源语义内核SDK 简化了这些 AI 组件与新应用和现有应用的集成,帮助您提供创新的用户体验。
System.Numerics
现在提供了各种示例和参考模板,展示了模式和实践,使开发人员可以轻松入门:
客户聊天机器人
检索增强生成
使用 Azure AI 服务开发应用
Blazor – 使用 .NET 生成全栈 Web 应用程序
.NET 8 中的 Blazor 可以同时使用服务器和客户端来处理所有 Web UI 需求。这是全栈 Web UI!借助专注于优化页面加载时间、可伸缩性和提升用户体验的几项新增强功能,开发人员现在可以在同一应用中使用 Blazor Server 和 Blazor WebAssembly,从而在运行时自动将用户从服务器转移到客户端。由于新的基于「Jiterpreter」的运行时和新的内置组件,您的 .NET 代码在 WebAssembly 上的运行速度明显加快。作为增强 .NET 8 中整体身份验证、授权和标识管理的一部分,Blazor 现在支持生成基于 Blazor 的完整标识 UI。
.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 元素以及特定于平台的行为(例如桌面交互、添加更好的单击处理、键盘侦听器等)进行了大量质量改进。
C# 12 功能 – 简化语法,提高开发人员的工作效率
C# 12 使你的编码体验更加高效和愉快。现在,您可以使用简单优雅的语法在任何类和结构中创建主构造函数。无需再使用样板代码来初始化字段和属性。使用简洁而富有表现力的语法创建数组、跨度和其他集合类型时,您会感到高兴。对 lambda 表达式中的参数使用新的默认值。不再需要重载或 null 检查来
处理可选参数。您甚至可以使用 alias 指令为任何类型添加别名,而不仅仅是命名类型!
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 中的其他功能:
ASP.NET 核心。 简化单页应用程序 (SPA) 和 Blazor 的标识,提供基于 Cookie 的身份验证、预生成的 API、令牌支持和新的标识 UI。并通过表单绑定、防伪支持(以防止跨站点请求伪造 (XSRF/CSRF))以及
asParameters
支持(用于使用 Open API 定义进行参数绑定)来增强最小的 API
ASP.NET 核心工具。 路由语法突出显示、自动完成和分析器,以帮助你创建 Web API。
实体框架核心。 提供新的「复杂类型」作为值对象、基元集合和对分层数据的 SQL Server 支持。
NuGet。 帮助你审核项目和解决方案中的 NuGet 包是否存在任何已知的安全漏洞。
.NET 运行时。 为 WebAssembly (WASM) 和 Android 带来了新的 AOT 编译模式。
.NET SDK。 恢复终端构建输出和生产就绪默认值。
WPF。 支持 OpenFolderDialog 并在 RDP 中启用硬件加速
ARM64 中。 通过与 ARM 工程师合作,为 ARM64 平台提供显著的功能增强和改进的代码质量。
调试。 显示调试摘要,并为常用的 .NET 类型提供简化的调试代理。
System.Text.Json. 帮助填充只读成员,自定义未映射的成员处理,并改进本机 AOT 支持。
.NET 社区工具包。 加速构建 .NET 库和应用程序,同时确保它们与 trim 和 AOT 兼容(包括 MVVM 源代码生成器!
天蓝色。 支持 .NET 8 和 Azure 的 PaaS 服务,例如适用于 Windows 和 Linux 的应用服务、静态 Web 应用、Azure Functions 和 Azure 容器应用。
F# 8. 包括重大的语言更改、新的诊断、可用性的改进和项目编译中的性能增强,以及对 FSharp.Core 标准库的升级。
.NET 8 中的新增功能。 查看我们的文档,了解其他所有内容!
.NET 8 入门
为了获得 .NET 8 的最佳开发体验,建议使用最新版本的 Visual Studio 和 Visual Studio Code 的 C# 开发工具包。设置完成后,您应该执行以下操作:
试用新功能和 API。 下载 .NET 8 并在问题跟踪器中报告问题。
测试当前应用的兼容性。了解你的应用是否受到 .NET 8 中默认行为更改的影响。
使用选择加入更改来测试您的应用。.NET 8 具有选择加入行为更改,这些更改仅在启用时影响应用。尽早了解和评估这些更改非常重要,因为它们可能会在下一个版本中成为默认更改。
使用升级助手更新应用。 使用升级助手,只需单击几下即可升级应用。
知道你得到了支持。.NET 8 作为长期支持 (LTS) 版本由 Microsoft 正式支持,将支持三年。
奖励:适用于 .NET 8 的 eShop 示例。使用我们的新 eShop 示例遵循所有最佳编码和体系结构实践,该示例现已针对 .NET 8 进行了更新!
庆祝.NET 8
.NET 会议 2023。加入我们 2023 年 11 月 14 日至 16 日,庆祝 .NET 8 发布!
.NET 的下一步是什么? 参与并了解有关 .NET 8 和下一版本的 .NET 的最新消息。
获得 C# 认证。通过 freeCodeCamp C# 认证获得荣誉徽章。
了解 .NET 8。从初学者到高级 .NET 开发人员的免费教程、视频、课程等。全部针对 .NET 8 进行了更新!
请参阅开发人员案例。查看开发人员迁移到新式 .NET 的成功案例。
了解为什么选择 .NET?。通读我们最近的博客系列,了解 .NET 的便利性。
原文:https://devblogs.microsoft.com/dotnet/announcing-dotnet-8/
转自
:
寒冰
链接:mp.weixin.qq.com/s/imJfL1wHBoIOhfNfvn904g
- EOF -