Skip to content

.NET Framework、.NET Core、.NET Standard、.NETの違い

問題の概要

.NETエコシステムには「.NET Framework」「.NET Core」「.NET Standard」「.NET」という類似した名称のテクノロジーが存在し、初心者がそれらの違いと用途を理解するのは困難です。これらの概念を明確に区別し、どのようなシチュエーションでどのテクノロジーを選択すべきかを理解することは、現代の.NET開発において不可欠です。

.NETの基本概念

まず重要な前提として、.NETは言語横断的な開発プラットフォームです。C#、VB.NET、F#などのプログラミング言語をサポートし、共通の中間言語(IL)にコンパイル後、共通のランタイム環境で実行されます。

.NETエコシステムのコア要素

  • 言語: C#、VB.NET、F#など
  • コンパイラ: ソースコードを中間言語(IL)に変換
  • ランタイム: ILをネイティブコードに実行 (CLR共通言語ランタイム)
  • クラスライブラリ: 開発者が利用する共通APIセット

各テクノロジーの詳細な解説

1. .NET Framework

  • 用途: Windows専用アプリケーション開発(デスクトップ/Web)
  • プラットフォーム: Windowsのみ
  • 状況: レガシーシステム(最終バージョンは4.8.x)
  • サポート: メインストリーム開発終了(セキュリティアップデートは継続)
  • 特徴:
    • Windows固有技術(WCF、ASP.NET Web Forms等)を完全サポート
    • 長年の実績あるエンタープライズ向けソリューション

重要

.NET Frameworkの新規開発は推奨されません。既存システムのメンテナンス用途に限定し、新規プロジェクトでは後述の.NETを採用すべきです。

2. .NET Core → .NET (5以降)

  • 進化: .NET Core は .NET 5+ へ改名/統合
  • 用途: クロスプラットフォーム対応アプリ開発
  • プラットフォーム: Windows/macOS/Linux/iOS/Android
  • 最新状況: .NET 8+ (2025年現在のアクティブバージョン)
  • 特徴:
    • ゼロから書き直されたモダンな設計
    • 軽量で高性能
    • オープンソース(MITライセンス)
    • コンテナ化環境に最適
    • マイクロサービスアーキテクチャ対応
csharp
// .NETでの基本的なコンソールアプリ例
using System;

Console.WriteLine("Hello, Cross-Platform .NET!");

3. .NET Standard

  • 本質: 仕様(実装ではない)
  • 目的: 異なる.NET実装間でのバイナリ互換性確保
  • 動作原理:
    • APIの共通セットを定義
    • .NET Standard準拠ライブラリは対応実装であればどこでも実行可能
  • 使用シナリオ例:
    • .NET Framework プロジェクトと .NET プロジェクトで共通ライブラリを共有

.NET Standardのバージョン互換性

.NET Standard.NET Framework.NET Core.NET (5+)
1.0 - 1.64.5 - 4.81.0 - 3.1
2.04.6.1+2.x+
2.13.x+

.NET Standardの将来性

.NET 5以降では基本ライブラリの統一が完了し、.NET Standardの役割は縮小。新規プロジェクトでは.NET Standard 2.0/2.1のみを考慮し、それ以上のバージョン計画はありません。

バージョン履歴と命名の変遷

1. .NET Framework (2002~) : Windows専用プラットフォーム
2. .NET Core 1.0-3.1 (2016~2020) : クロスプラットフォーム版
3. .NET 5+ (2020~) : .NET Coreの後継、単一プラットフォームに統合
   (.NET Framework 4.xとのバージョン衝突回避のため5開始)

技術選定ガイドライン(2025年現在)

プロジェクトタイプ推奨テクノロジー理由
新規クロスプラットフォーム.NET (最新版)最新機能、パフォーマンス、長期サポート
既存.NET Framework更新.NET Framework互換性維持(WPF/WinForms等)
マルチターゲット共有ライブラリ.NET Standard 2.0最大互換性(古いFramework含む)
.NET Core/標準系間共有.NET Standard 2.1最新API利用可能

最新プロジェクトの推奨アプローチ

.NET 8+はWindows専用機能(Windows Forms/WPF)も提供しています。

主要技術の比較表

特徴.NET Framework.NET (Core/5+).NET Standard
プラットフォームWindowsのみクロスプラットフォーム仕様のみ
オープンソース
軽量/高速起動N/A
アクティブ開発
コンテナ対応N/A
マイクロサービス非推奨推奨N/A

移行戦略

  1. ステップバイステップ移行:

    markdown
    1. .NET Frameworkアプリを.NET Standardライブラリ経由で分割
    2. 部分的なコンポーネントを.NETに移植
    3. 最終的に全システムを.NETに移行
  2. Windows固有機能の対応:

    • WCF ➔ gRPCやASP.NET Core Web APIへ移行
    • ASP.NET WebForms ➔ BlazorやRazor Pagesへ代替

結論

  • 新規開発: 常に最新の**.NET**(現在.NET 8+)を採用
  • 既存システム: .NET Frameworkはメンテナンスフェーズ移行を計画
  • 共有ライブラリ: ターゲット環境で.NET Standard 2.1をサポートしていれば採用
  • 学習リソース: 公式Microsoftドキュメントが常に最新情報を提供

変革するエコシステムではありますが、.NETの未来は単一プラットフォーム(.NET 5+)への収束が明確です。新しいプロジェクトではクロスプラットフォーム対応かつ高性能な.NETを選択し、既存システムは段階的移行を検討するのが最善の戦略です。