CLRのホスティングとClrCreateManagedInstanceの使用-利点は何ですか?

StackOverflow https://stackoverflow.com/questions/800867

  •  03-07-2019
  •  | 
  •  

質問

こちら。しかし、こちらも読むことができます。管理されていないプロセス内のCLR全体。

だから私の質問は:なぜあなたはそうするのですか?オブジェクトを使用するよりもやや複雑です-複雑さが増すこの価格で得られるメリットは何ですか?

編集:最初の2つの回答から理解したことは、ニーズに合わせてCLRをカスタマイズできることです。つまり、単純なビジネスアプリを作成している場合、ホストする必要はないということです。ホスティングは、ブラウザやSQL Serverなどのシステムに負荷のかかるものです。

役に立ちましたか?

解決

通常、CLRのホストは、マネージコードとWin32を相互運用するために行うことではありません。通常、相互運用には3つの方法があります。

  • Runtime Callable Wrapper(RCW)-.NETからCOMオブジェクトを呼び出す
  • COM呼び出し可能ラッパー(CCW)-.NETオブジェクトをCOMオブジェクトとして表示する
  • P / Invoke

これらは、.NETの最初のバージョンからサポートされています。 CLRをホストする全体のポイントは、アンマネージアプリケーション内に.NETコードを深く埋め込むことです。たとえば、Win32上のApacheで.NETをホストして、.aspxページを実行できるモジュールがあります。

同様に、SQL Serverは、マネージコードを使用して拡張ストアドプロシージャと関数を作成する方法を求めていました。以前は、これらをC / C ++で書くことができましたが、CLRをホストしていれば、実際に人々がC#でこれらを書くことを許可することができました。 CLRを状態に戻す作業は、タイムラインを本当に安全に埋め込むことができ、メモリやセキュリティの制御などが生まれました。 SQL Serverにはいくつかの深刻な安定性の要件があり、.NETを活用することはできません。

ホスティングAPIは.NET 1.xから2.xに大幅に変更されましたが、2.0 CLRが.NET 3.0、3.5などを経てより安定している

他のヒント

Microsoft SQL Serverは、セキュリティ、アセンブリの読み込み、メモリ管理、スレッド管理などを置き換えるために、これを広範囲に使用します。このテーマに関する良い本は、「Microsoft .NET Framework共通言語ランタイムのカスタマイズ」です。

レガシーアプリケーションがあり、サードパーティがアプリケーション内から.netの機能を使用できるようにしたい場合がありますが、特に アセンブリのロード元。 こちらは例です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top