.NET 8 RC 2 发布,将在11月14日发布正式版
微软2023-10-10 发布了 .NET 8 RC 2,下一站是.NET 8正式发布,就在下个月Net Conf 2023[1](11月14日)期间正式发布,我们也开始筹备第四届中国.NET开发者峰会了。 经过长达一年时间的开发,.NET 8 规划的所有主要的新功能都已推出,.NET 8 及其所有组件现在距离正式发布还有一个月的时间,接下来一个月,开发团队主要专注于通过改进功能和修复错误而不是引入主要的新功能来使 .NET 8 进入GA 的最终形态。

.NET 8 已准备好投入生产,但 Microsoft 建议通过 Visual Studio 17.8 预览版 3(也是今天刚刚发布的发行)对其进行测试,并建议开发人员转向预览频道内部版本[2],以试用 Visual Studio/Visual Studio Code 的 .NET 8。2023年10月,Tiobe编程语言排行榜.显示Java跌落比较明显,C#上升趋势比较明显. Tiobe官方表示,目前,差异仅为1.2%,如果趋势保持这种状态,C#将在大约2个月内超过Java。

.NET 团队今天在官方博客上发布了一系列文章来介绍.NET 8框架以及相关联的 ASP.NET Core、MAUI、EF Core 、Visual Studio 2022 17.8 的功能特性:
- ASP.NET Core Updates in .NET 8 RC2[3]
- .NET MAUI Updates in .NET 8 RC2[4]
- Visual Studio 2022 17.8 Preview 3[5]
- Entity Framework Updates in .NET 8 RC2[6]
- What’s New in .NET 8[7] 中的所有新功能. 关于.NET 平台的广泛视图, 请阅读 为什么要选择-net[8].
我们通过上面这些文章来看一下 .NET 团队 如何描述其开发人员工具产品的 RC2。
.NET 8
.NET 团队在今天早晨通过文章 宣布推出 .NET 8 RC2[9] :“这是我们最后一个发布RC 版本。此版本包括适用于 .NET 包的新 NuGet 包自述文件、适用于 MSBuild 的基于 CLI 的简单项目评估、将容器发布到 tar.gz 存档以及适用于 .NET 的张量基元。”
文章提到的的亮点如下:
- 引入了 .NET 包的 NuGet 包自述文件,以便为用户提供重要信息,并帮助他们快速了解库是什么及其用途。这是开发团队努力提高 NuGet 包自述文件的采用率和质量的一部分。
- MSBuild 具有一个新的、简单的基于 CLI 的项目评估功能:
--getProperty--getItem--getTargetResult,该功能可以更轻松地使用 、 和标志将 MSBuild 中的数据合并到脚本或工具中,以便于项目分析。 - SDK 容器发布工具具有一项新功能,可以直接将容器创建为 tar.gz 存档,这对于需要在推送映像之前扫描或移动Image的工作流非常有用,从而扩展了可用的部署选项。
- 引入 .NET 张量原语,增强对机器学习和数据科学操作的支持。张量原语是一组新的 API,它们引入了对张量操作的支持,这对于 AI 和机器学习工作负载至关重要。它为余弦相似性、点积、矩阵乘法等操作提供了矢量化实现。这是破例的特性发布,以前在 RC阶段是不加新特性的 。这个特性对于当前的人工智能的应用开发尤为重要,特别是开源项目Semantic kernel 也发布了1.0 beta 1[10].
此外,有关值得注意的修补程序以及更多内容的信息,请参阅 .NET 8 RC2 发行说明[11]。
MAUI
.NET 团队在文章 .NET MAUI Updates in .NET 8 RC2[4] 介绍到,今天,我们通过在.NET 8候选版本8(RC2)中发布.NET MAUI 向.NET 8正式发布(GA)更近了一步,与 RC1 一样,此版本包含在上线许可证中,因此您可以在生产应用程序中使用它时获得支持。在此版本中,我们重点关注了在整个预览版中回归的问题,并恢复了在改进热重载、视觉状态管理器、绑定和应用主题的可靠性时丢失的一些性能。
公告文章中的亮点包括:
- .NET MAUI 受上线许可证保护,并且没有与 .NET 7 相关的重大 API 更改。
- 进行了一些优化以提高Android和“Setter Specificity”的性能。
ActivityExtensions.GetWindowFrame - 该团队修复了与 UI 元素和控件相关的几个问题,以提高跨平台的一致性和视觉准确性。
- 针对拖放功能、选项卡栏外观和某些平台行为制定了特定于平台的修复,以实现跨平台的一致用户体验。
- Microsoft发布了适用于 .NET 7 的服务版本8 (版本 7.0.96),其中包含高优先级修补程序。
- Xamarin 开发人员可以将 Xcode 15 和 Android API 34 与 Visual Studio 17.8 Preview 3 或 Visual Studio for Mac 的最新稳定版本配合使用。
有关详细信息,请参阅 .NET MAUI 发行说明[12]。
ASP.NET 核心
.NET团队在 .NET 8 RC 2 中 ASP.NET Core 更新[3]的公告文章中介绍了,开发团队在这个周期中的大部分工作都致力于 Blazor,主要使用 C# 而不是通常的主流 JavaScript 进行 Web 开发的Microsoft 的方案。该帖子特别列车了 Blazor 的 11 个项改进, 其他还包括一个组件项,两个服务器和中间件项,换句话说ASP.NET Core的核心特性都是Blazor。
对于 .NET 8,Microsoft引入了 Blazor 的一个重要新概念,即提供全栈 Web UI 的能力。 .NET团队表示,随着.NET 8的发布,Blazor是一个全栈Web UI框架,用于开发在组件或页面级别呈现内容的应用程序:
- 静态服务器呈现以生成静态 HTML。
- 使用 Blazor 服务器托管模型的交互式服务器呈现。
- 使用 Blazor WebAssembly 托管模型的交互式客户端呈现。
- 首先使用 Blazor Server 自动呈现交互式客户端,然后在下载 Blazor 捆绑包并激活 .NET WebAssembly 运行时后,在后续访问时呈现 WebAssembly。自动呈现通常提供最快的应用启动体验。
公告文章的亮点包括:
- HTTP 日志记录中间件具有持续时间日志记录、组合日志和自定义拦截器等新功能。
- IdentityModel 库已更新到版本 7x,这提高了性能、一致性和本机 AOT 兼容性。
- 最小 API 和 Blazor 的表单绑定现在支持具有属性的类型。
IFormFile - SignalR TypeScript 客户端现在支持有状态重新连接,从而减少出现临时网络问题的客户端的停机时间。
- Blazor Web 应用模板具有用于全局或按页面启用交互式呈现模式以及使用 Blazor 标识 UI 的新选项。
- Blazor WebAssembly 独立应用模板已重命名和更新,以支持没有 ASP.NET 核心服务器的静态网站托管。
@rendermode现在可以在文件范围内应用 Razor 指令,以在组件定义上指定呈现模式。- Blazor 的增强导航和表单处理已通过新的属性和事件进行了改进,以控制和自定义行为。
- 已实现交互式服务器组件的电路关闭,以便在页面上没有剩余的交互式组件时释放服务器资源。
- Blazor 中的表单模型绑定现在遵循数据协定属性,用于自定义表单数据绑定到模型的方式。
HttpContext现在可以作为级联参数从静态服务器组件进行访问。- 该服务现在可用于在 Blazor Web 应用中保留和读取组件状态。
PersistentComponentState - 该属性现在支持使用该属性注入密钥服务。
[Inject]InjectAttribute.Key - 对话框元素现在支持 Blazor 中的取消和关闭事件。
更多信息可在新更新的“ASP.NET Core 8.0 新增功能[13]”文档中找到。
EF Core 8
EF8 Core 的公告帖子 Entity Framework Updates in .NET 8 RC2[6] 重点介绍了对象关系映射器 (ORM) 产品/服务中的“包含的一些较小功能”,尽管它还包含指向68 项针对.NET 8的改进。
公告文章的亮点包括:
- EF Core 8 需要 .NET 8,此 RC 2 版本应与 .NET 8 RC 2 SDK 一起使用。
- EF Core 8 将与 .NET 8 作为长期支持 (LTS) 版本保持一致。
- EF Core 8 引入了以下新功能:
- 更改具有数据库默认值的属性的哨兵值(sentinel)
- 支持访问多个实体类型的更新
- 使用 SQL 而不是 SQL 改进查询 替换
INEXISTS - 将列映射到 或 属性
rowversionlongulong - 消除生成的 SQL 中不必要的括号
有关详细信息,请参阅“EF Core 8 中的新增功能[14]”文档和 EF Core 路线图[15]。
总结
在 .NET 8 发布的过程中,我们衷心感谢世界各地所有充满激情的 .NET 开发人员,他们挺身而出探索和测试预览版和候选版本。您对 .NET 生态系统的奉献非常宝贵,您的反馈在确保此最新版本的可靠性和健壮性方面发挥了关键作用。感谢您成为这一激动人心的旅程的重要组成部分,我们迫不及待地想看看你将通过 .NET 8 带来什么。.NET团队特别列出了以下特性来自于社区的反馈和贡献:
- ASP.NET Core. 重新考虑在 .NET 8 中默认启用 HTTP/3[16]
- Blazor. 围绕 Blazor WebAssembly 的项目结构和 TFM 更改了整个计划[17]
- Runtime. 点亮更新的 ARM64 硬件功能[18] 和 更新 Marshal.QueryInterface[19].
- 软件开发工具包 改进了简化的输出路径[20]并完善了终端记录器
相关链接:
- [1]Net Conf 2023:https://dotnetconf.net/
- [2]预览频道内部版本:https://visualstudio.com/preview
- [3]ASP.NET Core Updates in .NET 8 RC2:https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-8-rc-2
- [4]NET
MAUI Updates in .NET 8 RC2: https://devblogs.microsoft.com/dotnet/announcing-dotnet-maui-in-dotnet-8-rc-2 - [5] Visual Studio 2022 17.8 Preview 3:https://aka.ms/vs/v178P3
- [6]Entity Framework Updates in .NET 8 RC2 https://devblogs.microsoft.com/dotnet/announcing-ef8-rc2
- [7]What’s New in .NET https://learn.microsoft.com/dotnet/core/whats-new/dotnet-8
- [8]为什么要选择-net https://devblogs.microsoft.com/dotnet-ch/%e4%b8%ba%e4%bb%80%e4%b9%88%e8%a6%81%e9%80%89%e6%8b%a9-net/
- [9]宣布推出 .NET 8 RC2: https://devblogs.microsoft.com/dotnet/announcing-dotnet-8-rc2/
- [10]开源项目Semantic kernel 也发布了1.0 beta 1: https://devblogs.microsoft.com/semantic-kernel/introducing-the-v1-0-0-beta1-for-the-net-semantic-kernel-sdk/
- [11].NET 8 RC2 发行说明 https://github.com/dotnet/core/blob/main/release-notes/8.0/preview/8.0.0-rc.2.md
- [12].NET MAUI 发行说明 https://github.com/dotnet/maui/releases/tag/8.0.0-rc.2.9373
- [13]ASP.NET Core 8.0 新增功能: https://learn.microsoft.com/en-us/aspnet/core/release-notes/aspnetcore-8.0?view=aspnetcore-8.0
- [14]EF Core 8 中的新增功能: https://learn.microsoft.com/en-us/ef/core/what-is-new/ef-core-8.0/whatsnew
- [15]EF Core 路线图: https://learn.microsoft.com/en-us/ef/core/what-is-new/
- [16]重新考虑在 .NET 8 中默认启用 HTTP/3: https://github.com/dotnet/aspnetcore/issues/50131
- [17]围绕 Blazor WebAssembly 的项目结构和 TFM 更改了整个计划: https://github.com/dotnet/aspnetcore/issues/49079
- [18]点亮更新的 ARM64 硬件功能:https://github.com/dotnet/runtime/issues/89937
- [19]更新 Marshal.QueryInterface: https://github.com/dotnet/runtime/issues/91981
- [20]改进了简化的输出路径: https://devblogs.microsoft.com/dotnet/announcing-dotnet-8-preview-4/#sdk-simplified-output-path-updates
.NET 8 RC 2 发布,将在11月14日发布正式版的更多相关文章
- 微软发布了Visual Studio 2022 RC版,并将在11月8日发布正式版
微软今天发布了Visual Studio 2022 最接近正式发布的RC版本,同时宣布在11月8日发布正式版,届时将在线上发布虚拟的发布活动,具体参见:https://devblogs.microso ...
- [转帖]ARM A77+G77最强公版架构:联发科5G SoC计划11月26日发布
ARM A77+G77最强公版架构:联发科5G SoC计划11月26日发布 https://www.cnbeta.com/articles/tech/909025.htm 主流的手机SoC厂商已经纷纷 ...
- 2016年11月14日 星期一 --出埃及记 Exodus 20:5
2016年11月14日 星期一 --出埃及记 Exodus 20:5 You shall not bow down to them or worship them; for I, the LORD y ...
- 本周MySQL官方verified/open的bug列表(11月8日至11月14日)
本周MySQL verified的bug列表(11月8日至11月14日) 1. Bug #70859-DWITH_EXAMPLE_STORAGE_ENGINE=1 is ignored URL ...
- SpringBoot3正式版将于11月24日发布:都有哪些新特性?
从 2018 年 2 月 28 号发布 Spring Boot 2.0 版本开始,整个 2.X 版本已经经过了 4 年多的时间,累计发布了 95 个不同的版本,而就在前不久,2.X 系列的也已经迎来了 ...
- 2016年11月14日--SQL创建数据库、表-查、插、删、改
--创建数据库(create database 数据库名)create database hq20161114go --使用选择数据库(use 数据库名)use hq20161114go --创建学生 ...
- matlab中函数学习——11月14日
1.记录数组元素个数函数:numel() 解释:number of array 相当于 prod(size(A)) 2.添加路径: addpath('.\3rdparty\ksvd'); 3.pada ...
- 易初大数据 2019年11月14日 spss笔记 王庆超
“均匀分布”的随机数 需要打开本章的数据文件“sim.sav.”. 1.设置随机数种子 1选择[转换]--[随机数字生成器],勾选‘设置起点’,并在‘固定值’ 的下‘值’中输入一个用户给定的数值.该数 ...
- 【¥200代金券、iPad等您来拿】 阿里云9大产品免费公测#10月9日-11月6日#
#10.09-11.06#200元代金券.iPad大奖, 9大产品评测活动! 亲爱的阿里云小伙伴们: 云产品的多样性(更多的云产品)也是让用户深度使用云计算的关键.今年阿里云产品线越来越丰富,小云搜罗 ...
- .NET Conf 2022 – 11 月 8 日至 10 日
.NET Conf 2022 下周就正式开启了,时间是美国时间的 11月8日至10日..NET Conf 2022是一个免费的,为期三天的, 虚拟开发人员活动提供多种实时会话,其中包括来自社区和 .N ...
随机推荐
- 前端基于原生input组件的增强简单通用实用输入框
前端基于原生input组件的增强简单通用实用输入框,下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=12799 效果图如下: ...
- 【大数据OLAP技术新书推荐】 字节跳动、阿里巴巴大厂资深架构师程序员多年实践经验总结《ClickHouse入门、实战与进阶》
ClickHouse 领域集大成之作-ClickHouse 入门进阶实战的标准参考书-日常工作案头必备! 如果需要购买阅读的话,可以点击: https://item.jd.com/1007763561 ...
- 微服务bug之:openFeign远程调用返回类型转换异常
楼主是在使用easyexcel导出的时候,获取数据出现这个错误,因为Spring底层是这样处理的使用LinkedhashMap来承接查询结果,导致转换异常 public List<NeedAll ...
- String解析及其方法
String解析及其方法 1.前言 2.什么是字符串(String) 3.字符串(String)的两种创建方式及其区别 4.字符串(String)的方法及其部分原码解析 5.字符串(String)的弊 ...
- 什么是ORM (object real mapping)
一.ORM简介 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术.简单的说,ORM是通过使用 ...
- 强化学习实践:Policy Gradient-Cart pole游戏展示
摘要:智能体 agent 在环境 environment 中学习,根据环境的状态 state(或观测到的 observation),执行动作 action,并根据环境的反馈 reward(奖励)来指导 ...
- Hexo博客使用valine评论系统无效果及终极解决方案
注意事项 有一些博主valine评论系统无效果,有一些原因: 1.很大程度是因为next的版本升级导致某些参数设置不同 2.valine评论是基于LeanCloud,还有一个文章阅读次数功能也是用Le ...
- Redis的设计与实现(4)-跳跃表
跳跃表 (skiplist) 是一种有序数据结构, 它通过在每个节点中维持多个指向其他节点的指针, 从而达到快速访问节点的目的. 跳跃表支持平均 O(log N) 最坏 O(N) 复杂度的节点查找, ...
- Blazor实战——Known框架多表增删改查
多表增删改查示例 本章介绍学习多张表增.删.改.查功能如何实现,下面以销货出库单作为示例,该业务栏位如下: 销货出库单栏位 销货单号.销货日期.状态.客户.备注 销货出库单明细栏位 商品编码.商品名称 ...
- WPF 全局样式资源管理
在WPF通常我们习惯于把样式直接写在控件属性上,例如: <TextBox x:Name="pluginPathTxt" Margin="0,0,0,0" ...