ネットは20年を祝い、私たちに贈り物をもたらします🎁: 新しい.純7機能を明らかに
13385 ワード
誰より良い人の20周年を発表する.ビルゲイツよりネット?さて、それはどのようにして2002 VSLive!
すごい!しかし、あなたが知らなかったならば、...に従ってStack Overflow survey , 過去3年間の開発者による最も愛されたフレームワークされています.
はい.NET Frameworkは2002年にその創設以来20年を祝いました、そして、ちょうど2、3日前、マイクロソフトはリリースしましたnew features of .NET 7 , これは、今年11月に正式にリリースされる予定です.これらの機能が何であるかを見て、それらを分析しましょう!
新しいRegexのソースジェネレータは、最大5 xの時間は、関連するパフォーマンスの利点のいずれかを犠牲にすることなく、私たちのコンパイルされたエンジンからパターンを最適化に費やされるまでオフに剃ることができることを意味します.さらに、それはAの中で動くので
あなたがする必要があるのは、属性との部分的な宣言をセットアップすることです
の比較を見てみましょうMicrosoft example :
以前
仕事をする人たちのために.ネットフレームワーク
もっと深く行きたいならばoriginal example from Microsoft:
コマンドラインは一般的に変更されました-特に、この出力で示されるすべてのコマンドは、もはや以下を含みません
古いコマンドのバージョン(
長い間、DotNetのコマンドラインインターフェイスは、シェルシェルのPowerShell、bash、zsh、および魚のタブ補完をサポートしています.コマンド自身が与えられたときに表示するものを決定することができます.
さあ.ネット7
マイクロソフトは最近、プログラムの最適化のための新しいブレークスルーを導入しました.ダイナミックなPGOと呼ばれて、我々がすでに知っている静的PGOから若干の重要な変化をするように設計されています.ここで静的なPGOは、開発者が訓練とは別に、特別なツールを使用する必要があります、ダイナミックなPGOはそのいずれかを必要としませんすべてを行う必要がある場合は、最適化に興味を持っているアプリケーションを実行し、マイクロソフトのデータを収集!
さて、Andy Ayers インGitHub , 以下を追加します.
我々が決定することができるように、ローカルモーフによってされるレファレンスカウントを広げてください
シングルDEFのシングルユースを使用します.
しようとするローカルモーフの直後に実行するフェーズを追加
フォワードシングルDEFシングルローカルディフェンスを使用しているときに使用する
隣接文.
他の場所で発見された問題を修正または回避する いくつかのSIMD/HW操作はstructハンドルを失うことがあります. いくつかの呼び出しはstruct local argsを扱うことができません. あなたは、チェックすることができますoriginal pull 詳細は
結論
これらの機能は、マイクロソフトによって明るみに出てきた最後のものです、そして、我々は彼らが我々に示すどんな機能を見る必要があります.
我々がすべて見ることができる限り(そして、マイクロソフトが我々を見る限り)、すべては計画に従って進んでいます、そして、我々は公式発表を期待することができます.本年7月末(7月より).
だから今のところ、我々はマイクロソフトの発表やニュースを見ている.ネット7!
すごい!しかし、あなたが知らなかったならば、...に従ってStack Overflow survey , 過去3年間の開発者による最も愛されたフレームワークされています.
はい.NET Frameworkは2002年にその創設以来20年を祝いました、そして、ちょうど2、3日前、マイクロソフトはリリースしましたnew features of .NET 7 , これは、今年11月に正式にリリースされる予定です.これらの機能が何であるかを見て、それらを分析しましょう!
改良Regexソース発生器
新しいRegexのソースジェネレータは、最大5 xの時間は、関連するパフォーマンスの利点のいずれかを犠牲にすることなく、私たちのコンパイルされたエンジンからパターンを最適化に費やされるまでオフに剃ることができることを意味します.さらに、それはAの中で動くので
partial
クラスでは、実行時にユーザーがパターンを知っている場合のコンパイル時間のオーバヘッドはありません.この機能を使用すると、コンパイル時にあなたのパターンを知ることができます、このジェネレータは、伝統的にコンパイラベースのアプローチの代わりに推奨されます.あなたがする必要があるのは、属性との部分的な宣言をセットアップすることです
RegexGenerator
これは、既にコンパイル済みの正規表現オブジェクト(他のすべての機能を有効にしたもの)を返すメソッドを指します.私たちのジェネレータは、そのメソッドを作成し、必要に応じて、元の文字列またはオプションで渡された変更に応じて必要に応じてそれを更新します.の比較を見てみましょうMicrosoft example :
以前
public class Foo
{
public Regex regex = new Regex(@"abc|def", RegexOptions.IgnoreCase);
public bool Bar(string input)
{
bool isMatch = regex.IsMatch(input);
// ..
}
}
その後public partial class Foo // <-- Make the class a partial class
{
[RegexGenerator(@"abc|def", RegexOptions.IgnoreCase)] // <-- Add the RegexGenerator attribute and pass in your pattern and options
public static partial Regex MyRegex(); // <-- Declare the partial method, which will be implemented by the source generator
public bool Bar(string input)
{
bool isMatch = MyRegex().IsMatch(input); // <-- Use the generated engine by invoking the partial method.
// ..
}
}
SDKの改良
仕事をする人たちのために.ネットフレームワーク
dotnet new
より簡単なタスクになります.改善された直観性とタブ完成の増加した速度のような主要なアップデートで、それはこの変化に関して何か否定的なものを見つけるのが難しいでしょう.もっと深く行きたいならばoriginal example from Microsoft:
❯ dotnet new --help
Description:
Template Instantiation Commands for .NET CLI.
Usage:
dotnet new [<template-short-name> [<template-args>...]] [options]
dotnet new [command] [options]
Arguments:
<template-short-name> A short name of the template to create.
<template-args> Template specific options to use.
Options:
-?, -h, --help Show command line help.
Commands:
install <package> Installs a template package.
uninstall <package> Uninstalls a template package.
update Checks the currently installed template packages for update, and install the updates.
search <template-name> Searches for the templates on NuGet.org.
list <template-name> Lists templates containing the specified template name. If no name is specified, lists all templates.
新しいコマンド名
コマンドラインは一般的に変更されました-特に、この出力で示されるすべてのコマンドは、もはや以下を含みません
--
接頭辞として現在.これは、ユーザーがコマンドラインのために構築されたアプリケーションのサブコマンドから期待するものと整列するために行われました.古いコマンドのバージョン(
--install
, スクリプトを中断した場合にはまだ利用できますが、ある日、これらのコマンドに対する推奨警告があることを願っています.タブキー補完
長い間、DotNetのコマンドラインインターフェイスは、シェルシェルのPowerShell、bash、zsh、および魚のタブ補完をサポートしています.コマンド自身が与えられたときに表示するものを決定することができます.
さあ.ネット7
new
コマンドには非常に多くの機能があります.❯ dotnet new angular
angular grpc razor viewstart worker -h
blazorserver mstest razorclasslib
web wpf /?
blazorwasm mvc razorcomponent webapi wpfcustomcontrollib /h
classlib nugetconfig react webapp wpflib install
console nunit reactredux webconfig wpfusercontrollib list
editorconfig nunit-test sln winforms xunit search
gitignore page tool-manifest winformscontrollib --help uninstall
globaljson proto viewimports winformslib -? update
あなたがそれを有効にする方法を知って興味があるならば、私はあなたをチェックすることを勧めますMicrosoft’s guide . そして同様に、この機能のすべての可能性を知りたい場合は、再度相談することをお勧めしますoriginal source .ダイナミックなPGO改善
マイクロソフトは最近、プログラムの最適化のための新しいブレークスルーを導入しました.ダイナミックなPGOと呼ばれて、我々がすでに知っている静的PGOから若干の重要な変化をするように設計されています.ここで静的なPGOは、開発者が訓練とは別に、特別なツールを使用する必要があります、ダイナミックなPGOはそのいずれかを必要としませんすべてを行う必要がある場合は、最適化に興味を持っているアプリケーションを実行し、マイクロソフトのデータを収集!
さて、Andy Ayers インGitHub , 以下を追加します.
我々が決定することができるように、ローカルモーフによってされるレファレンスカウントを広げてください
シングルDEFのシングルユースを使用します.
しようとするローカルモーフの直後に実行するフェーズを追加
フォワードシングルDEFシングルローカルディフェンスを使用しているときに使用する
隣接文.
他の場所で発見された問題を修正または回避する
gtFoldExprCompare
は"同一"の揮発性部分木を折り畳むかもしれません.fgGetStubAddrArg
複雑なツリーを処理できません.結論
これらの機能は、マイクロソフトによって明るみに出てきた最後のものです、そして、我々は彼らが我々に示すどんな機能を見る必要があります.
我々がすべて見ることができる限り(そして、マイクロソフトが我々を見る限り)、すべては計画に従って進んでいます、そして、我々は公式発表を期待することができます.本年7月末(7月より).
だから今のところ、我々はマイクロソフトの発表やニュースを見ている.ネット7!
Reference
この問題について(ネットは20年を祝い、私たちに贈り物をもたらします🎁: 新しい.純7機能を明らかに), 我々は、より多くの情報をここで見つけました https://dev.to/dotnetsafer/net-celebrates-20-years-and-brings-us-a-gift-new-net-7-features-revealed-fbaテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol