Share via


VSSDK 사용자를 위한 VisualStudio.Extensibility 소개

확장은 일반적으로 Visual Studio 프로세스에 로드되지만 VisualStudio.Extensibility는 대부분의 Visual Studio 확장을 Out-of-process로 제공합니다. 이 out-of-proc 모델을 사용하면 보다 안정적이고 성능이 좋은 확장을 만들 수 있습니다. 다음 설명서에서는 다음을 설명합니다.

  • 새 확장성 모델의 일반 아키텍처
  • 새 확장성 모델의 API를 활용하는 방법
  • 새 모델을 사용하여 확장을 컴파일하고 F5 디버그하는 방법
  • 새 모델을 사용하여 확장 작성을 시작하는 리소스 및 코드 샘플

VisualStudio.Extensibility 모델 정보

새 VisualStudio.Extensibility 모델은 이전 모델을 사용하여 Visual Studio에서 확장을 사용하고 작성할 때 개발자가 경험하는 많은 문제를 해결하는 것을 목표로 합니다. 이러한 이슈에는 다음이 포함됩니다.

  • Visual Studio 및 기타 설치된 확장의 확장으로 인한 충돌 및 중단
  • 일관되지 않은 오래된 문서 및 API, 전문화된 전문 지식에 대한 요구 사항 및 압도적인 아키텍처
  • 확장을 설치하는 데 필요한 Visual Studio 다시 시작
  • .NET Core 지원 없음

VisualStudio.Extensibility를 사용하여 확장을 작성하면 다음과 같은 이점이 제공됩니다.

  • 안정성 향상 - 새 모델로 작성된 확장은 프로시전이 부족하며 Visual Studio UI를 차단하지 않습니다. 즉, 확장이 충돌하는 경우 VS는 결과적으로 충돌하지 않습니다.
  • API 복잡성 감소 – 새 모델의 API는 이전 모델의 고급 기능을 유지하면서 더 응집력 있고 구현하기 쉽도록 처음부터 빌드되었습니다.
  • .NET 전용 – .NET 및 C#의 최신 향상된 기능을 활용하기 위해 새 확장성 모델은 프로세스 외부 호스팅에 대해서만 .NET을 지원하며 .NET 프로세스에서 호스트됩니다.
  • .NET Core 지원 - Out-of-process 확장은 최신 .NET 버전에 대한 지원과 제공되는 이점을 활용할 수 있습니다.
  • 핫 로드 기능 – 새 모델을 사용하여 작성된 확장은 Visual Studio를 다시 시작할 필요 없이 설치 및 로드할 수 있습니다(아직 설치되지 않은 Visual Studio 구성 요소 필수 구성 요소가 필요한 확장 제외).
  • CPU 플랫폼 간 – 기본 구현은 RPC 호환 조정 서비스를 기반으로 하며 .NET 기반이므로 모든 확장은 .NET 런타임에서 지원하는 모든 CPU 플랫폼에서 실행됩니다.

기술

VisualStudio.Extensibility 모델은 주로 Visual Studio에서 조정된 서비스로 제공되는 RPC 계약을 기반으로 합니다. 확장은 RPC를 통해 Visual Studio와 통신하는 외부 ServiceHub 프로세스에서 호스트됩니다. 확장은 모두 Visual Studio에서 제공하는 서비스를 활용하며 경우에 따라 Visual Studio 프로세스에 서비스를 제공할 수도 있습니다.

SDK의 일부로 제공되는 확장성 패키지는 확장성 노출 영역을 더 쉽게 사용하고 검색할 수 있도록 하기 위해 이러한 RPC 계약에 대한 기본 클래스, 유틸리티 메서드 및 래퍼 개체로 구성됩니다. 우리의 목표는 확장 작성자가 Visual Studio 에코시스템에 더 쉽게 기여할 수 있도록 하는 것입니다.

자세한 내용은 다음 문서와 연습을 검사 시작하세요.