.NET 8 发布!

作者:Gaurav Seth
排版:Alan Wang

请立即下载 .NET 8!

我们很高兴地宣布从今天开始 .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

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

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

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

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

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

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

生成式人工智能和大型语言模型正在改变人工智能领域,使开发人员能够在其应用程序中创建独特的人工智能体验。.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 服务开发应用程序
    在这里插入图片描述

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

.NET 8 中的 Blazor 可以同时使用服务器和客户端来处理您的所有 Web UI 需求。这是全栈 Web UI!通过专注于优化页面加载时间、可扩展性和提升用户体验的多项新增强功能,开发人员现在可以在同一应用程序中使用 Blazor Server 和 Blazor WebAssembly,在运行时自动将用户从服务器转移到客户端。您的 .NET 代码在 WebAssembly 上的运行速度显然更快,这要归功于新的基于“Jiterpreter”的运行时和新的内置组件。作为.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 表达式中的参数使用新的默认值。不再需要重载或空检查来处理可选参数。您甚至可以使用 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。

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 Core。简化单页应用程序(SPA)和 Blazor 的身份,提供基于 cookie 的身份验证、预构建的 API、令牌支持和新的身份 UI。并通过表单绑定增强最小 API,防伪支持防止跨站点请求伪造(XSRF/CSRF),以及 asParameters 支持使用 Open API 定义进行参数绑定。
  • ASP.NET Core 工具。路由语法突出显示、自动完成和分析器可帮助您创建 Web API。
  • Entity Framework Core。提供新的“复杂类型”作为值对象、原始集合以及 SQL Server 对分层数据的支持。
  • NuGet。帮助您审核项目和解决方案中的 NuGet 包是否存在任何已知的安全漏洞。
  • .NET Runtime。为 WebAssembly (WASM) 和 Android 带来新的 AOT 编译模式。
  • .NET SDK。恢复终端构建输出和生产就绪默认值。
  • WPF。支持 OpenFolderDialog并在 RDP 中启用硬件加速
  • ARM64。通过与 ARM 工程师合作,显著增强了 ARM64 平台的功能并提高了代码质量。
  • Debugging。显示调试摘要并为常用的 .NET 类型提供简化的调试代理。
  • System.Text.Json。帮助填充只读成员、自定义未映射成员处理并改进本机 AOT 支持。
  • .NET Community Toolkit。加速构建 .NET 库和应用程序,同时确保它们精简且兼容 AOT(包括 MVVM 源生成器!)
  • Azure。通过 Azure 的 PaaS 服务(例如适用于 Windows 和 Linux 的应用服务、静态 Web 应用、Azure Functions 和 Azure 容器应用)支持 .NET 8。
  • 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 得到 Microsoft 的正式支持,作为长期支持(LTS)版本,支持期限为三年。
  • 奖励:.NET 8 的 eShop 示例。使用我们的新 eShop 示例(现已针对 .NET 8 进行更新)遵循所有最佳编码和架构实践!

庆祝 .NET 8发布

  • .NET Conf 2023。请于2023 年 11 月 14 日至 16 日与我们一起庆祝 .NET 8 发布!
  • .NET 的下一步是什么?参与并了解有关 .NET 8 和下一版本 .NET 的最新消息。
  • 获得 C# 认证。通过 freeCodeCamp C# 认证获得荣誉徽章。
  • 学习 .NET 8。为初学者和高级 .NET 开发人员提供针对 .NET 8更新的免费教程、视频、课程等。
  • 请参阅开发者故事。查看开发人员迁移到现代 .NET 的成功案例。
  • 了解为什么选择 .NET?阅读我们最近关于 .NET 便利性的博客系列。

.NET❤️我们的社区

最后,我们想对大家说:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/188934.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

中学老师求职简历(精选9篇)

以下简历内容以中学老师招聘需求为背景&#xff0c;我们整理并修改了9篇全面、专业且具有参考价值的简历案例&#xff0c;大家可以灵活借鉴&#xff0c;希望能帮助大家在众多候选人中脱颖而出。 中学老师简历下载&#xff08;可在下制作下载&#xff09;&#xff1a;百度幻主简…

抓取微信好友列表信息

本文实现的是一种较为安全、简洁、高效的抓取微信好友信息的方法。 实现工具&#xff1a;微信pc端、影刀RPA 主要流程&#xff1a; 手动—前期准备&#xff0c;电脑登陆微信&#xff0c;打开联系人页&#xff0c;使得联系人分类“A”显现在微信窗口界面 自动—运行程序&#…

JDK21无法导入TimeUnit类

运行环境&#xff1a;windows11、IDEA2023.1.3、JDK21 问题描述&#xff1a;IDEA中无法导入java.util.concurrent.TimeUnit类。 以下截图是问题解决后的截图。有问题的时候未截图&#xff0c;说明一下&#xff0c;有问题的时候TimeUnit类是红色的&#xff0c;无法导入&#x…

vue3中的provide与inject跨层级组件(祖孙)间通信

provide和inject提供依赖注入&#xff0c;功能类似 vue2.x 的provide/inject 实现跨层级组件(祖孙)间通信 子或孙子组件接收到的数据可以用于读取显示&#xff0c;也可以进行修改&#xff0c;同步修改父&#xff08;祖&#xff09;组件的数据。 注意&#xff1a;无论子组件…

python 使用reportlab打造29页图文并茂pdf(全网reportlab最强pdf自动化生成代码)

python 使用reportlab打造29页图文并茂pdf(全网reportlab最强pdf自动化生成代码&#xff09; 这次项目所使用的代码如果同志们可以灵活使用&#xff0c;基本上可以解决百分之九十以上的pdf模板自动化生成。 最近博主&#xff0c;做了一个项目&#xff0c;使用reportlab制作pd…

程序包不存在

idea2020会有一个小bug&#xff0c;在idea的Settings设置中进行下面配置&#xff1a; 然后在maven项目下的pom.xml中加入如下代码&#xff1a; <plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifact…

【趣味JavaScript】一文让你读懂JavaScript原型对象与原型链的继承,探秘属性的查找机制! 《重置版》

&#x1f680; 个人主页 极客小俊 ✍&#x1f3fb; 作者简介&#xff1a;web开发者、设计师、技术分享博主 &#x1f40b; 希望大家多多支持一下, 我们一起学习和进步&#xff01;&#x1f604; &#x1f3c5; 如果文章对你有帮助的话&#xff0c;欢迎评论 &#x1f4ac;点赞&a…

Oracle忘记所有密码怎么办

最近遇到一个Oracle的问题&#xff0c;密码要过期了&#xff0c;但是除了用户密码&#xff0c;其他密码都不知道了&#xff0c;修改不了密码怎么办呢&#xff1f; 试了各种方法&#xff0c;最终下面的方式生效了&#xff1a; 首先&#xff0c;使用orapwd生成新的密码文件&…

云计算如何创芯:“逆向工作法”的性感之处

在整个云计算领域&#xff0c;能让芯片规模化的用起来&#xff0c;是决定造芯是否成功的天花板。在拉斯维加斯的亚马逊云科技2023 re:Invent则是完美诠释了这一论调。 亚马逊云科技2023 re:Invent开幕前两个小时&#xff0c;有一场小型的欢迎晚宴&#xff0c;《星期日泰晤士报》…

BUUCTF [GXYCTF2019]SXMgdGhpcyBiYXNlPw== 1

BUUCTF:https://buuoj.cn/challenges 题目描述&#xff1a; 得到的 flag 请包上 flag{} 提交。 密文&#xff1a; 下载附件&#xff0c;解压得到flag.txt文件。 解题思路&#xff1a; 1、打开flag.txt文件&#xff0c;内容如下。 Q2V0dGUgbnVpdCwK SW50ZW5hYmxlIGluc29tbm…

Python编程题集(第三部容器操作 )

Demo61 指定等级 题目描述 读入学生成绩&#xff0c;获取最高分best&#xff0c;然后根据下面的规则赋等级值&#xff1a; &#xff08;1&#xff09;如果分数≥best-10&#xff0c;等级为A &#xff08;1&#xff09;如果分数≥best-20&#xff0c;等级为B &#xff08;1…

常见基础指令【Linux】

目录 一、Linux基本指令1. ls2. pwd3. cd4. touch5. mkdir6. rm和rmdir7. man8. cp9. mv10. cat11. tac12. more13. less14. head15. tail16. date17. cal18. find19. grep20. zip/unzip21. echo22. wc23. tree24. which25. alias26. whoami27. stat28. tar29. uname30. shutdo…

如何自定义winform控件,并把它添加到工具箱,供拖动使用

首先&#xff0c;在想要用自定义控件的解决方案中新建一个项目&#xff0c;该项目用来存放所有的自定义控件。 解决方案-右键-添加-新建项目 添加新项目的界面选择Windows窗体控件库&#xff0c;点击确定。 此时&#xff0c;已经添加好了新的项目&#xff0c;默认会有一个自定…

记RocketMQ本地开发环境搭建始末

前言 最近工作中涉及到了RocketMQ的应用&#xff0c;为方便开发决定本地搭建一套RocketMQ的使用环境。 果然实践是个好东西... VMware虚拟环境搭建 这个网上有很多教程&#xff0c;只会比我写的详细有条理&#xff0c;这里就不在赘述了。 虚拟机搭建好之后每次重启电脑都无…

nginx配置反向代理及负载均衡

目录 1.前端发送的请求&#xff0c;是如何请求到后端服务的1.nginx 反向代理的好处&#xff1a;2.nginx 反向代理的配置方式&#xff1a;3. nginx 负载均衡的配置方式 1.前端发送的请求&#xff0c;是如何请求到后端服务的 1.nginx 反向代理的好处&#xff1a; 提高访问速度 因…

全系降3万,一把干到底,极越「智取」特斯拉

作者|德新 编辑|王博 11月30日&#xff0c;极越01官宣全系降价3万。 这意味着21.99万起步的极越01 Max&#xff0c;成为这个市场上入门门槛最低的带有城市智能驾驶辅助功能的车型。 要知道这是一台比Model Y大了一圈&#xff0c;全系配置了高阶智驾硬件&#xff0c;全系配高…

Apache HTTPD 2.448 mod_proxy SSRF漏洞(CVE-2021-40438)

任务一&#xff1a; 复现漏洞 任务二&#xff1a; 尝试利用SSRF漏洞&#xff0c;访问重庆邮电大学官网&#xff08;http://www.cqupt.edu.cn) 1.搭建环境 2.了解这个地方是httpd作为了一个反向代理服务器&#xff0c;也就是先是客户端发送请求给代理服务器&#xff0c;然后…

Neo4j 程序开发 JavaAPI 嵌入式开发模式(头歌)

文章目录 第1关&#xff1a;JavaAPI 嵌入式开发模式任务描述相关知识创建 Neo4j 数据库启动 Neo4j 数据事务创建节点创建节点关系将创建的数据库设置为默认数据库 编程要求测试说明答案代码修改配置文件&#xff0c;更改默认 Neo4j 数据库代码文件 第1关&#xff1a;JavaAPI 嵌…

【文献阅读笔记】关于GANomaly的异常检测方法

文章目录 1、GANomaly: Semi-Supervised Anomaly Detection via Adversarial Training模型主要创新 2、Skip-GANomaly: Skip Connected and AdversariallyTrained Encoder-Decoder Anomaly Detection模型主要创新点 3、Industrial surface defect detection and localization u…

YOLOv8改进 | 2023 | AKConv轻量级架构下的高效检测(可变核卷积)

一、本文介绍 本文给大家带来的改进内容是AKConv&#xff08;可变核卷积&#xff09;是一种创新的卷积神经网络操作&#xff0c;它旨在解决标准卷积操作中的固有缺陷&#xff08;采样形状是固定的&#xff09;&#xff0c;AKConv的核心思想在于它为卷积核提供了任意数量的参数…