我们很高兴地宣布从今天(2023 年 11 月 14 日
)开始 .NET 8
正式发布,它是世界领先的开发平台之一的最新 LTS
版本。.NET 8 提供了数以千计的性能、稳定性和安全性改进,以及平台和工具增强功能,有助于提高开发人员的工作效率和创新速度。
在为期三天(11 月 14 日至 16 日
)的 .NET Conf 2023
上,.NET 团队
、我们的合作伙伴和 .NET 社区
将讨论 .NET 8
中的新增功能以及人们使用 .NET 构建的内容,以满足未来的需求。快来加入我们吧!
在这个版本中,.NET
重塑了我们构建可按需扩展的智能、云原生应用程序和高流量服务的方式。无论您是部署到 Linux
还是 Windows
,使用容器还是您选择的云应用程序模型,.NET 8
都可以让您更轻松地构建这些应用程序。它包括一组经过验证的库,目前 Microsoft
的许多大规模服务都在使用这些库,可以帮助您应对可观察性、弹性、可扩展性、可管理性等方面的基本挑战。
将大型语言模型(LLM
,如 OpenAI
的 GPT
)直接集成到您的 .NET
应用程序中。Blazor
使用单个强大的组件模型来处理您的所有 Web UI
需求。使用 .NET MAUI
将您的移动应用程序部署到最新版本的 iOS
和 Android
。发现新的语言增强功能,使您的 C# 12
代码更加简洁和富有表现力。
让我们看看 .NET 8 中的新增功能。
.NET 8
,https://dotnet.microsoft.com/en-us/downloadLTS
版本,https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core#release-types.NET Conf 2023
,https://www.dotnetconf.net/.NET 8
在整个堆栈中带来了数千项性能改进。默认情况下会启用一种名为动态配置文件引导优化(PGO
)的新代码生成器,它可以根据实际使用情况优化您的代码,并且可以将应用程序的性能提高最多 20%
。现在支持的 AVX-512
指令集使您能够对 512
位数据向量执行并行操作,这意味着您可以在更短的时间内处理更多的数据。原始类型(数字及其他类型)现在实现了新的可格式化和可解析接口,这使它们能够直接格式化和解析为 UTF-8
,而无需任何转码开销。
每年我们都会讨论 .NET
的性能提升。今年,我们继续致力于将 .NET
的性能推向新的高度。从 .NET 8
的最新 TechEmpower
基准测试中,我们看到 JSON API
场景改进了 18%
,ASP.NET Core Minimal API
每秒可处理近一百万个请求
。
Fortunes
场景更接近实际工作负载,包括数据库访问和服务器端 HTML
渲染。在这个测试中,我们看到 ASP.NET Core
的性能提升了 24%
,现在每秒处理的请求数超过 300K
。
.NET Aspire
是一个使用 .NET
构建弹性、可观察和可配置的云原生应用程序的堆栈。它包括一组针对云原生而增强的精选组件,默认情况下包括遥测、弹性、配置和运行状况检查。.NET Aspire
结合了先进而简单的本机开发人员体验,使您不管在刚开始还是使用了 100
天都能轻松发现、获取和配置云原生应用程序的基本依赖项。.NET Aspire
的第一个预览版现已发布。
.NET Aspire
第一个预览版,https://devblogs.microsoft.com/dotnet/introducing-dotnet-aspire-simplifying-cloud-native-development-with-dotnet-8/使用 .NET
容器打包您的应用程序比以往更轻松、更安全。每个 .NET
映像都包含一个非 root
用户,从而通过单行配置启用更安全的容器。.NET SDK
工具无需 Dockerfile
即可发布容器映像,并且默认情况下是非 root
的。由于 .NET
基础映像更小,因此可以更快地部署容器化应用程序 - 包括我们映像的新实验变体,这些变体可为本机 AOT
提供真正最小的应用程序。选择使用新的 Chiseled Ubuntu
映像变体进行更多安全强化,以进一步减少攻击面。使用 Dockerfile
或 SDK
工具,为任何架构构建应用程序和容器映像。
.NET
容器打包您的应用程序,https://devblogs.microsoft.com/dotnet/securing-containers-with-rootless/将您的 .NET
应用程序编译为本机代码,使用更少的内存并立即启动。无需等待 JIT
(即时)编译器在运行时编译代码。无需部署 JIT
编译器和IL代码。AOT
应用程序只部署应用程序所需的代码。您的应用程序现在可以在无法使用 JIT
编译器的受限环境中运行。
生成式人工智能和大型语言模型正在改变人工智能领域,使开发人员能够在其应用程序中创建独特的人工智能体验。.NET 8
通过 .NET SDK
中一流的开箱即用 AI
功能以及与多种工具的无缝集成,使您可以轻松利用 AI
。
.NET 8
为 System.Numerics
库带来了多项增强功能,以提高其与生成式 AI
工作负载的兼容性,例如集成 Tensor Primitive
。随着人工智能应用程序的兴起,涌现出了新的工具和 SDK
。我们与众多内部和外部合作伙伴合作,例如 Azure OpenAI、Azure Cognitive Search、Milvus、Qdrant
和 Microsoft Teams
,以确保 .NET
开发人员可以通过各自的 SDK
轻松访问各种 AI
模型、服务和平台。此外,开源 Semantic Kernel SDK
简化了这些 AI
组件与新的和现有应用程序的集成,以帮助您提供创新的用户体验。
现在可以使用各种示例和参考模板,展示模式和实践,以便开发人员轻松入门:
Azure AI
服务开发应用程序AI
功能,https://learn.microsoft.com/en-us/collections/1n31t57k7k6r85Azure OpenAI
,https://azure.microsoft.com/en-us/products/ai-services/openai-service/Azure Cognitive Search
,https://azure.microsoft.com/en-us/free/ai-services/?ef_id=k_b34c5d449bf4175800e738086ecc7267_k&OCID=AIDcmm5edswduu_SEM__k_b34c5d449bf4175800e738086ecc7267_k_&msclkid=b34c5d449bf4175800e738086ecc7267Milvus
,https://milvus.io/docs/v2.2.x/install-csharp.mdQdrant
,https://github.com/qdrant/qdrant-dotnetMicrosoft Teams
,https://github.com/microsoft/teams-aiSemantic Kernel
,https://learn.microsoft.com/en-us/semantic-kernel/overview/Azure AI
服务开发应用程序,https://devblogs.microsoft.com/dotnet/demystifying-retrieval-augmented-generation-with-dotnet/.NET 8
中的 Blazor
可以同时使用服务器和客户端来处理您的所有 Web UI
需求。这是全栈 Web UI
!通过专注于优化页面加载时间、可扩展性和提升用户体验的多项新增强功能,开发人员现在可以在同一应用程序中使用 Blazor Server
和 Blazor WebAssembly
,在运行时自动将用户从服务器转移到客户端。您的 .NET
代码在 WebAssembly
上的运行速度显然更快,这要归功于新的基于 “Jiterpreter”
的运行时和新的内置组件。作为 .NET 8
中增强整体身份验证、授权和身份管理的一部分,Blazor
现在支持生成完整的基于 Blazor
的身份 UI
。
Blazor Server
和 Blazor WebAssembly
,https://dotnet.microsoft.com/en-us/apps/aspnet/web-apps/blazor.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
– 提升性能、可靠性和开发人员体,https://devblogs.microsoft.com/dotnet/announcing-dotnet-maui-in-dotnet-8/.NET MAUI
的新 Visual Studio Code
扩展,https://devblogs.microsoft.com/visualstudio/announcing-the-dotnet-maui-extension-for-visual-studio-code/C# 12
让您的编码体验更加高效和愉快。现在,您可以使用简单而优雅的语法在任何类和结构中创建主构造函数。不再需要样板代码来初始化您的字段和属性。当您使用简洁且富有表现力的语法创建数组、跨度和其他集合类型时会感到高兴。对 lambda
表达式中的参数使用新的默认值。不再需要重载或空检查来处理可选参数。您甚至可以使用 using
别名指令为任何类型添加别名,而不仅仅是命名类型!
// 创建一个 list:
List<int> a = [1, 2, 3, 4, 5, 6, 7, 8];
// 创建一个 span
Span<char> b = ['a', 'b', 'c', 'd', 'e', 'f', 'h', 'i'];
// 使用扩展运算符来连接
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
。
C# 12
,https://devblogs.microsoft.com/dotnet/announcing-csharp-12/我们拥有一组出色的工具,可帮助您在开发工作流程中实现最高效率并充分利用 .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
的最快方法之一。
Visual Studio 2022 17.8
版本,https://devblogs.microsoft.com/visualstudio/visual-studio-17-8-now-available/VS Code
和 C# 开发工具包
,https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csdevkitGitHub Codespaces
模板,https://github.com/codespaces1、ASP.NET Core
简化单页应用程序(SPA
)和 Blazor
的身份,提供基于 cookie
的身份验证、预构建的 API
、令牌支持和新的身份 UI
。并通过表单绑定增强最小 API
,防伪支持防止跨站点请求伪造(XSRF/CSRF
),以及 asParameters
支持使用 Open API
定义进行参数绑定。
2、ASP.NET Core 工具
路由语法突出显示、自动完成和分析器可帮助您创建 Web API
。
3、Entity Framework Core
提供新的“复杂类型”作为值对象、原始集合以及 SQL Server
对分层数据的支持。
4、NuGet
帮助您审核项目和解决方案中的 NuGet
包是否存在任何已知的安全漏洞。
5、.NET Runtime
为 WebAssembly (WASM)
和 Android
带来新的 AOT
编译模式。
6、.NET SDK
恢复终端构建输出和生产就绪默认值。
7、WPF
支持 OpenFolderDialog
并在 RDP
中启用硬件加速
8、ARM64
通过与 ARM
工程师合作,显著增强了 ARM64
平台的功能并提高了代码质量。
9、Debugging
显示调试摘要并为常用的 .NET
类型提供简化的调试代理。
10、System.Text.Json
帮助填充只读成员、自定义未映射成员处理并改进本机 AOT 支持。
11、.NET Community Toolkit
加速构建 .NET
库和应用程序,同时确保它们精简且兼容 AOT
(包括 MVVM
源生成器!)
12、Azure
通过 Azure
的 PaaS
服务(例如适用于 Windows
和 Linux
的应用服务、静态 Web
应用、Azure Functions
和 Azure
容器应用)支持 .NET 8
。
13、F# 8
包括重大的语言更改、新的诊断、可用性改进和项目编译中的性能增强,以及对 FSharp.Core
标准库的升级。
查看我们的文档以了解其他所有内容!
为了获得 .NET 8
的最佳开发体验,我们建议您使用最新版本的 Visual Studio 和 Visual Studio Code
的 C# 开发工具包
。设置完成后,您应该执行以下操作:
下载 .NET 8
并在我们的问题跟踪器中报告问题。
了解您的应用是否受到 .NET 8
中默认行为更改的影响。
.NET 8
具有可选择的行为更改,这些更改仅在启用时影响您的应用程序。尽早了解和评估这些更改非常重要,因为它们可能会在下一个版本中成为默认设置。
使用升级助手,只需点击几下即可升级您的应用程序。
.NET 8
得到 Microsoft
的正式支持,作为长期支持(LTS
)版本,支持期限为三年。
使用我们的新 eShop
示例(现已针对 .NET 8
进行更新)遵循所有最佳编码和架构实践!
Visual Studio
,https://visualstudio.microsoft.com/downloads/Visual Studio Code C#
开发工具包,https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csdevkit
请于 2023 年 11 月 14 日至 16 日
与我们一起庆祝 .NET 8
发布!
参与并了解有关 .NET 8
和下一版本 .NET
的最新消息。
通过 freeCodeCamp C# 认证
获得荣誉徽章。
为初学者和高级 .NET
开发人员提供针对 .NET 8
更新的免费教程、视频、课程等。
查看开发人员迁移到现代 .NET
的成功案例。
阅读我们最近关于 .NET
便利性的博客系列。
最后,我们想对大家说:
微软最有价值专家是微软公司授予第三方技术专业人士的一个全球奖项。30
年来,世界各地的技术社区领导者,因其在线上和线下的技术社区中分享专业知识和经验而获得此奖项。
MVP
是经过严格挑选的专家团队,他们代表着技术最精湛且最具智慧的人,是对社区投入极大的热情并乐于助人的专家。MVP
致力于通过演讲、论坛问答、创建网站、撰写博客、分享视频、开源项目、组织会议等方式来帮助他人,并最大程度地帮助微软技术社区用户使用 Microsoft
技术。
更多详情请登录官方网站:
转载声明: