次の方法で共有


開発のための一般的な概念

互換性のある言語を使う限り、.NET によるプログラミングのほとんどの部分はどの言語の場合でも同じです。これは、サポートされている各言語のコンパイラが自己記述型のマネージ MSIL (Microsoft Intermediate Language) コードを生成するためです。すべてのマネージ MSIL コードは、共通言語ランタイムで実行されます。共通言語ランタイムは、言語間の統合、自動メモリ管理、複数言語にまたがる例外処理、強化されたセキュリティ、およびコンポーネント間での単純化された対話モデルを実現します。

また、.NET Framework SDK は .NET Framework クラス ライブラリも提供しており、このライブラリの構成は名前空間の単一の階層ツリーになっています。ルートには System 名前空間があり、この名前空間に格納されているオブジェクト (クラスやインターフェイスなどの定義済みの型を含む) は、サポートされているすべての言語から使用できます。System オブジェクトは、Mscorlib.dll に格納されており、すべてのアプリケーションによって使用されます。.NET Framework クラス ライブラリには、ファイル I/O、メッセージ処理、ネットワーク処理、およびセキュリティのための名前空間を含む、抽象基本クラスおよび派生クラスの実装のための名前空間も含まれています。これらのクラスはそのまま使用することも、これらのクラスから独自のクラスを派生させることもできます。

ランタイム ベースのクラス ライブラリは名前空間の階層構造に編成され、名前空間はポータブル実行可能 (PE) ファイル (通常は DLL ファイルおよび EXE ファイル) に格納されます。入れ子になった名前空間も含めたいくつかの名前空間を 1 つの PE ファイルに保持することも、1 つの名前空間を複数の PE ファイルに分割することもできます。

1 つ以上の PE ファイルを組み合わせて、アセンブリが作成されます。アセンブリとは、配置、バージョン番号付け、再利用できる物理単位のことです。ランタイムは、アセンブリを使用して、参照先の型を見つけてバインドします。

一般的に使用されるオブジェクトは、比較的簡単に見つけることができます。System 名前空間とその子孫の名前空間内にあるオブジェクトについては、クラス ライブラリ」を参照してください。その他にも、組み込まれている名前空間とカスタム名前空間を操作するためのツールがいくつかあります。これらのツールの詳細については、「付録 A: 名前空間を検索するためのツール」を参照してください。

サポートされている各言語はすべて、同じ MSIL コードにコンパイルされ、同じランタイムおよび .NET Framework クラス ライブラリを使用するため、それらの各言語によるプログラムは類似しています。実際に、ランタイムは、相互運用性を確保するために各言語がサポートする必要のある基本機能などを、共通言語仕様 (CLS: Common Language Specification) と呼ばれる一連の言語機能として規定しています。各 Hello World サンプル プログラムで必要なのは、プログラムが正しく実行されていることを示すためにコンソールに書き込むことだけです。そのため、これらのサンプルでは、System 名前空間にある Console クラスの WriteLine メソッドを使用しています。コンポーネント ベースのアプリケーションの作成では、従来の Windows グラフィカル アプリケーションの作成方法も示されます。

参照

開発における相違点 | Hello World | サンプル .NET コンポーネントの作成 | 単純なコンポーネントのクライアント | 開発チュートリアルのまとめ | 付録 A: 名前空間を検索するためのツール