Derick
1885 words
9 minutes
.NET 8发布会

Microsoft在今天发布了 .NET 8.0 LTS版本,这个版本更新了以下内容

  1. 性能提升
  2. 云原生支持,发布了.NET Aspire提供服务注册发现,可观测性,云原生部署支持等特性
  3. 对于AI研发的支持,可以很方便的接入OpenAI的API,加快dotnet语言架构下AI产品的问世
  4. Blazor升级:使用单个强大的组件模型来处理Blazor的所有Web UI需求
  5. MAUI更新:使用.NET MAUI将您的移动的应用程序部署到最新版本的iOS和Android
  6. C#12语言特性更新

Untitled.png

迄今为止最快的.NET#

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

Untitled.png

.NET Aspire -一个自定义的堆栈,用于构建可观察的,生产就绪的云原生应用程序微服务框架组件#

.NET Aspire是一个堆栈,用于使用. NET构建弹性,可观察和可配置的云原生应用程序。它包括一组针对云原生增强的策划组件,默认情况下包括遥测,弹性,配置和健康检查。为复杂的服务提供简单的本地开发人员体验,.NET Aspire可以在轻松发现、获取和配置云原生应用程序的基本依赖项。今天发布了.NET Aspire的第一个预览版。

Untitled.png

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

使用容器打包您的应用程序比以往任何时候都更容易,更安全。每个.NET映像都包含一个非root用户,从而通过一行配置实现更安全的容器。.NET SDK工具发布的容器镜像没有Dockerfile,默认情况下是非root。由于更小的.NET基础映像-包括我们映像的新实验变体,可为原生AOT提供真正最小的应用程序大小,因此可以更快地部署容器化应用程序。选择使用新的Chiseled Ubuntu映像变体进行更多的安全加固,以进一步减少您的攻击面。使用Dockerfiles或SDK工具,为任何架构构建应用和容器镜像。

Containers2.png

原生AoT -迈向更高密度可持续计算之旅#

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

AOTOptimizations4.png

人工智能-将AI融入.NET应用程序#

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

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

InfuseAIdotnetapps1.png

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

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

Blazor2.png

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

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

dotnetMAUIin8-1.png

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更新的附加功能:#

.NET 8发布会
https://blog.ithuo.net/posts/net-8-release-conference/
Author
Derick
Published at
2023-11-14