Microsoft .NET Framework
Microsoft
.NET Frameworkは、アプリケーション開発と実行を行うために
マイクロソフトが開発したプラットフォームです。最終バージョンとなる4.8のリリースをもって、新規開発の推奨環境は
.NETに移行していますが、セキュリティやバグ修正の更新は今後も続く予定です。
このフレームワークは、Windowsアプリケーションのみならず、XML
Webサービスやウェブアプリケーションを含む多様なアプリケーションの開発をサポートしています。今では、オープンソース版の
.NET CoreやMonoを含む、広義な「
.NET」の環境が存在しています。従来のWindows専用の
.NET Frameworkと区別するために、後者は単に「
.NET Framework」と呼ばれています。
アーキテクチャ
このフレームワークの核心は共通言語基盤(CLI)であり、これは言語に依存しない環境を実現するために設計されています。
マイクロソフトの実装である共通言語ランタイム(CLR)は、以下の5つの主要な要素で構成されています:
- - 共通型システム(CTS): データ型の共通仕様を定めています。
- - 共通言語仕様(CLS): 異なるプログラミング言語間での互換性を確保します。
- - 共通中間言語(CIL): プログラムがこの中間言語にコンパイルされ、これを基に実行されます。
- - ジャストインタイムコンパイラ(JIT): CILコードをネイティブコードに変換する際に使用されます。
- - 仮想実行システム(VES): プログラムの実行を制御します。
CILはアセンブリと呼ばれる単位に格納され、これによりプログラムの配布やバージョニングが管理されます。また、すべてのCILコードはメタデータと呼ばれる自己情報を保持し、正しいメソッド呼び出しが行われているかをチェックするのに役立ちます。
設計目標と特長
.NET Frameworkは次のような設計目標に基づいて構築されています。
1.
相互運用性: 既存のプログラムとの相互作用を促進するための方法を提供。
2.
共通の実行環境: さまざまな言語で書かれたプログラムが同じ実行環境で動作できるようにします。
3.
言語への非依存性: 複数の
プログラミング言語を用いた開発が可能。
4.
基本クラスライブラリ(BCL): ファイル操作やデータベース処理などの基本機能を提供。
5.
配置の管理: ソフトウェアが適切にインストールされるよう、相互干渉やセキュリティ問題を回避する機能を提供します。
6.
セキュリティ: サンドボックスを利用せずに多様な権限レベルでコードを実行します。
用語
- - マネージコード: CLRが管理するコードであり、.NET Frameworkで書かれた大半のコードが該当します。
- - アプリケーションドメイン: CLR内でのコードの実行環境を区切る単位。
- - メタデータ: コードに関連したクラスや型、インタフェースなどの情報を保持します。
- - アセンブリ: アプリケーションの配布、利用単位であり、メタデータを含みます。
統合開発環境
.NET Frameworkに対応した開発環境としては、
Microsoft Visual StudioやVisual Studio Code、JetBrains Riderなどがあります。また、C#、Visual Basic
.NETなどのコンパイラは無償で提供されています。
2014年には、
.NET Frameworkの一部がオープンソースとして公開されました。これにより、他のプラットフォーム向けにこれを利用した
プロジェクトが進められています。例えば、Mono
プロジェクトやDotGNU Projectなど、さまざまなオープンソース
プロジェクトが存在し、Windows以外のOSでも
.NET Frameworkで開発したアプリケーションを動作させることが可能です。
まとめ
Microsoft
.NET Frameworkは、その汎用性と相互運用性から多くの開発者に支持されてきましたが、今後は
.NETの進化に伴い変化が求められています。このフレームワークがもたらした影響は非常に大きく、今後のソフトウェア開発の進展にも寄与することでしょう。