Visual Studio의 계층 구조
Visual Studio IDE(통합 개발 환경)는 프로젝트를 계층 구조로 표시합니다. IDE에서 계층 구조는 각 노드에 연결된 속성 집합이 있는 노드의 트리입니다. 프로젝트 계층 구조는 프로젝트의 항목, 항목의 관계 및 항목의 연결된 속성과 명령을 포함하는 컨테이너입니다.
Visual Studio에서는 계층 구조 인터페이스 IVsHierarchy를 사용하여 프로젝트 계층 구조를 관리합니다. IVsUIHierarchy 인터페이스는 프로젝트 항목에서 호출하는 명령을 표준 명령 처리기 대신 적절한 계층 구조 창으로 리디렉션합니다.
프로젝트 계층 구조
각 프로젝트 계층 구조에는 보고 편집할 수 있는 항목이 포함됩니다. 이러한 항목은 프로젝트 형식에 따라 달라집니다. 예를 들어 데이터베이스 프로젝트에는 저장 프로시저, 데이터베이스 뷰 및 데이터베이스 테이블이 포함될 수 있습니다. 반면에 프로그래밍 언어 프로젝트에는 비트맵 및 대화 상자의 원본 파일과 리소스 파일이 포함될 수 있습니다. 계층 구조는 중첩할 수 있으므로 프로젝트 계층 구조를 만들 때 유연성이 더해집니다.
새 프로젝트 형식을 만들 때 프로젝트 형식은 그 안에서 편집할 수 있는 전체 항목 집합을 제어합니다. 그러나 프로젝트에는 편집 지원이 없는 항목이 포함될 수 있습니다. 예를 들어 Visual C++는 HTML 파일 형식에 대해 사용자 지정된 편집기를 제공하지 않더라도 Visual C++ 프로젝트에 HTML 파일을 포함할 수 있습니다.
계층 구조는 포함된 항목의 지속성을 관리합니다. 계층 구조의 구현은 계층 구조 내 항목의 지속성에 영향을 주는 특수 속성을 제어해야 합니다. 예를 들어 항목이 파일 대신 리포지토리의 개체를 나타내는 경우 계층 구조 구현은 해당 개체의 지속성을 제어해야 합니다. IDE 자체는 사용자 입력에 따라 항목을 저장하도록 계층 구조에 지시하지만 IDE는 해당 항목을 저장하는 데 필요한 작업을 제어하지 않습니다. 대신 프로젝트가 제어됩니다.
사용자가 편집기에서 항목을 열면 해당 항목을 제어하는 계층 구조가 선택되고 활성 계층 구조가 됩니다. 선택한 계층 구조에 따라 항목에 대해 작업할 수 있는 명령 집합이 결정됩니다. 이러한 방식으로 사용자 포커스를 추적하면 계층 구조가 사용자의 현재 컨텍스트를 반영할 수 있습니다.