.NET 6 预览版 7:新功能已完成 ,将专注于改进
.NET 团队的项目经理 Richard Lander在宣布 .NET 6 Preview 7 时说:“这是 .NET 预览的又一季的结束。”, 中文翻译:.NET 6 预览版 7 发布——最后一个预览版。 .NET 6.0 是微软统一 .NET 平台的一个重要版本和第一个 LTS(长期支持)迭代,旨在取代 .NET Framework(现在是旧版)和 .NET Core。最新的预览版附带了大量信息,包括 Visual Studio 2022 预览版 3、.NET MAUI(多平台应用程序 UI)预览版 7——它取代了跨平台移动项目的 Xamarin——以及对 ASP.NET Core 的更新。
Richard Lander 说新功能基本上都已经完成,开发团队现在专注于改进,因为它解决了两个可能在 11 月全面上市之前用于生产的候选版本。自从 .NET 6 自预览版 1 以来一直在支持 Microsoft 的关键应用——Bing.com 和 .NET 网站。现在,随着下个月RC1的发布,会有更多的组织开始采用.NET 6。 开源项目ABP vNext 的5.0 版本开始已经开始,这个版本的一个重要目标就是升级到使用.NET 6,具体参见:https://docs.abp.io/en/abp/latest/Road-Map。
Lander 在 8 月 10 日的博客文章中说:“我们正在与各个团队(Microsoft 和其他团队)就将 .NET 6 RC 投入生产进行沟通。” 他邀请有兴趣采用 .NET 6 进行生产的组织与 Microsoft 联系以获取详细信息和指导。为生产工作负载做好准备,开发团队现在专注于最后的润色改进,按照 .NET 主题计划(主题网站:https://themesof.net/)将所有内容提升到统一的高品质水平:
Lander 表示,最后一次预览特别重要, .NET 团队成员在 RC 完善阶段之前努力工作以添加新功能,同时平衡以下优先级:
- 每个版本都添加了很多功能以提供新的价值。
- 新版本是高质量的。
- 根据我们每年 11 月的时间表发布正式版。
就预览版 7 中的新功能而言,有些得到了改进,而有些则是“大而全的发布功能”。 例如大家期待已久的HTTP/3/Quc的支持, 预览版 7 在 Kestrel 中引入了对 HTTP/3 和 QUIC 的早期支持,以供试用并提供反馈,HTTP/3 是 HTTP 的第三个也是即将推出的主要版本。HTTP/3 使用与 HTTP/1.1 和 HTTP/2 相同的语义:相同的请求方法、状态代码和消息字段适用于所有版本。不同之处在于底层传输。HTTP/1.1 和 HTTP/2 都使用 TCP 作为它们的传输。HTTP/3 使用了一种与 HTTP/3 一起开发的新传输技术,称为 QUIC。 具体参见ASP.NET Core的预览版7更新:https://devblogs.microsoft.com/aspnet/asp-net-core-updates-in-net-6-preview-7/。
还有.NET SDK模板 也做了大量的更新,把c#语言的9.0 版本最新功能引入,以充分利用最新的C# 语言用法,比如代码生成器、编译时反射、顶级语句等,c# 10版本还在预览版,要了解C# 10的完整特性,可以阅读文章:C# 10 完整特性介绍。 顶级语句这个功能在博客下方引起了争论,Lander 博客评论中提出的几个问题,以及他的回答:
- 问: “我知道 C# 正试图与 Python 和 JavaScript 竞争以吸引年轻开发者的注意力,但你们能不能不要删除专家模板?”
Lander: “不是那样的。这些模板植根于(至少)40 年前的模型中。它们不以专业知识为中心。这更像是旧学校/新学校。当然,我们确实相信这些模板将使对于熟悉 Python 或 JavaScript 或完全不熟悉编程的人来说,学习 C# 更容易。也许这这个改变的一半原因。另一半是当前的模板没有承载它们的重量,而且也很混乱。我已经有了多次查找 AsyncMain 的语法(即使它是微不足道的),顶级语句消除了整个问题 - 问: “因此,根据我从您提供的链接中收集到的信息,这仅适用于‘简单程序和新程序员’。是否有可用的配置选项,或者您是否将其强加给我们所有人?”
Lander: “是什么让你得出这个结论?顶级语句模型几乎实现了‘经典’模型的所有功能。它绝对超越了简单程序和新程序员。这是一个很好的例子,一个非简单程序:https://github.com/dotnet/iot/blob/main/src/devices/Pn532/samples/Program.cs。除了该程序演示的内容之外,您还期望做什么?”
除了顶级语句之外,SDK 包含的项目模板中默认使用或启用的其他语言功能包括:
说到最后一项,可空引用类型,开发人员现在可以使用新的 Reflection API 来检查它们,这些 API从 Reflection 公开顶级可空性信息,帮助他们表达是否可以构建给定的引用类型并确定参数和返回值的可空性性质对于给定的方法。
System.Text.Json 在多个方面进行了改进,包括控制属性序列化顺序的新功能。此外,它的序列化程序现在将通知作为(反)序列化操作的一部分公开。
除了对库的大量其他调整和更多新功能之外,早期的 .NET 7 功能可在预览中使用,例如允许在接口中使用static abstract
声明成员。“,现在可以实现代数泛型方法,”Lander谈到开发static abstract
人员在接口中定义方法——包括运算符——的新能力。“对于某些人来说,此功能将是我们今年提供的绝对出色的改进。它可能是自 Span<T> 以来最重要的新型系统功能。”, 软件工程师 Tanner Gooding 解释说:“您现在可以声明同时是静态和抽象的接口成员。” 这实现了他所说的 .NET 中长期要求的特性,“在泛型类型上使用运算符的能力”。专门写了一篇博客文章介绍通用数学。
至于其他库的改进,以下是更多信息的链接:
- NativeMemory的API - “新的本机内存分配 API,“通过 System.Runtime.InteropServices.NativeMemory 公开”,这些API代表等同于
malloc
,free
,realloc
,和calloc
ÇAPI和还包括用于对准做分配的API。” - 同步流重载
JsonSerializer
——“我们添加了新的同步 API,JsonSerializer
用于将 JSON 数据序列化和反序列化到/来自流。” - System.Diagnostics Propagators - 这与以正确格式生成网络标头以支持OpenTelemetry 有关。该团队正在采用传播远通用标头自定义模型。
- 加密操作的简化调用模式——新的简化加密和解密方法提供了一种使用加密 API 的直接方法,特别是当加密/解密有效负载已经在内存中并且没有被流式传输时。
- 全球化不变模式下的完整大小写映射支持——“我们改进了全球化不变模式以支持完整 Unicode 字符集的大小写映射。”
Richard Lander说.NET 6.0 将包括不支持生产的预览功能。对于 .NET 6,“我们已经构建了将 API 标记为‘预览中’的功能,这些是选择加入,使用 EnablePreviewFeatures 项目属性和对 System.Runtime.Experimental 的引用。这些功能可能会发生重大变化,因此仅用于测试和实验。
Lander 说:“我们继续希望并依赖您的反馈。我们将把 .NET 6 的其余部分集中在回归上(功能和性能)以及在新功能中发现的错误。在大多数情况下,功能改进需要等待 .NET 7。请分享您的任何和所有反馈,我们很乐意对其进行分类。”
Visual Studio 也已更新, Visual Studio 2022 的预览版 3 添加了新的项目属性设计器、改进的深色主题和新的项目类型,以支持使用 TypeScript 或 JavaScript 的 React 和 Vue.js。另一个新功能是能够在单个解决方案中使用多个 Git 仓库。
Visual Studio 2019 也更新到 16.11,高级项目经理 Mads Kristensen表示这是最后一次基线更新。因此,“我们鼓励企业和专业客户在 Visual Studio 2019 16.11 上实现标准化,”新功能包括 .NET 应用程序的热重载(查看动态代码更改的输出)、改进的 Git 工具以及将 Clang/LLVM 工具链更新到版本 12。
.NET 6 预览版 7:新功能已完成 ,将专注于改进的更多相关文章
- Visual Studio 2022 预览版3 最新功能解说
我们很高兴地宣布Visual Studio 2022 的第三个预览版问世啦!预览版3 提供了更多关于个人和团队生产力.现代开发和持续创新等主题的新功能.在本文中,我们将重点介绍Visual Studi ...
- TMS WEB Core v1.2预览版:新的Electron应用程序支持
2019年2月20日,星期三 几个月前,我们已经开始与Electron进行实验.在工作概念验证之后,我们的目标是为Delphi开发人员尽可能多地包装Electron API.但当然不仅仅是可以使用的E ...
- (转)ASP.NET MVC 第五个预览版和表单提交场景
转自:http://ourlife.blog.51cto.com/708821/296171 上个星期四,ASP.NET MVC开发团队发布了ASP.NET MVC框架的“第五个预览版”.你可以在这里 ...
- Azure SQL 数据库最新版本现已提供预览版
Tiffany Wissner 数据平台营销高级总监 我们之前在11月宣布将提供新的预览版,在该预览版中我们引入了接近完整的 SQL Server 引擎兼容性和更为高级的性能,这些都代表了下一代的 ...
- Azure SQL 数据库的灵活缩放预览版简介
Eron Kelly SQL Server 产品管理部门产品市场营销总经理 几天前,我们宣布了发布 Azure SQL 数据库的灵活缩放公共预览版.新增的灵活缩放功能通过简化开发和管理,简化了扩展和缩 ...
- Dubbo 3.0 预览版解读,6到飞起~
, false).start(); ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new St ...
- .NET Core 3.0预览版7中的ASP.NET Core和Blazor更新
.NET Core 3.0 Preview 7现已推出,它包含一系列ASP.NET Core和Blazor的新更新. 以下是此预览中的新功能列表: 最新的Visual Studio预览包括.NET C ...
- VS2015预览版中的C#6.0 新功能(二)
VS2015预览版中的C#6.0 新功能(一) VS2015预览版中的C#6.0 新功能(三) 自动属性的增强 只读自动属性 以前自动属性必须同时提供setter和getter方法,因而只读属性只能通 ...
- VS2015预览版中的C#6.0 新功能(三)
VS2015预览版中的C#6.0 新功能(一) VS2015预览版中的C#6.0 新功能(二) Using static 使用using StaticClass,你可以访问StaticClass类里的 ...
- VS2015预览版中的C#6.0 新功能(一)
VS2015预览版中的C#6.0 新功能(二) VS2015预览版中的C#6.0 新功能(三) VS2015的预览版在11月12日发布了,下面让我们来看看C#都提供了哪些新的功能. 字符串添写(Str ...
随机推荐
- DWORD
C++中使用DWORD不用声明,但是要加头文件Windows.h. DWORD 就是 Double Word, 每个word为2个字节的长度,DWORD 双字即为4个字节,每个字节是8位,共32位. ...
- Linux基础 -02
3.4 虚拟机快照技术 什么是快照 3.5 虚拟机克隆技术 什么是克隆 4.Bash Shell快速入门 4.1 什么是Bash Shell bash shell是一个命令解释器,主要负责用户程序与内 ...
- zset如何解决内部链表查找效率低下
zset作为有序集合,内部基于跳表或者说索引的方式实现了数据的快速查找.解决了链表查询效率低下的痛点 前言 紧接前文我们学习了Redis中Hash结构.在里面我们梳理了字典这个重要的内部结构并分析了h ...
- phpRedisAdmin安装
1.安装gitsudo yum install yum 2.安装依赖包:yum install -y php php-devel php-fpm php-mysql php-gd libjpeg* p ...
- ROS踩坑笔记总结
2019-07-12 11:32:16 我的第一篇原创博客(当然是站在巨人肩膀上,有些内容参考了其他大神的博客,都一一做了说明),这些是我之前在学习ROS期间经历的一些坑,以及相对应的解决方案,希望可 ...
- ROS2学习之旅(2)——配置ROS2环境
目录 1.source一下setup文件 2.自动source 3.自动进入工作区(不常用) 4.检查环境变量是否设置成功 5.总结 ROS2依赖于使用shell(终端)环境组合工作空间的概念.工作空 ...
- JUnit5参数化测试的几种方式
参数化测试一直是津津乐道的话题,我们都知道JMeter有四种参数化方式:用户自定义变量.用户参数.CSV文件.函数助手,那么JUnit5有哪些参数化测试的方式呢? 依赖 JUnit5需要添加junit ...
- Maven项目导入Intellij IDEA
目录 1. 自动创建maven项目 2. 修改IDEA默认远程仓库,提高依赖包下载速度 3. 修改IDEA中maven设置 4. 将maven项目导入IDEA 坑:IDEA无法下载依赖包 1. 自动创 ...
- Django基础006--在pycharm中将项目配置为Django项目
1.在File--Settings--搜索Django 操作按照如图所示 2.在pycharm右上方项目处,选择Edit Configurations 3.在Name处写上项目名称 python环境选 ...
- c语言:输出汉字编码
#include<stdio.h> main() { //char a[5]; //strcpy(a,"啊"); char a[5]="职"; pr ...