.NET 11、古いCPUを切り捨てて非同期処理をランタイムへ移行
What's new in the .NET 11 runtime
.NET 11のランタイムでは、最低ハードウェア要件が引き上げられ、x86/x64はx86-64-v2、WindowsのArm64はLSE命令が必須となり、古いCPUでは起動しなくなる。一方でRuntime Async V2がプレビューとして導入され、コンパイラ生成の状態マシンをランタイム管理の中断・再開に置き換える。スタックトレースは13フレームから5フレームに減り、デバッグ性と性能が向上する。
Runtime Asyncでは、実際のメソッドがコールスタックに直接現れる。
HNでの議論
155- CharlieDigital
私の経験では、C#と.NETはどちらも「過小評価されている」と感じますが、その大きな理由の一つはレガシーなイメージです。
世の中にはまだ.NETはWindows専用だと思っている人もいます。.NET Framework時代からC#を全く見ていない人もいます。MicrosoftのOSSに関するいくつかの決定(デバッガー、ホットリロードの失敗など)にまだ怒っている人もいます。
でも、バックエンドでC#と.NETを日常的に使うのは?本当に素晴らしいです。AIはこれをとても気に入っているようで、エージェント向けのツールもたくさんあります。Roslynアナライザー、ソースジェネレーター、実用的なホットリロード(コンパイル言語としては)、Microsoftによる大量の優れたドキュメント、コードベース間での変動が少なく一貫性が高いこと(例えばNodeの世界でDrizzle vs Prisma vs TypeORM vs Kysely vs ... などと遭遇するようなことはない)。
前のチームはTSからC#とF#[0][1]に切り替え、それは福音でした。プラットフォーム運用の多くが簡素化されました。ただ一つの非常に堅牢なツールチェーンで、パッケージは概して安定しています(プラットフォームの設定/ツールの維持に費やす労力が減り、構築に集中できます)。ファーストパーティのパッケージは一貫したセキュリティアップデートを受け、C#はJS/TSエコシステムで遭遇するような推移的パッケージへの露出がほとんどありません。
C#はAIコーディング時代において、その一般的な安定性、強力な静的アナライザー、型へのこだわり、そして本当に優れたツールのおかげで、非常に堅実な選択肢に感じられます。すべてのユースケースに適しているわけではありません(例:CLI、サーバーレス関数)が、バックエンドAPIには素晴らしいです。
もしあなたが探しているなら […]
- giancarlostoro
C#はVB6の次に学んだ2番目のプログラミング言語でした。2000年代初頭、私が12歳の頃、親友のコンピューター(彼の方がインターネットが速かった)を使ってVB .NETをダウンロードしようとしたのを覚えています。無料だったからです。そして、VB6のプロジェクトをそのまま実行できないことにひどく失望しました…数年後、2007年から2009年頃にC#を試して、それは人生を変えるものでした。
ディズニーで小売の仕事をした後、大学に行き、卒業後の最初の仕事はC#の予定でしたが、プロジェクトが承認されず、代わりにPythonに初めて触れました。それが大好きになり、次にJavaScriptに触れ、それは嫌いでしたが、今日に至るまで愛憎関係にあります。最後にC#でしたが、それは.NET 3.5ではなく、.NET Coreを使い始めました。それは…何か別物で、初期の.NET Core時代は多くの苦労がありました。
.NETで作られた素晴らしいプロジェクトがたくさんありますが、唯一の不満は、Microsoftが実際にコミットしてLinuxでも動作するクロスプラットフォームのGUIスタックを作ってほしいということです。;)
代替手段があることは知っていますが、GUIスタックを選ぶときに同僚に「組み込みのものを使おう」と言うのに勝るものはありません。
- wofo
.NETのリリースではいつものように素晴らしいですね!ランタイムの非同期サポートには驚きました…コードにステートマシンがない方がスタックトレースが親しみやすいのはわかりますが、ランタイムバージョンに切り替えて同等のパフォーマンスが得られるとは思いませんでした。すごい!
- 1a527dd5
https://learn.microsoft.com/en-us/dotnet/core/compatibility/...
注意してください
(decimal)0.1
// .NET 10: 0.1
// .NET 11: 0.1000000000000000055511151231
- mgdev
彼らは、非Windows開発者を.NETから遠ざけた多くの混乱を招くバージョン管理とランタイム互換性の問題を解決するために多くを行ってきたように感じます。
しかし、彼らは依然として信じられないほどのブランディング問題を抱えています。
ランタイムとしてはかなり素晴らしいので本当に残念です。特にF#は楽しく作業できます。また、数年前にはなかった優れたクロスプラットフォームサポートとツールも持っています。
それに、AIのおかげで誰も実際にコードを書かないという事実を組み合わせると、これはAIネイティブの開発環境にとって決定的なランタイムになる可能性があります。
しかし、それは決して起こらないでしょう。
- GaProgMan
> .NET 11は、.NETサポートポリシーの下で2年間のサポートがあるStandard Term Support(STS)リリースです。STSとLong Term Support(LTS)リリースは同じ品質とサービスポリシーを持ち、違いはサポートの長さです。.NET 10はサポートされているLTSオプションのままです。どちらのリリースを選んでも、サービス更新で最新の状態を保ってください。
彼らはこの点で要点を埋もれさせています。
- .NET 10は2028年11月14日にサポート終了
- .NET 11は2028年11月9日にサポート終了
つまり、11にアップグレードする人はサポート日数が少なくなります。しかし、考え方は12がRTMになったらすぐにアップグレードするということです。
問題は、2.1から動かない(あるいは2.1の再リリースである2.3にアップグレードすることさえ拒む)クライアントがいることです。
- jotato
最近、人々はC#にどのIDEを使っているのでしょうか?昔(2008年頃)はVisual Studioが唯一の現実的な選択肢でした。
しかし、私は今Linuxを使っています。もし再開したいなら、何を使うべきでしょうか?
- SurajMishra
Goと.NETで重複する機能について、なぜ人々が非レガシーシステムでGoではなく.NETを選ぶのか教えてもらえますか?私の限られた知識では、Goは構文とメモリの面ではるかに効率的です。