Microsoft在今天发布了 .NET 8.0 LTS版本,这个版本更新了以下内容
- 性能提升
- 云原生支持,发布了.NET Aspire提供服务注册发现,可观测性,云原生部署支持等特性
- 对于AI研发的支持,可以很方便的接入OpenAI的API,加快dotnet语言架构下AI产品的问世
- Blazor升级:使用单个强大的组件模型来处理Blazor的所有Web UI需求
- MAUI更新:使用.NET MAUI将您的移动的应用程序部署到最新版本的iOS和Android
- C#12语言特性更新
迄今为止最快的.NET
.NET 8在整个堆栈中带来了数千项性能改进。一个名为动态配置文件引导优化(PGO)的新代码生成器可以根据实际使用情况优化您的代码,默认情况下可以将应用的性能提高20%。现在支持的AVX-512指令集使您能够对512位数据向量执行并行操作,这意味着您可以在更短的时间内处理更多的数据。原始类型(数值及以上)现在实现了一个新的可格式化和可解析接口,使它们能够直接格式化和解析为UTF-8,而无需任何代码转换开销。
.NET Aspire -一个自定义的堆栈,用于构建可观察的,生产就绪的云原生应用程序微服务框架组件
.NET Aspire是一个堆栈,用于使用. NET构建弹性,可观察和可配置的云原生应用程序。它包括一组针对云原生增强的策划组件,默认情况下包括遥测,弹性,配置和健康检查。为复杂的服务提供简单的本地开发人员体验,.NET Aspire可以在轻松发现、获取和配置云原生应用程序的基本依赖项。今天发布了.NET Aspire的第一个预览版。
.NET 8容器增强功能-更安全,更紧凑,更高效
使用容器打包您的应用程序比以往任何时候都更容易,更安全。每个.NET映像都包含一个非root用户,从而通过一行配置实现更安全的容器。.NET SDK工具发布的容器镜像没有Dockerfile,默认情况下是非root。由于更小的.NET基础映像-包括我们映像的新实验变体,可为原生AOT提供真正最小的应用程序大小,因此可以更快地部署容器化应用程序。选择使用新的Chiseled Ubuntu映像变体进行更多的安全加固,以进一步减少您的攻击面。使用Dockerfiles或SDK工具,为任何架构构建应用和容器镜像。
原生AoT -迈向更高密度可持续计算之旅
将.NET应用程序编译为使用更少内存并立即启动的本机代码。无需等待JIT(即时)编译器在运行时编译代码。无需部署JIT编译器和IL代码。AOT应用仅部署应用所需的代码。您的应用现在可以在不允许JIT编译器的受限环境中运行。
人工智能-将AI融入.NET应用程序
生成式人工智能和大型语言模型正在改变人工智能领域,为开发人员提供在应用程序中创建独特的人工智能体验的能力。.NET 8通过.NET SDK中一流的开箱即用AI功能以及与多个工具的无缝集成,使您可以轻松利用AI。
各种示例和参考模板,展示模式和实践,现在可以让开发人员轻松入门:
- Customer Chatbot 客户聊天机器人
- Retrieval Augmented Generation检索增强生成
- Developing Apps using Azure AI services使用Azure AI服务开发应用
Blazor -使用.NET构建全栈Web应用程序
.NET 8中的Blazor可以同时使用服务器和客户端来处理所有的Web UI需求。这是全栈Web UI!通过几项新的增强功能,专注于优化页面加载时间,可扩展性和提升用户体验,开发人员现在可以在同一个应用程序中使用Blazor Server和Blazor WebAssembly,在运行时自动将用户从服务器转移到客户端。由于新的基于“Jiterpreter”的运行时和新的内置组件,您的.NET代码在WebAssembly上运行得更快。作为增强.NET 8中整体身份验证、授权和身份管理的一部分,Blazor现在支持生成完整的基于Blazor的Identity UI。
.NET MAUI -提升性能、可靠性和开发人员体验
..NET MAUI为您提供了一个单一的项目系统和单一的代码库来构建WinUI,Mac Catalyst,iOS和Android应用程序。原生AOT(实验性)现在支持针对类iOS平台。针对.NET MAUI的新Visual Studio代码扩展为您提供了开发跨平台.NET移动的和桌面应用程序所需的工具。现在支持Xcode 15和Android API 34,允许您针对最新版本的iOS和Android。在性能、控件和UI元素以及特定于平台的行为方面进行了大量的质量改进,例如桌面交互添加了更好的点击处理、键盘侦听器等。
C# 12特性-简化语法,提高开发人员的生产力
C# 12让你的编程体验更高效、更愉快。现在,您可以使用简单而优雅的语法在任何类和结构中创建主构造函数。没有更多的样板代码来初始化您的字段和属性。使用简洁而富有表现力的语法创建数组、span和其他集合类型时,您会感到非常高兴。在lambda表达式中为参数使用新的默认值。没有更多的重载或空检查来处理可选参数。你甚至可以使用 using
alias指令来给任何类型别名,而不仅仅是命名类型!
Collection expressions 集合表达式
// 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]
在 Announcing C# 12中查看有关C#最新版本的更多信息。
.NET 8 support across Visual Studio family of tools
在最新的VS2017及以上可以使用.NET 8和C#12的特性
.NET 8更新的附加功能:
- ASP.NET Core. Streamlines identity for single-page applications (SPA) and Blazor providing cookie-based authentication, pre-built APIs, token support, and a new identity UI. and enhances minimal APIs with form-binding, antiforgery support to protect against cross-site request forgery (XSRF/CSRF), and
asParameters
support for parameter-binding with Open API definitions - ASP.NET Core tooling. Route syntax highlighting, auto-completion, and analyzers to help you create Web APIs.
- Entity Framework Core. Provides new “complex types” as value objects, primitive collections, and SQL Server support for hierarchical data.
- NuGet. Helps you audit your NuGet packages in projects and solutions for any known security vulnerabilities.
- .NET Runtime. Brings a new AOT compilation mode for WebAssembly (WASM) and Android.
- .NET SDK. Revitalizes terminal build output and production-ready defaults.
- WPF. Supports OpenFolderDialog and Enabled HW Acceleration in RDP
- ARM64. Significant feature enhancements and improved code quality for ARM64 platforms through collaboration with ARM engineers.
- Debugging. Displays debug summaries and provides simplified debug proxies for commonly used .NET types.
- System.Text.Json. Helps populate read-only members, customizes unmapped member handling, and improves Native AOT support.
- .NET Community Toolkit. Accelerates building .NET libraries and applications while ensuring they are trim and AOT compatible (including the MVVM source generators!)
- Azure. Supports .NET 8 with Azure’s PaaS services like App Service for Windows and Linux, Static Web Apps, Azure Functions, and Azure Container Apps.
- F# 8. Includes significant language changes, new diagnostics, improvements in usability, and performance enhancements in project compilation, as well as upgrades to the FSharp.Core standard library.
- What’s new in .NET 8. Check out our documentation for everything else!