.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 ...
随机推荐
- 第15章: Prometheus监控Kubernetes资源与应用
Prometheus监控Kubernetes资源与应用 目录 1 监控方案 2 2 监控指标 4 3 实现思路 4 4 在K8S中部署Prometheus 4 5 在K8S中部署Grafana与可视化 ...
- css 设置小知识点记录
1.消除控件与控件之间的边界 /* 公共样式 用于消除控件与控件之间的边界 */ *{ margin:0; padding:0} 2.设置背景图片大小与控件大小一致 #frame_top{ min-h ...
- 查看JVM中的线程名
实例说明 在Java虚拟机中(JVM):除了用户创建的线程,还有服务于用户线程的其他线程.它们根据不同的用途被分到不同的组中进行管理.本实例将演示JVM中线程的名字及其所在组的名称. 关键技术 线程组 ...
- 使用Less/Sass生成Bootstrap格栅样式系统
熟悉Bootstrap的同学应该了解其中的格栅系统,用来排版非常方便.他将页面分为12等分,并且适用不同的尺寸屏幕.超小xs(小于768px),小屏sm(大于等于768px),中屏md(大于等于992 ...
- Linux 3.16 release 贡献度
内核 3.16 release 的贡献度可以在下面网页看到: http://www.remword.com/kps_result/3.16_whole.html 一共发布了 12802 个补丁, 18 ...
- window下玩转maven私服全流程,融合创建仓库、上传项目资源、下载私服资源
在互联网项目开发浪潮中,maven成为了项目管理依赖的重要工具,更多时候maven只作为拉取外部依赖的手段.但出于安全的考虑的,部门企业难免封装一些私有的工具类,或开源框架的二次开发封装,mave ...
- python 10篇 操作mysql
一.操作数据库 使用pip install pymysql,安装pymysql模块,使用此模块连接MySQL数据库并操作数据库. import pymysql host = 'ip地址' # 链接的主 ...
- python使用笔记25--深拷贝、浅拷贝
1.循环删除list 1 ll = [1,1,32,4,3,2,3,2,4,6,4,5,6,7,8] 2 for i in ll: 3 if i % 2 !=0: 4 ll.remove(i) 5 p ...
- VBA:考场场标打印
Function pda(x) a = x If Len(a) = 1 Then ab = "00" & a ElseIf Len(a) = 2 Then ab = &qu ...
- Java核心基础第5篇-Java面向对象_类和对象
Java面向对象之类和对象 一.面向对象概述 Java是完全的面向对象编程(Object Oriented Programming),简称OOP. 面向对象编程的思维方式更加符合大家的日常生活,因为我 ...