Gerarchie in Visual Studio
L'ambiente di sviluppo integrato (IDE) di Visual Studio visualizza un progetto come gerarchia. Nell'IDE una gerarchia è un albero di nodi, in cui ogni nodo ha un set di proprietà associate. Una gerarchia di progetto è un contenitore che contiene gli elementi del progetto, le relazioni degli elementi e le proprietà e i comandi associati degli elementi.
In Visual Studio si gestiscono le gerarchie di progetto usando l'interfaccia della gerarchia , IVsHierarchy. L'interfaccia IVsUIHierarchy reindirizza i comandi richiamati dagli elementi del progetto alla finestra di gerarchia appropriata anziché al gestore dei comandi standard.
Gerarchie di progetto
Ogni gerarchia di progetto contiene elementi che è possibile visualizzare e modificare. Questi elementi variano a seconda del tipo di progetto. Ad esempio, un progetto di database può contenere stored procedure, viste di database e tabelle di database. Un progetto del linguaggio di programmazione, d'altra parte, includerà probabilmente file di origine e file di risorse per bitmap e finestre di dialogo. Le gerarchie possono essere annidate, che offrono una maggiore flessibilità quando si crea una gerarchia di progetti.
Quando si crea un nuovo tipo di progetto, il tipo di progetto controlla il set completo di elementi che possono essere modificati. Tuttavia, i progetti possono contenere elementi per i quali non dispongono del supporto per la modifica. Ad esempio, i progetti Visual C++ possono contenere file HTML, anche se Visual C++ non fornisce alcun editor personalizzato per il tipo di file HTML.
Le gerarchie gestiscono la persistenza degli elementi che contengono. L'implementazione della gerarchia deve controllare eventuali proprietà speciali che influiscono sulla persistenza degli elementi all'interno della gerarchia. Ad esempio, se gli elementi rappresentano oggetti in un repository anziché i file, l'implementazione della gerarchia deve controllare la persistenza di tali oggetti. L'IDE stesso indirizza la gerarchia a salvare gli elementi in conformità con l'input dell'utente, ma l'IDE non controlla le azioni necessarie per salvare tali elementi. Il progetto è invece in controllo.
Quando un utente apre un elemento in un editor, la gerarchia che controlla l'elemento selezionato e diventa la gerarchia attiva. La gerarchia selezionata determina il set di comandi disponibili per agire sull'elemento. Il rilevamento dello stato attivo dell'utente in questo modo consente alla gerarchia di riflettere il contesto corrente dell'utente.