.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 ...
随机推荐
- 堆和栈的内存分布&一些关于内存泄露、栈溢出和野指针的内容(头秃
内存泄漏&栈溢出 C++中,我们主要涉及的内存是栈和堆, 堆 (By programmer) 申请后由程序员主动释放,遗忘后果严重: 栈 (By compiler)需要时由编译器分配,在不需 ...
- 35、mysql数据库(ddl)
35.1.数据库之库操作: 1.创建数据库(在磁盘上创建一个对应的文件夹): create database [if not exists] db_name [character set xxx]; ...
- 浅读tomcat架构设计和tomcat启动过程(1)
一图甚千言,这张图真的是耽搁我太多时间了: 下面的tomcat架构设计代码分析,和这张图息息相关. 使用maven搭建本次的环境,贴出pom.xml完整内容: <?xml version=&qu ...
- 树莓派4B-SPI读写flash-FM25CL16B(同时支持FM25CL64等其它系列Flash)
1.树莓派SPI介绍 4B的引脚如下图所示: 其中Pin19.21.23是SPI0,接口定义如下所示: 时钟(SPI CLK, SCLK) 主机输出.从机输入(MOSI) 主机输入.从机输出(MISO ...
- Flask(8)- jinja2 模板入门
前言 之前的文章有个栗子,视图函数可以直接返回一段 html 代码,浏览器可以自动渲染 但是当你的 HTML 非常复杂的话,也要整串写在代码里面吗,这显然不合理的,可阅读性也非常差 所以,就诞生了 J ...
- docker 创建各容器命令合集
学习中...持续更新 docker-compose安装: curl -L https://github.com/docker/compose/releases/download/1.27.4/dock ...
- python使用笔记14--商品管理小练习
1 import json 2 import pymysql 3 IP = '127.0.0.1' 4 PORT = 3306 5 USER_NAME = 'root' 6 PASSWORD = '1 ...
- Java基础00-函数式接口33
1. 函数式接口 1.1 函数式接口概述 代码示例: 定义一个接口: //次注解表示该接口为函数式接口,只能有一个抽象方法,如果有第二个就会报错. @FunctionalInterface publi ...
- Java基础00-多态19
1. 多态 多态 1.1 多态概述 代码示例: 动物类: public class Animal { public void eat(){ System.out.println("动物吃东西 ...
- 前端小技巧:css sprite----V客学院技术分享
前端小技巧:css sprite 因为英文名叫sprite,翻译过来是精灵,而雪碧饮料也叫sprite,所以叫精灵兔或者雪碧图. 它有什么作用呢? 当用户在浏览器里输入一个URL地址的时候,你会感觉无 ...