병렬 어셈블리 만들기에 대한 지침

다음 지침에서는 사용자 고유의 COM 또는 Win32 병렬 어셈블리를 작성하는 방법을 설명합니다. 지원되는 Microsoft Side-by-side 어셈블리 중 하나에서 필요한 기능을 제공하는 경우 사용자 고유의 병렬 어셈블리를 만들 필요가 없습니다. 이 경우 Microsoft에서 제공하는 어셈블리를 사용하고 격리된 애플리케이션 및 병렬 어셈블리 사용에서 병렬 어셈블리를 사용하는 절차를 따릅니다.

먼저 구성 요소가 병렬 어셈블리에 적합한 후보를 만드는지 여부를 고려합니다. 자세한 내용은 공유 구성 요소를 병렬 어셈블리로 제공해야 하나요?를 참조하세요.

병렬 어셈블리를 만들려면 다음 지침을 따릅니다.

  • 어셈블리에 포함할 리소스를 결정합니다. 어셈블리는 애플리케이션과 고객에게 항상 함께 제공되는 하나 이상의 파일로 구성됩니다. 어셈블리는 명명, 바인딩, 버전 관리, 배포 및 기본 구성에 사용되는 기본 단위로 사용됩니다. 일반적으로 두 리소스가 동일한 어셈블리에 속하는지 여부를 확실하지 않은 경우 별도의 어셈블리로 이동하도록 작성하는 것이 좋습니다. 일반적으로 병렬 어셈블리는 단일 DLL로 구성됩니다.
  • 어셈블리에 대한 어셈블리 매니페스트 를 만듭니다. 매니페스트는 어셈블리의 COM 개체 또는 형식 라이브러리를 설명해야 합니다. 어셈블리 매니페스트로 작성해야 하는 항목에 대한 자세한 내용은 어셈블리 매니페스트를 참조하세요.
  • 시스템에서 둘 이상의 어셈블리 버전이 실행되는 경우 개체의 사용량을 평가합니다. 다른 버전의 어셈블리에 메모리 매핑된 파일, 명명된 파이프, 등록된 Windows 메시지 및 클래스, 공유 메모리, 세마포, 뮤텍스 및 하드웨어 드라이버와 같은 별도의 데이터 구조가 필요한지 여부를 결정합니다. 어셈블리 버전에서 사용되는 모든 데이터 구조는 이전 버전과 호환되어야 합니다. 버전 간에 사용할 수 있는 데이터 구조와 버전에 대해 비공개여야 하는 데이터 구조를 결정합니다. 공유 데이터 구조에 세마포 및 뮤텍스와 같은 별도의 동기화 개체가 필요한지 여부를 확인합니다.
  • 병렬 어셈블리에 대한 DLL 작성의 지침을 준수하여 병렬 어셈블리로 잘 작동하도록 DLL을 작성합니다.
  • 어셈블리 상태를 포함하는 레지스트리 키를 쉽게 버전 지정하는 방법을 제공하기 위해 헤더 파일 및 도우미 함수 집합을 작성합니다. 어셈블리는 일반적으로 레지스트리 키에 상태 설정을 저장합니다. 동시에 실행할 수 있는 여러 어셈블리 버전을 격리하려면 레지스트리 설정을 개별 버전별로 작성해야 합니다. 병렬 공유 시나리오 중에 어셈블리의 상태를 올바르게 저장하고 처리하도록 병렬 어셈블리 및 DLL을 디자인합니다. Side-by-Side 어셈블리에 대한 State Storage 작성의 지침을 따릅니다.
  • 프라이빗 어셈블리를 사용하는 애플리케이션 개발자는 애플리케이션 디렉터리를 보호해야 합니다. Windows Installer를 사용하여 애플리케이션을 설치하는 경우 LockPermissions 테이블을 사용하여 애플리케이션 디렉터리를 보호합니다. 일반적으로 시스템에는 프라이빗 어셈블리에 대한 읽기, 쓰기 및 실행 액세스 권한이 부여됩니다. 다른 모든 프로세스에는 실행 및 읽기 권한만 부여됩니다.
  • 병렬 공유가 있는 시나리오를 사용하여 어셈블리를 테스트하여 유효한 병렬 어셈블리인지 확인합니다. 어셈블리를 성공적으로 설치해도 예상대로 작동한다는 보장만으로는 충분하지 않습니다.
  • 어셈블리에 대한 업데이트 번호 매기기 메서드를 채택합니다. 각 어셈블리는 4부로 구성된 버전 번호와 연결됩니다. 왼쪽에서 오른쪽으로 주, 부, 빌드 및 수정 부분이 마침표로 구분됩니다. 이전 버전과 호환되지 않는 버전에 대한 어셈블리의 주 또는 부 수를 변경합니다. 어셈블리에 대한 이전 버전과 호환되는 변경 내용을 위해 빌드 및 수정 버전 부분만 변경합니다. 예를 들어 개발자는 모든 1.0.0.* 버전 번호가 어셈블리 버전 1.0.0.0에 대한 업데이트 버전을 참조하는 번호 매기기 메서드를 채택할 수 있습니다.