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
  • @ Sabuncu : 네. 그것이 내 대답에서 언급 한 Windows 쉘입니다. - CesarGon
  • 감사. 귀하의 & quot; Windows 쉘 & quot; 참조,하지만 확실하지 않았습니다. 이 경우에는 "쉘"을 사용하고 있다고 생각합니다. 일반적인 의미에서는 DOS cmd.exe 또는 PowerShell 콘솔과 같은 셸 프로그램이 아닙니다. - Sabuncu
  • 글쎄, & quot; Windows 쉘 & quot; 개발 관점에서 Windows OS의 사용자 인터페이스 구성 요소를 참조하는 잘 알려진 문구입니다. 여기를 참조하십시오 :msdn.microsoft.com/en-us/library/windows/desktop/…또한 .NET CLR 설명서에서 호스팅 대안을 논의하는 데 사용되는 구입니다. - CesarGon
  • +1 고마워요. 귀하가 제공하는 링크는 매우 귀중합니다. - Sabuncu

11

CLR 호스팅은 원하는 프로세스에서 .NET 공용 언어 런타임을 호스팅합니다.

유스 케이스는 기존 환경이 요구 사항에 맞지 않는 상황입니다. 기존 환경 중 일부는 ASP.NET, WinForms, Windows Workflow Foundation 등입니다. 이러한 환경이 요구 사항에 맞지 않으면 직접 호스팅 할 수 있습니다.


2

CLR 호스팅은 .NEt 응용 프로그램을 사용합니다. 네이티브 프로세스 내에서 .NET 런타임을 시작하면 해당 네이티브 응용 프로그램이 런타임의 호스트가됩니다. 이를 통해 네이티브 응용 프로그램에 .NET 기능을 추가 할 수 있습니다.

런타임이 실행 중이지만 아직로드 된 사용자 코드가없는 경우 일부 내부 스레드 스케줄러 및 가비지 수집기는 CLR 런타임의 일부이므로 반드시 실행되고 있습니다. 그것은 다른 호스팅 서비스보다 매우 복잡합니다.

연결된 질문


관련된 질문

최근 질문