파이프라인 개발

추가 기능 파이프라인은 호스트 응용 프로그램과 해당 추가 기능이 서로 통신하는 데 사용해야 하는 파이프라인 세그먼트의 경로입니다.

다음 그림에서는 통신 파이프라인과 해당 세그먼트를 보여 줍니다.

추가 기능 파이프라인

추가 기능 파이프라인 모델

호스트 응용 프로그램이 파이프라인의 한쪽 끝에 있고 추가 기능은 반대쪽 끝에 있습니다. 한쪽 끝에서 시작하여 중간으로 이동하면 호스트 응용 프로그램과 추가 기능에 모두 공유되는 개체 모델 뷰를 정의하는 추상 기본 클래스가 있습니다. 이러한 형식(클래스)은 추가 기능 뷰 파이프라인 세그먼트와 추가 기능 파이프라인 세그먼트의 호스트 뷰를 구성합니다. 추가 기능 뷰 파이프라인 세그먼트에는 둘 이상의 추상 클래스가 있는 경우가 많지만 추가 기능이 상속하는 클래스를 추가 기능 기준이라고 합니다.

추가 기능측 어댑터 파이프라인 세그먼트와 호스트측 어댑터 파이프라인 세그먼트는 해당 뷰 파이프라인 세그먼트와 계약 파이프라인 세그먼트 간에 형식 흐름을 변환합니다. 파이프라인의 핵심 세그먼트는 IContract 인터페이스에서 파생된 계약입니다. 이 계약은 호스트 응용 프로그램과 해당 추가 기능에서 모두 사용할 메서드를 정의합니다.

호스트와 추가 기능을 별개의 응용 프로그램 도메인에 로드하면 호스트 응용 프로그램의 범위를 추가 기능의 범위와 구분하는 격리 경계가 생깁니다. 계약은 호스트와 추가 기능 응용 프로그램 도메인에 모두 로드되는 유일한 어셈블리입니다. 호스트와 추가 기능은 각각 계약 메서드의 해당 뷰만 참조하므로 추상화 계층에 의해 계약과 구분됩니다.

파이프라인 세그먼트를 개발하려면 파이프라인 세그먼트를 포함할 디렉터리 구조를 만들어야 합니다. 개발 요구 사항과 범위 지침에 대한 자세한 내용은 파이프라인 개발 요구 사항을 참조하십시오.

다음 그림에서는 파이프라인 세그먼트를 구성하는 형식을 보여 줍니다. 그림에 표시된 형식 이름은 임의의 이름이지만 정보 저장소를 생성하는 메서드에서 찾을 수 있도록 호스트와 추가 기능의 호스트 뷰를 제외한 모든 형식에 특성이 필요합니다.

형식이 있는 추가 기능 파이프라인

형식에 대한 필수 특성이 있는 추가 기능 모델

다음 표에서는 추가 기능 활성화를 위한 파이프라인 세그먼트에 대해 설명합니다. 이러한 세그먼트에 대한 자세한 내용은 계약, 뷰 및 어댑터를 참조하십시오.

파이프라인 세그먼트

설명

호스트

추가 기능의 인스턴스를 만드는 응용 프로그램 어셈블리입니다.

추가 기능의 호스트 뷰

추가 기능과 통신하는 데 사용되는 개체 형식 및 메서드의 호스트 응용 프로그램 뷰를 나타냅니다. 호스트 뷰는 추상 기본 클래스 또는 인터페이스입니다.

호스트측 어댑터

계약 간에 메서드를 변경하는 하나 이상의 클래스가 있는 어셈블리입니다.

이 파이프라인 세그먼트는 HostAdapterAttribute 특성을 사용하여 식별됩니다.

여러 모듈로 이루어진 어셈블리는 지원되지 않습니다.

계약

IContract 인터페이스에서 파생되고 호스트와 해당 추가 기능 간에 형식을 통신하기 위한 프로토콜을 정의하는 인터페이스입니다.

이 파이프라인 세그먼트는 AddInContractAttribute 특성을 설정하여 식별됩니다.

추가 기능측 어댑터

계약 간에 메서드를 변경하는 하나 이상의 클래스가 있는 어셈블리입니다.

이 파이프라인 세그먼트는 AddInAdapterAttribute 특성을 사용하여 식별됩니다.

AddInAdapterAttribute 특성이 있는 형식을 포함하는 추가 기능측 어댑터 디렉터리의 각 어셈블리는 추가 기능의 응용 프로그램 도메인에 로드됩니다.

추가 기능측 디렉터리의 각 어셈블리는 고유한 응용 프로그램 도메인에 로드됩니다.

여러 모듈로 이루어진 어셈블리는 지원되지 않습니다.

추가 기능 뷰

호스트와 통신하는 데 사용되는 개체 형식 및 메서드의 추가 기능 뷰를 나타내는 어셈블리입니다. 추가 기능 뷰는 추상 기본 클래스 또는 인터페이스입니다.

이 파이프라인 세그먼트는 AddInBaseAttribute 특성을 사용하여 식별됩니다.

AddInBaseAttribute 특성이 있는 형식을 포함하는 AddInViews 디렉터리의 각 어셈블리는 추가 기능의 응용 프로그램 도메인에 로드됩니다.

추가 기능

호스트에 대한 서비스를 수행하는 인스턴스화된 형식입니다.

파이프라인 활성화 경로

다음 그림에서는 추가 기능이 활성화된 경우의 형식 활성화를 보여 줍니다. 또한 계산 결과나 개체 컬렉션과 같은 개체를 호스트로 전달하는 방법을 보여 줍니다. 가장 일반적인 시나리오입니다.

추가 기능에서 호스트로의 활성화 경로

활성화 경로를 사용하는 추가 기능 모델

파이프라인의 활성화 경로는 다음과 같이 발생합니다.

  1. 호스트 응용 프로그램이 Activate 메서드를 사용하여 추가 기능을 활성화합니다.

  2. 추가 기능, 추가 기능 뷰, 추가 기능측 어댑터 및 계약 어셈블리가 추가 기능의 응용 프로그램 도메인에 로드됩니다.

  3. AddInBaseAttribute 특성으로 식별된 클래스가 있는 추가 기능 뷰를 생성자로 사용하여 추가 기능측 어댑터 인스턴스가 만들어집니다. 추가 기능측 어댑터는 계약에서 상속합니다.

  4. 계약으로 형식화된 추가 기능측 어댑터가 선택적인 격리 경계를 넘어 호스트측 어댑터의 생성자로 전달됩니다.

  5. 추가 기능의 호스트 뷰, 호스트측 어댑터 및 계약 어셈블리가 호스트의 응용 프로그램 도메인에 로드됩니다.

  6. 계약을 생성자로 사용하여 호스트측 어댑터 인스턴스가 만들어집니다. 호스트측 어댑터는 추가 기능의 호스트 뷰에서 상속합니다.

  7. 호스트에 추가 기능의 호스트 뷰로 형식화된 추가 기능이 있고 해당 메서드 호출을 계속할 수 있습니다.

연습

Visual Studio를 사용하여 파이프라인을 만드는 방법에 대해 설명하는 다음 세 개의 연습 항목이 있습니다.

참고 항목

개념

추가 기능 파이프라인 시나리오

추가 기능 및 확장성