開発 .netのアプリケーションドメインとは何ですか? -techopediaからの定義

.netのアプリケーションドメインとは何ですか? -techopediaからの定義

目次:

Anonim

定義-アプリケーションドメインとはどういう意味ですか?

アプリケーションドメインは、.NETアプリケーションの周りに作成された論理的な分離境界であり、アプリケーションが互いにアクセスしたり影響を与えたりしないようにします。 これは、独自のコード、データ、構成設定のセットを持つ軽量プロセスです。 アプリケーションドメインは、実行に必要なアプリケーションをロードするために共通言語ランタイム(CLR)によって呼び出されるランタイムホストによって作成されます。


.NET以前は、アプリケーション間の分離境界は、それらがロードされたプロセスでした。 すべてのプロセスには独自のプライベート仮想メモリがあり、別のプロセスのメモリに直接アクセスすることはできません。 アプリケーションドメインには、プロセスと同様の機能があります。


アプリケーションドメインには次の機能があります。

  1. より少ないプロセスを使用して複数のアプリケーションを実行することにより、システムリソースの最適な使用。
  2. データを共有できない状況や、プロセスに影響を与えずにアンロードする必要がある不安定なタスクのタスクの分離を使用した信頼性。
  3. 最適なメモリで大規模な拡張機能をほとんど使用しない長時間実行プロセスを実行することによる効率の向上。
  4. 別のアプリケーションのコードまたはリソースから、あるアプリケーションで実行されているコードへの直接アクセスを制限することによるアプリケーションのセキュリティ。
  5. 各アプリケーションドメインの構成の詳細を指定することによるセキュリティ制御。

Techopediaはアプリケーションドメインについて説明します

アプリケーションドメインは、CLRが1つのプロセスで複数の.NETアプリケーションをロードして実行する方法が異なります。 ロードされたアプリケーションのメモリに直接アクセスすることはできません。 プロセスはOSによって管理されますが、.NET FrameworkのCLRによって管理されます。 CLRは、マネージコードの検証可能な型安全性という固有の機能により、プロセスよりも少ないオーバーヘッドでアプリケーションドメイン間の障害分離を提供します。 また、複数のスレッドをアプリケーションドメインに常駐させることができ、アプリケーションドメインの境界を越えることは自由です。


たとえば、ASP.NETは、Webサイトにアクセスするユーザーごとに複数のアプリケーションドメインを作成するランタイムホストです。 また、コードを分離したり、使用中にのみ拡張機能をロードしたりする必要があるアプリケーション用に作成および構成することもできます。 この事実により、プラグインやその他の信頼できないコードが使用される状況でアプリケーションドメインが役立ちます。 また、大きなDLLを使用するアプリケーションのワーキングセットを最小化するのにも役立ちます。


異なるアプリケーションドメインのオブジェクト間の通信を有効にするには、次の3種類のオブジェクトのいずれかを使用します。

  1. Marshal-By-Value:呼び出し側アプリケーションドメインに渡されるオブジェクトの完全なコピー。 これは、パフォーマンス上の理由でオブジェクトの状態を移動できる場合に使用されます。
  2. Marshal-By-Reference-Reference(MBR):オブジェクトのプロキシがクライアントに渡されます。 オブジェクトの状態がアプリケーションドメイン内にとどまる必要がある場合に使用されます。
  3. コンテキストバインド:ドメイン全体または独自のアプリケーションドメインのコンテキスト内で使用されるMBRオブジェクト。
この定義は、.NETのコンテキストで記述されました
.netのアプリケーションドメインとは何ですか? -techopediaからの定義