Skip to content

入門編:.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) の実行状態をグラフィカルに可視化する機能が向上しました。どのタスクが処理待ちになっているかを一目で特定できます。また、メモリリークを自動で検出するスマート分析機能も追加されました。

  • ホットリロードの適用範囲拡大

    プログラムを動かしたままコードを修正して反映する「ホットリロード」の成功率が向上しました。ジェネリック型の変更やラムダ式の書き換えなど、これまでプログラムの再起動が必要だった多くのコード変更が、実行したまま即座に反映されるようになりました。