Appearance
入門編:.NET と Visual Studio の進化
.NET Framework 4.8.1 の開発者を対象に、.NET 10 への進化と開発環境の変化を解説します。
.NET Framework 4.8.1 から .NET 8 への進化
.NET Framework から .NET 8 への移行は、開発モデルと実行環境の大きな変革でした。
プラットフォームの共通化
.NET Framework は Windows だけで動作していました。.NET 8 は Windows、macOS、Linux で動作するクロスプラットフォームへと生まれ変わりました。これにより、Windows で開発したコードを Linux サーバーで動かすことが可能になりました。
不要な機能の廃止と代替技術
ASP.NET Web Forms や WCF (Windows Communication Foundation) などの古い技術は .NET 8 に移植されていません。Web Forms からの移行先としては Razor Pages や Blazor が推奨されます。WCF の代わりには gRPC やコミュニティによって開発されている Core WCF を使用します。
依存性の注入 (DI) の標準搭載
.NET Framework では Unity や Autofac などの外部ライブラリを導入して DI を実現していました。.NET 8 では、フレームワーク自体に軽量な DI コンテナーが組み込まれています。
スタートアップ処理の統合
Global.asax や Startup.cs は廃止されました。現在は Program.cs の中に初期設定とリクエストの処理経路 (パイプライン) をすべて記述します。
従来の Global.asax や Web.config による設定から、Program.cs によるコードベースの設定に変わりました。
csharp
// .NET 8 以降の Program.cs の例
var builder = WebApplication.CreateBuilder(args);
// DI コンテナーにサービスを登録
builder.Services.AddControllers();
var app = builder.Build();
// ミドルウェアパイプラインの設定
app.UseHttpsRedirection();
app.UseAuthorization();
app.MapControllers();
app.Run();.NET 8 から .NET 10 への進化
.NET 8 から最新の .NET 10 にかけて、さらなる高速化と開発効率の向上が図られました。
C# 言語の進化 (C# 12 から C# 14)
クラスの宣言と同時にコンストラクターを定義できる「プライマリコンストラクター」や、配列やリストを簡単に記述できる「コレクション式」が導入されました。これにより、コードの行数が減り、バグが入り込む余地が少なくなりました。
csharp
// C# 12 以降のプライマリコンストラクターの例
public class UserService(IUserRepository repository)
{
public void RegisterUser(string name)
{
repository.Save(name);
}
}Native AOT (Ahead-of-Time) コンパイルの本格導入
従来の .NET アプリケーションは、実行時に中間言語 (IL) を機械語に翻訳していました。Native AOT を使うと、ビルド時に直接機械語の実行ファイルを生成します。これにより、起動速度がミリ秒単位になり、使用するメモリ容量も極めて小さくなります。コンテナ環境やサーバーレス環境での実行に最適です。
AI 機能のネイティブ統合
.NET 10 では、AI モデルと連携するための標準 API が組み込まれました。外部の AI サービスや、ローカルで動作する小規模言語モデル (SLM) を使ったチャット機能などを、統一されたコードで簡単に呼び出せます。
Visual Studio 2022 から Visual Studio 2026 への進化
開発ツールである Visual Studio も、2022 から 2026 へと大幅に進化しました。
GitHub Copilot の深い統合
Visual Studio 2026 では、AI アシスタントである GitHub Copilot が開発環境の一部としてネイティブに動作します。コメントからコードを生成するだけでなく、デバッグ中に発生したエラーの原因を AI が分析し、ワンクリックで修正コードを適用してくれます。
診断ツールとプロファイラーの強化
非同期処理 (async/await) の実行状態をグラフィカルに可視化する機能が向上しました。どのタスクが処理待ちになっているかを一目で特定できます。また、メモリリークを自動で検出するスマート分析機能も追加されました。
ホットリロードの適用範囲拡大
プログラムを動かしたままコードを修正して反映する「ホットリロード」の成功率が向上しました。ジェネリック型の変更やラムダ式の書き換えなど、これまでプログラムの再起動が必要だった多くのコード変更が、実行したまま即座に反映されるようになりました。