개발 .net의 응용 프로그램 도메인은 무엇입니까? -techopedia에서 정의

.net의 응용 프로그램 도메인은 무엇입니까? -techopedia에서 정의

차례:

Anonim

정의-응용 프로그램 도메인이란 무엇입니까?

응용 프로그램 도메인은 .NET 응용 프로그램 주위에 만들어진 논리적 격리 경계이므로 응용 프로그램이 서로 액세스하거나 서로 영향을 미치지 않습니다. 자체 코드, 데이터 및 구성 설정을 갖는 간단한 프로세스입니다. 응용 프로그램 도메인은 런타임 호스트에 의해 만들어지며, 실행 호스트는 공용 언어 런타임 (CLR)에 의해 호출되어 실행해야하는 응용 프로그램을로드합니다.


.NET 이전에는 응용 프로그램 간의 격리 경계가 응용 프로그램이로드 된 프로세스였습니다. 모든 프로세스에는 자체 가상 메모리가 있으며 다른 프로세스의 메모리에 직접 액세스 할 수 없습니다. 응용 프로그램 도메인에는 프로세스의 기능과 유사한 기능이 있습니다.


응용 프로그램 도메인에는 다음과 같은 기능이 있습니다.

  1. 더 적은 수의 프로세스를 사용하여 여러 응용 프로그램을 실행함으로써 시스템 리소스를 최적으로 활용합니다.
  2. 데이터를 공유 할 수없는 상황과 프로세스에 영향을주지 않고 언로드해야하는 불안정한 작업에 대해 작업 격리를 사용하여 안정성.
  3. 최적의 메모리로 큰 확장명을 거의 사용하지 않는 장기 실행 프로세스를 실행하여 효율성을 향상시킵니다.
  4. 한 응용 프로그램에서 실행중인 코드에 대한 직접 액세스를 다른 응용 프로그램의 코드 또는 리소스에서 제한함으로써 응용 프로그램 보안.
  5. 각 애플리케이션 도메인에 대한 구성 세부 사항을 지정하여 보안 제어

Techopedia는 응용 프로그램 도메인을 설명합니다

응용 프로그램 도메인은 CLR이 단일 프로세스에서 여러 .NET 응용 프로그램을로드하고 실행하는 방식이 다릅니다. 로드 된 응용 프로그램의 메모리에 직접 액세스 할 수 없습니다. 프로세스는 OS에 의해 관리되는 반면 .NET Framework의 CLR에 의해 관리됩니다. CLR은 확인 가능한 관리 형 코드 형식의 고유 기능으로 인해 프로세스보다 오버 헤드가 적은 응용 프로그램 도메인간에 장애 격리 기능을 제공합니다. 또한 여러 스레드가 응용 프로그램 도메인에 상주 할 수 있으며 응용 프로그램 도메인 경계를 자유롭게 넘을 수 있습니다.


예를 들어 ASP.NET은 웹 사이트에 액세스하는 각 사용자에 대해 여러 응용 프로그램 도메인을 만드는 런타임 호스트입니다. 또한 코드를 분리하거나 사용하는 동안에 만 확장을로드해야하는 응용 프로그램에 대해 작성 및 구성 할 수 있습니다. 이 사실은 플러그인 및 기타 신뢰할 수없는 코드가 사용되는 상황에서 응용 프로그램 도메인을 유용하게 만듭니다. 또한 큰 DLL을 사용하는 작업중인 응용 프로그램 집합을 최소화하는 데 유용합니다.


다른 응용 프로그램 도메인의 개체 간 통신을 가능하게하려면 다음 세 가지 유형의 개체 중 하나가 사용됩니다.

  1. Marshal-By-Value : 호출 응용 프로그램 도메인으로 전달 된 오브젝트의 완전한 사본. 성능상의 이유로 오브젝트 상태를 이동할 수있는 경우에 사용됩니다.
  2. MBR (Marshal-By-Reference-Reference) : 개체의 프록시가 클라이언트에 전달됩니다. 객체의 상태가 응용 프로그램 도메인 내에 있어야하는 경우에 사용됩니다.
  3. 컨텍스트 바운드 : 도메인 전체 또는 자체 애플리케이션 도메인 컨텍스트 내에서 사용되는 MBR 객체.
이 정의는 .NET의 맥락에서 작성되었습니다.
.net의 응용 프로그램 도메인은 무엇입니까? -techopedia에서 정의