今天,我们很高兴发布 .NET 7 预览版 2。.NET 7 的第二个预览版包括对 RegEx 源生成器的增强、将 NativeAOT 从实验状态转移到运行时的进展,以及对"dotnet new"CLI 的一系列重大改进经验。这些可供您立即获取_并_开始尝试新功能,例如:

  • 在编译时使用源生成器而不是在运行时使用较慢的方法来构建专门的 RegEx 模式匹配引擎。
  • dotnet new利用 SDK 改进提供全新的简化选项卡完成体验来探索模板和参数。
  • 不要削减用你自己的创新解决方案尝试 NativeAOT。

EF7 预览版 2 也已发布,可在NuGet 上使用。您还可以阅读ASP.NET Core Preview 2 中的新增功能

您可以下载适用于 Windows、macOS 和 Linux 的.NET 7 Preview 2 。

如果您想在 Visual Studio 系列产品中试用 .NET 7,我们建议您使用预览频道版本。Visual Studio for Mac 对 .NET 7 预览版的支持尚不可用,但即将推出。

预览版 2

Preview 2 版本现在提供以下功能。

引入新的正则表达式源生成器

https://github.com/dotnet/runtime/issues/44676

您是否曾经希望拥有针对您的特定模式优化的专用正则表达式引擎所带来的所有巨大好处,而无需在运行时构建该引擎的开销?

我们很高兴地宣布包含在预览版 1 中的新正则表达式源生成器。它带来了我们编译引擎的所有性能优势,而无需启动成本,并且它具有其他优势,例如提供出色的调试体验以及修剪-友好的。如果您的模式在编译时是已知的,那么新的正则表达式源生成器就是要走的路。

为了开始使用它,您只需要将包含类型转换为部分类型并使用RegexGenerator属性声明一个新的部分方法,该方法将返回优化的Regex对象,就是这样!源代码生成器将为您填充该方法的实现,并在您更改模式或传入的其他选项时自动更新。这是一个示例:

  1. public class Foo
  2. {
  3. public Regex regex = new Regex(@"abc|def", RegexOptions.IgnoreCase);
  4. public bool Bar(string input)
  5. {
  6. bool isMatch = regex.IsMatch(input);
  7. // ..
  8. }
  9. }

  1. public partial class Foo // <-- Make the class a partial class
  2. {
  3. [RegexGenerator(@"abc|def", RegexOptions.IgnoreCase)] // <-- Add the RegexGenerator attribute and pass in your pattern and options
  4. public static partial Regex MyRegex(); // <-- Declare the partial method, which will be implemented by the source generator
  5. public bool Bar(string input)
  6. {
  7. bool isMatch = MyRegex().IsMatch(input); // <-- Use the generated engine by invoking the partial method.
  8. // ..
  9. }
  10. }

就是这样。请尝试一下,如果您有任何反馈,请告诉我们。

SDK 改进

[Epic] 新的 CLI 解析器 + 选项卡完成 #2191

对于**7.0.100-preview2 **, dotnet new命令为用户已经使用的许多子命令提供了更加一致和直观的界面。此外,对模板选项和参数的制表符完成的支持已得到大量更新,现在可以在用户键入时对有效参数和选项提供快速反馈。

以下是新的帮助输出示例:

  1. dotnet new --help
  2. Description:
  3. Template Instantiation Commands for .NET CLI.
  4. Usage:
  5. dotnet new [<template-short-name> [<template-args>...]] [options]
  6. dotnet new [command] [options]
  7. Arguments:
  8. <template-short-name> A short name of the template to create.
  9. <template-args> Template specific options to use.
  10. Options:
  11. -?, -h, --help Show command line help.
  12. Commands:
  13. install <package> Installs a template package.
  14. uninstall <package> Uninstalls a template package.
  15. update Checks the currently installed template packages for update, and install the updates.
  16. search <template-name> Searches for the templates on NuGet.org.
  17. list <template-name> Lists templates containing the specified template name. If no name is specified, lists all templates.

新命令名称

具体来说,此帮助输出中的所有_命令_不再像现在那样具有--前缀。这更符合用户对 CLI 应用程序中子命令的期望。旧版本( --install等)仍可用于防止破坏用户脚本,但我们希望将来在这些命令中添加过时警告以鼓励迁移。

Tab自动补全

dotnet CLI 在 PowerShell、bash、zsh 和 fish 等流行的 shell 上支持 tab 补全已经有一段时间了(有关如何启用它的说明,请参阅如何为.NET CLI 启用TAB 补全)。然而,实现有意义的补全取决于单独的dotnet命令。对于 .NET 7,new命令学习了如何提供Tab自动补全

  • 可用的模板名称(in dotnet new < template-short-name > )
  1. dotnet new angular
  2. angular grpc razor viewstart worker -h
  3. blazorserver mstest razorclasslib web wpf /?
  4. blazorwasm mvc razorcomponent webapi wpfcustomcontrollib /h
  5. classlib nugetconfig react webapp wpflib install
  6. console nunit reactredux webconfig wpfusercontrollib list
  7. editorconfig nunit-test sln winforms xunit search
  8. gitignore page tool-manifest wnformscontrollib --help uninstall
  9. globaljson proto viewimports winformslib -? update
  • 模板选项(Web模板中的模板选项列表)
  1. dotnet new web --dry-run
  2. --dry-run --language --output -lang
  3. --exclude-launch-settings --name --type -n
  4. --force --no-https -? -o
  5. --framework --no-restore -f /?
  6. --help --no-update-check -h /h
  • 这些模板选项的允许值(选择模板参数上的选择值)
  1. dotnet new blazorserver --auth Individual
  2. Individual IndividualB2C MultiOrg None SingleOrg Windows

当然也有一些已知的差距——例如,-- language不建议安装语言值。

未来的工作

在未来的预览版中,我们计划继续填补这一过渡留下的空白,并让自动完成或像用户可以执行的单个命令一样简单。我们希望这将改进整个dotnet CLI 的Tab补全功能,并被社区更广泛地使用!

下一步是什么

dotnet new users – 启用Tab补全并尝试使用模板!模板作者 – 在您的模板上尝试Tab补全,并确保您提供您希望您的用户拥有的体验。大家 - 提出您在dotnet/templating存储库中发现的任何问题,并帮助我们使.NET 7 成为dotnet new的最佳版本!

NativeAOT 更新

我们之前宣布,我们正在将NativeAOT 项目从实验状态转移到 .NET 7 的主线开发中。在过去的几个月里,我们一直在埋头进行编码,以将 NativeAOT 从实验性dotnet/runtimelab repo中移出并进入dotnet/runtimerepo。

该工作现已完成,但我们尚未在 dotnet SDK 中添加支持,来使用 NativeAOT 发布项目。我们希望尽快完成这项工作,以便您可以在您的应用程序中试用 NativeAOT。同时,请尝试修剪您的应用并确保没有修剪警告。修剪是 NativeAOT 的要求。如果您拥有任何库,请参考准备进行修剪库的说明

Targeting .NET 7

要targeting .NET 7,您需要在项目文件中使用 .NET 7 Target Framework Moniker (TFM)。例如:

<TargetFramework> net7.0 </TargetFramework>

全套 .NET 7 TFM,包括特定于操作系统的TFM。

  • net7.0
  • net7.0-android
  • net7.0-ios
  • net7.0-maccatalyst
  • net7.0-macos
  • net7.0-tvos
  • net7.0-windows

我们希望从 .NET 6 升级到 .NET 7 应该很简单。请报告您在使用 .NET 7 测试现有应用程序的过程中发现的任何重大更改。

支持

.NET 7 是 当前 版本,这意味着它将在发布之日起 18 个月内获得免费支持和补丁。请务必注意,所有版本的质量都是相同的。唯一的区别是支持的时间。有关 .NET 支持政策的更多信息,请参阅.NET 和.NET Core 官方支持政策

重大变化

您可以通过阅读 .NET 7 中的重大更改文档找到最新的.NET 7 重大更改列表。它按区域和版本列出了重大更改,并附有详细说明的链接。

要查看提出了哪些重大更改但仍在审核中,请关注Proposed .NET Breaking Changes GitHub 问题

路线图

.NET 版本包括产品、库、运行时和工具,代表了 Microsoft 内外多个团队之间的协作。您可以通过阅读产品路线图了解有关这些领域的更多信息:

结束

我们感谢您对 .NET 的所有支持和贡献。请尝试 .NET 7 Preview 2 并告诉我们您的想法!

官宣 .NET 7 Preview 2的更多相关文章

  1. 官宣 ! 52abp_Pro版本低调上线

    上线了 官宣!官宣!官宣! 重要的事情说三次. 是的,你没有看错 https://www.52abp.com/ 的官方企业模板:52abp-pro已经正式上线. 至此52abp.com的官方网站就算告 ...

  2. TPCx-BB官宣最新世界纪录,阿里巴巴计算力持续突破

    2019年9月17日,TPC官宣Alibaba Cloud MaxCompute认证结果.同月26日,杭州云栖大会阿里巴巴宣布了这一成绩,飞天大数据平台计算引擎MaxCompute成为全球首个TPCx ...

  3. 官宣 | Apache Flink 1.12.0 正式发布,流批一体真正统一运行!

    官宣 | Apache Flink 1.12.0 正式发布,流批一体真正统一运行! 原创 Apache 博客 [Flink 中文社区](javascript:void(0) 翻译 | 付典 Revie ...

  4. [刘阳Java]_Web前端入门级练习_迅雷官宣网设计

    也有一段时间没有写一些技术专题文章,今天给大家来几篇Web前端入门级练习的文章.主讲<迅雷官宣网>的设计,相信大家平时也用过迅雷这个下载工具,所以分享的这篇技术大家在一定程序会感兴趣. 先 ...

  5. Spring官宣网传大漏洞,并提供解决方案

    Spring沦陷了!这样的标题这几天是不是看腻了?然而,仔细看看都是拿着之前的几个毫不相干的CVE来大吹特吹.所以,昨天发了一篇关于最近网传的Spring大漏洞的文章,聊了聊这些让人迷惑的营销文.以及 ...

  6. 官宣 MAUI 在.NET Preview 3的最新进展

    我们在.NET 6 Preview 3中交付了.NET多平台应用UI的移动和桌面开发的最新进展.此版本添加了Windows平台和WinUI 3,改进了基本应用程序和启动构建器,添加了原生生命周期事件, ...

  7. 官宣!微软发布 VS Code Server!

    北京时间 2022 年 7 月 7 日,微软在 VS Code 官方博客中宣布了 Visual Studio Code Server! 远程开发的过去与未来 2019 年,微软发布了 VS Code ...

  8. MRT与MRTS工具官宣退休,推荐使用HEG

    今天错误的删除搞丢了之前下载的MRT与MRTS工具,浏览Modis官网下载时发现找不到了,后来在其官网上发现了这则通知,原来早已停止更新的MRT这次彻底退修了.通知原文如下~~~ The downlo ...

  9. 官宣:腾讯WeTest明星工具-PerfDog面向全球发布!

    导读 PerfDog(官网:perfdog.qq.com)作为移动全平台性能测试分析专业工具,在腾讯内部研发测试工具商店-WeTest Store上线后服务了近2000+名开发者,其中<王者荣耀 ...

随机推荐

  1. 自定义带图片和文字的Button的排版--陈棚

    自定义button,动态加载图片与文字 [footView addSubview:btnAllChoose]; [btnAllChoose setTitle:str forState:UIContro ...

  2. EPF:一种基于进化、协议感知和覆盖率引导的网络协议模糊测试框架

    本文系原创,转载请说明出处:from 信安科研人 目录 实验 工具的安装 1.安装AFL++ 2.安装epf 对IEC104协议库进行fuzz 实验准备 使用AFL++中的编译器插桩 开始fuzz 原 ...

  3. 长安战疫Wp

    长安战疫wp misc 八卦迷宫 直接走迷宫 cazy{zhanchangyangchangzhanyanghechangshanshananzhanyiyizhanyianyichanganyang ...

  4. netty系列之:channel和channelGroup

    目录 简介 神龙见首不见尾的channel channel和channelGroup channelGroup的基本使用 将关闭的channel自动移出 同时关闭serverChannel和accep ...

  5. Solution -「CEOI 2006」「洛谷 P5974」ANTENNA

    \(\mathcal{Description}\)   Link.   给定平面上 \(n\) 个点,求最小的能覆盖其中至少 \(m\) 个点的圆半径及一个可能的圆心.   \(n\le500\),坐 ...

  6. 利用 kubeasz 给 suse 12 部署 kubernetes 1.20.1 集群

    文章目录 1.前情提要 2.环境准备 2.1.环境介绍 2.2.配置静态网络 2.3.配置ssh免密 2.4.批量开启模块以及创建文件 2.5.安装ansible 2.5.1.安装pip 2.5.2. ...

  7. Centos下Ambari2.7.5的编译和安装

    前言 终于,要开始写点大数据相关的文章了.当真的要开始写老本行的时候,还是考虑了挺久的.一是不知道从何处写起,二是如何能写点有意思的. 我们常说,过程比结果重要.也是有很多人喜欢准备完全之后,才会开始 ...

  8. nginx 配置ssl证书

    1.443端口配置 server { listen 443 ssl; server_name www.test.com; ssl_certificate /usr/local/nginx/cert/t ...

  9. Django框架路由分发-名称空间

    目录 一:路由分发 1.路由分发简介 2.总路由分发配置 3.总路由终极配置(不需要导应用路由,直接点应用即可) 4.子路由配置 二:名称空间 1.名称空间应用场景 3.解决方式二>>&g ...

  10. 你的程序员女孩「GitHub 热点速览 v.22.09」

    本周最火的项目要数上周推荐的开源项目 How to Cook,火到一周涨了 18k+ star,但网友对它的定量烹饪方法褒贬不一.在本人看来,烹饪本就是一门"玄学",萝卜青菜各有所 ...