.NET 11が登場、C# 15のunion型とNative AOTで日常のビルド待ちを削る
Microsoftが.NET 11を正式リリース。C# 15ではunion型とclosed hierarchiesが導入され、アプリの取りうる状態をコンパイラが網羅的にチェックできる。SDKはNative AOTのCLIホストと常駐MSBuildサーバーを既定で有効化し、コマンド実行の待ち時間を短縮。ASP.NET Coreの非同期バリデーション、BlazorのAIコンポーネント、MCPサーバーテンプレートなどAIエージェント開発向けの機能も揃う。サポート期間は2年のSTS。
この結果型は、呼び出し側がどの結果を処理すべきかを示してくれる。それらの結果を1つの戻り値型にまとめるためだけに、objectや無関係な基底クラスを使う必要はない。
HNでの議論
189- CharlieDigital
私の経験では、C#と.NETはどちらも「過小評価されている」と感じますが、その大きな理由の一つはレガシーにあります。
.NETはWindows専用だと思っている人もまだいます。.NET Framework時代からC#を全く見ていない人もいます。MicrosoftのOSSに関するいくつかの決定(デバッガー、ホットリロードの騒動など)にまだ不満を持っている人もいます。
しかし、バックエンドでC#と.NETを日常的に使うのはどうか?本当に素晴らしいです。AIはこれをとても好むようで、エージェント向けのツールもたくさんあります。Roslynアナライザー、ソースジェネレーター、実用的なホットリロード(コンパイル言語としては)、Microsoftによる大量の優れたドキュメント、コードベース間での変動が少なく一貫性が高いこと(例:Nodeの世界でDrizzle対Prisma対TypeORM対Kysely対…と遭遇するようなことはない)。
前のチームはTSからC#とF#に切り替えましたが、それは祝福でした。プラットフォーム運用の多くが簡素化されました。非常に堅牢なツールチェーンが一つあり、パッケージは概して安定しています(プラットフォームの設定/ツールの維持に費やす労力が減り、構築に集中できます)。ファーストパーティのパッケージは一貫したセキュリティアップデートを受け、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が実際に固執するクロスプラットフォームのGUIスタックを作り、Linuxでも動作するようにしてほしいということです。;)
代替手段があることは知っていますが、GUIスタックを選ぶときに同僚に「組み込みのものを使おう」と言うことに勝るものはありません。
- 1a527dd5
https://learn.microsoft.com/en-us/dotnet/core/compatibility/...
注意してください
(decimal)0.1
// .NET 10: 0.1
// .NET 11: 0.1000000000000000055511151231
- dead_hn_theory
C#と.NETはプログラミングが本当に楽しいです。私には少し「エンタープライズ寄りのRuby on Rails」のように感じられ、一度慣れると流れがあります。特にLINQを使うと、物事が非常にうまく組み合わさります。Roslyn Compiler Servicesなどを使った実行時のコードコンパイル/「スクリプティング」は素晴らしいです。
- wofo
.NETのリリースではいつものように素晴らしいですね!ランタイムのasyncサポートには驚きました…コードにステートマシンがない方がスタックトレースが親しみやすいのはわかりますが、ランタイム版に切り替えて同等のパフォーマンスが得られるとは思いませんでした。すごい!
- Rapzid
DotNetについに公式のバージョンマネージャーができました!dotnetupをチェックしてください: https://learn.microsoft.com/en-us/dotnet/core/tools/dotnetup...
- jotato
最近、C#にはどんなIDEを使っているのでしょうか?昔(2008年頃)はVisual Studioが唯一の現実的な選択肢でした。
しかし今はLinuxにいます。もし再び始めたいなら、何を使うべきでしょうか?
- GaProgMan
> .NET 11はStandard Term Support (STS)リリースで、.NETサポートポリシーの下で2年間のサポートがあります。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にすらアップグレードしない)クライアントがいることです。