CLRホスティングとは何ですか?そのユースケースは何ですか?
3 に答える
CLR v2(.NET 2.0、3.0、および3.5)に関連するCLRホスティングについては、こちらを参照してください。.NET 4.0の新しいCLRホスティングAPIについては、こちらをご覧ください。
基本的に、CLRは、プロセスによってロードおよび「ホスト」できるライブラリとして機能します。必要に応じて、CLRを読み込んでホストするアプリを開発できます。これにより、アプリにCLR仮想マシン全体を含め、アセンブリをロードし、その中で.NETマネージコードをすべて実行できるようになります。
たとえば、SQLServer2008はこれを実行できます。SQL Serverデータベースに格納され、SQLServerデータベースエンジン内から実行される.NETコードを記述できます。SQL Serverは、それを実現するためにCLRをホストしています。
Windowsシェル(通常のユーザーインターフェイス)以外のCLRホストは、コードを実行するための特定のコンテキストを提供できます。これは、特殊なアプリケーションや非常に特殊なシナリオに役立ちます。MSDN(上記のリンク)には、これらの問題に関するいくつかのガイドラインがあります。
CLRホスティングは、選択したプロセスで.NET共通言語ランタイムをホスティングします。
ユースケースは、既存の環境が要件に合わない状況です。既存の環境には、ASP.NET、WinForms、Windows Workflow Foundationなどがあります。これらが要件に合わない場合は、自分でホストできます。
CLRホスティングは.NEtアプリケーションを使用するホスティングです。ネイティブプロセス内で.NETランタイムを開始すると、そのネイティブアプリケーションがランタイムのホストになります。これにより、ネイティブアプリケーションに.NET機能を追加できます。
ランタイムが実行されているが、ロードされたユーザーコードがまだない場合。一部の内部スレッドスケジューラとガベージコレクタは、CLRランタイムの一部であるため、確実に実行されています。他のホスティングサービスよりも非常に複雑です。