Salvataggio permanente dei progetti

La persistenza è una considerazione di progettazione chiave per il progetto. La maggior parte dei progetti usa elementi di progetto che rappresentano i file. Visual Studio supporta anche i progetti i cui dati non sono basati su file. Sia i file di proprietà del progetto che il file di progetto devono essere resi persistenti. L'IDE indica al progetto di salvare se stesso o un elemento di progetto.

I modelli per i progetti vengono passati alla factory del progetto. I modelli devono supportare l'inizializzazione di tutti gli elementi di progetto in base ai requisiti del tipo di progetto specifico. Questi modelli possono essere salvati in un secondo momento come file di progetto e gestiti dall'IDE tramite la soluzione . Per altre informazioni, vedere Creazione di istanze Project tramite Project factory e soluzioni.

Project elementi possono essere basati su file o non basati su file:

  • Gli elementi basati su file possono essere locali o remoti. Nei progetti Web in C#, ad esempio, le connessioni ai file in un sistema remoto vengono mantenute in locale, mentre i file stessi vengono mantenuti nel sistema remoto.

  • Gli elementi non basati su file possono salvare gli elementi in un database o in un repository.

Modelli di commit

Dopo aver deciso dove si trovano gli elementi del progetto, è necessario scegliere il modello di commit appropriato. Ad esempio, in un modello basato su file con file locali, ogni progetto può essere salvato in modo autonomo. In un modello di repository è possibile salvare più elementi in una transazione. Per altre informazioni, vedere Prendere decisioni Project di progettazione dei tipi.

Per determinare le estensioni di file, i progetti implementano l'interfaccia , che fornisce informazioni che consentono al client di un oggetto di implementare la finestra di dialogo Salva con nome, ovvero per compilare l'elenco a discesa Tipo file e gestire l'estensione iniziale IPersistFileFormat del nome file.

L'IDE chiama IPersistFileFormat l'interfaccia sul progetto per indicare che il progetto deve rendere persistenti i relativi elementi di progetto in base alle esigenze. Pertanto, l'oggetto è proprietario di tutti gli aspetti del file e del formato. Include il nome del formato dell'oggetto .

Nel caso in cui gli elementi non siano file, è comunque possibile rendere persistenti gli elementi non basati IPersistFileFormat su file. Project anche i file con estensione vbp per i progetti o i file vcproj per i Visual Basic progetti devono essere resi Visual C++ persistenti.

Per le azioni di salvataggio, l'IDE esamina la tabella del documento in esecuzione (RDT) e la gerarchia passa i comandi alle IVsPersistHierarchyItem IVsPersistHierarchyItem2 interfacce e . Il IsItemDirty metodo viene implementato per determinare se l'elemento è stato modificato. Se l'elemento dispone di , SaveItem il metodo viene implementato per salvare l'elemento modificato.

I metodi nell'interfaccia vengono usati per determinare se un elemento può essere ricaricato e, se l'elemento può IVsPersistHierarchyItem2 essere, ricaricarlo. Inoltre, il metodo può essere implementato per fare in modo che gli elementi modificati IgnoreItemFileChanges vengano eliminati senza essere salvati.

Vedi anche