Share via


Visual Studio Shell

Visual Studio 셸은 Visual Studio 통합의 기본 에이전트입니다. 셸은 VSPackage가 공통 서비스를 공유할 수 있도록 하는 데 필요한 기능을 제공합니다. Visual Studio의 아키텍처 목표는 VSPackage에 기본 기능을 부여하는 것이므로 셸은 기본 기능을 제공하고 구성 요소 VSPackage 간의 교차 통신을 지원하는 프레임워크입니다.

셸의 책임

셸에는 다음과 같은 주요 책임이 있습니다.

  • UI(사용자 인터페이스)의 기본 요소 지원(COM 인터페이스를 통해). 여기에는 기본 메뉴 및 도구 모음, 문서 창 프레임 또는 MDI(다중 문서 인터페이스) 자식 창, 도구 창 프레임, 도킹 지원이 포함됩니다.

  • 문서의 지속성을 조정하고 한 문서를 여러 가지 방법으로 열 수 없거나 호환되지 않는 방식으로 열 수 없도록 하기 위해 현재 열려 있는 모든 문서의 실행 중인 목록을 RDT(실행 중인 문서 테이블)에 유지 관리합니다.

  • 명령 라우팅 및 명령 처리 인터페이스 IOleCommandTarget를 지원합니다.

  • 적절한 시간에 VSPackage를 로드합니다. 셸의 성능을 향상하려면 VSPackage 로드 지연이 필요합니다.

  • 기본 셸 기능을 제공하는 SVsShell 및 기본 창 기능을 제공하는 SVsUIShell과 같은 특정 공유 서비스를 관리합니다.

  • 솔루션(.sln) 파일 관리 솔루션에는 Visual C++ 6.0의 작업 영역(.dsw) 파일과 유사한 관련 프로젝트 그룹이 포함되어 있습니다.

  • 셸 전체 선택, 컨텍스트 및 통화 추적 셸은 다음 유형의 항목을 추적합니다.

    • 현재 프로젝트

    • 현재 프로젝트 항목 또는 ItemID 현재 IVsHierarchy

    • 속성 창 또는 SelectionContainer에 대한 현재 선택

    • 명령, 메뉴, 도구 모음의 표시 여부를 제어하는 UI 컨텍스트 ID 또는 CmdUIGuids

    • 현재 창, 문서 및 실행 취소 관리자와 같은 현재 활성 요소

    • 동적 도움말을 구동하는 사용자 컨텍스트 특성

    또한 셸은 설치된 VSPackage 및 현재 서비스 간의 통신을 중재합니다. 셸의 핵심 기능을 지원하며 Visual Studio에 통합된 모든 VSPackage에서 사용할 수 있도록 합니다. 이러한 기능의 예는 다음과 같습니다.

  • 대화 상자 및 시작 화면 정보

  • 새로 추가 및 기존 항목 추가 대화 상자

  • 클래스 뷰개체 브라우저

  • 참조 대화 상자

  • 문서 개요

  • 동적 도움말

  • 찾기바꾸기

  • 새로 만들기 메뉴의 프로젝트 열기파일 열기 대화 상자

  • 도구 메뉴의 옵션 대화 상자

  • 속성 창

  • 솔루션 탐색기

  • 작업 목록

  • 도구 상자