日曜日, 5月 25, 2025
ホームニューステックニュース.NETってなに? C#との違いを理解する #開発環境 - Qiita

.NETってなに? C#との違いを理解する #開発環境 – Qiita



.NETってなに? C#との違いを理解する #開発環境 - Qiita

C#を学んでいくに当たって、.NETとは?と疑問に感じたので自分なりに調べたものをまとめました。

C#.NETは別物です。
C#はプログラミング言語で.NETは実行環境です。
公式では「アプリケーションプラットフォーム」という言い方をしています。
アプリケーションプラットフォームとはプログラミング言語とライブラリがセットになったものとされています。

C#ではソースコードを実行する前にコンパイルをする必要があります。
C#で書いたソースコードをコンパイルすると中間言語(ILコード)が作成され、.NETアセンブリファイルに保存されます。
その.NETアセンブリファイル.NETランタイムが実行します。

つまり.NETとはC#などで作成したアプリケーションを実行するための環境のこととも言えます。

イメージ
スクリーンショット 2025-05-24 9.22.02.png

.NETランタイムではC#以外にもF#Visual Basicという言語もサポートしています。

C#.NETの関係を例えるなら

  • C# => 楽譜
  • .NET => ピアノ
    みたいな感じですかね。

SDK(Software Development Kit)のことで、.NETでの開発で必要なものがまとまったもので以下のようなものが含まれています。

  • .NETランタイム(プログラム実行用)
  • コンパイラー(C#コードを中間言語に変換)
  • 開発ツール(dotnetコマンドなど)
  • 基本ライブラリ(文字列操作、ファイルI/Oなど)

C#で開発するのであれば必ず.NET SDKをインストールして環境を構築していきます。

かつて.NETには複数の実装がありました:

  • .NET Framework:Windows専用のアプリケーションプラットフォーム
  • .NET Core:クロスプラットフォーム対応のアプリケーションプラットフォーム
  • Mono:軽量・モバイル向けのアプリケーションプラットフォーム

.NET 5からこれらが統合されて単に.NETとなっています。

.NET上で作成する様々なアプリモデル(Webアプリ、ゲーム開発、デスクトップアプリなど)に対応したフレームワークが用意されています。

カテゴリ フレームワーク名 説明
Web ASP.NET Core サーバー側ロジックを作成するためのフレームワーク
Web ASP.NET Core MVC Web ページまたは Web API のサーバー側ロジックを作成するためのフレームワーク
Web ASP.NET Core Razor Pages サーバーで生成される HTML を作成するためのフレームワーク
Web クライアント Blazor ASP.NET Core の一部。2つのモード(サーバー側通信またはWebAssembly)でブラウザのDOM操作が可能
デスクトップ .NET for Mac ネイティブ UI と API アクセスを使って、Mac デバイス用のアプリを構築
デスクトップ WinForms Windows で “battleship gray(鈍いグレー)” スタイルのアプリケーションを作成
デスクトップ Windows Presentation Foundation (WPF) 動的デスクトップアプリケーション構築。豊富なアニメーション機能を提供
モバイル .NET for Android ネイティブ UI と API アクセスを使って、Android デバイス用のアプリを構築
モバイル .NET for iOS ネイティブ UI と API アクセスを使って、iOS と iPadOS 用のアプリを構築
マルチプラットフォーム .NET MAUI 1つの共有コードベースから iOS、Android、Mac、Windows 用のアプリを構築

.NETとは「プラットフォーム全体」の名前

  • プログラミング言語(C#、F#、Visual Basic)
  • ランタイム(実行環境)
  • 開発ツール(SDK、コンパイラー)
  • ライブラリ群(Base Class Library)
  • フレームワーク(ASP.NET Coreなど)

Javaと比較すると例えるとこんなイメージ

Java = プラットフォーム全体の名前
├── Java言語
├── JVM(実行環境)  
├── JDK(開発キット)
└── Spring等のフレームワーク

.NET = プラットフォーム全体の名前
├── C#言語
├── .NETランタイム(実行環境)
├── .NET SDK(開発キット)
└── ASP.NET Core等のフレームワーク

参考資料





Source link

Views: 0

RELATED ARTICLES

返事を書く

あなたのコメントを入力してください。
ここにあなたの名前を入力してください

- Advertisment -

インモビ転職