29

CLRホスティングとは何ですか?そのユースケースは何ですか?

3 답변


27

見るここにCLR v2(.NET 2.0、3.0、および3.5)に関連するCLRホスティングについての情報。 .NET 4.0の新しいCLRホスティングAPIについては、こちらをご覧ください

基本的に、CLRはプロセスによってロードされ「ホスト」されることができるライブラリとして機能します。必要に応じて、CLRをロードしてホストするアプリを開発できます。それはあなたのアプリがCLR仮想マシン全体を含み、アセンブリをロードし、その中で.NET管理コードを実行することを可能にするでしょう。

たとえば、SQL Server 2008はこれを実行できます。 SQL Serverデータベースに格納され、SQL Serverデータベースエンジン内から実行される.NETコードを書くことができます。 SQL Serverはそれを達成するためにCLRをホストしています。

Windowsシェル(通常のユーザーインタフェース)以外のCLRホストは、コードを実行するための特定のコンテキストを提供できます。これは特殊なアプリケーションや非常に特定のシナリオに役立ちます。 MSDN(上記リンク)には、これらの問題に関するいくつかのガイドラインがあります。


  • +1答えてくれてありがとう。また、.NET実行可能ファイルをダブルクリックして起動すると、誰がCLRをホストするのでしょうか。 Windowsエクスプローラでホストされていますか? - Sabuncu
  • @サブンク:はい。それが私の答えで言及していたWindowsシェルです。 - CesarGon
  • ありがとう。あなたの「Windowsシェル」を見ました。参照、しかし確かではなかった。この場合は、「シェル」を使用していると思います。一般的な意味では、DOS cmd.exeやPowerShellコンソールなどのシェルプログラムではありません。 - Sabuncu
  • さて、" Windowsシェル"開発の観点からWindows OSのユーザーインターフェイスコンポーネントを参照するためのよく知られたフレーズです。こちらをご覧ください。msdn.microsoft.com/ja-jp/library/windows/desktop/…また、ホスティングの選択肢を議論するために.NET CLRのドキュメントで使用されているフレーズです。 - CesarGon
  • +1ありがとうございます。あなたが提供するリンクは非常に貴重です。 - Sabuncu

11

CLRホスティングは、選択したプロセスで.NET共通言語ランタイムをホスティングします。

ユースケースは、既存の環境があなたの要件に合わない状況です。既存の環境には、ASP.NET、WinForm、Windows Workflow Foundationなどがあります。これらが要件に合わない場合は、自分でホストできます。


2

CLRホスティングは、.NEt applicationを使用します。ネイティブプロセス内で.NETランタイムを起動すると、そのネイティブアプリケーションがランタイムのホストになります。これにより、ネイティブアプリケーションに.NET機能を追加できます。

ランタイムが実行されていても、まだロードされたユーザーコードがまだない場合。一部の内部スレッドスケジューラとガベージコレクタは、CLRランタイムの一部であるため、確実に実行されています。 それは他のホスティングサービスよりも非常に複雑です。

リンクされた質問


関連する質問

最近の質問