Persistance d’un projet

La persistance est une considération de conception clé pour votre projet. La plupart des projets utilisent des éléments de projet qui représentent des fichiers ; Visual Studio prend également en charge les projets dont les données ne sont pas basées sur des fichiers. Les fichiers appartenant au projet et au fichier projet doivent être conservés. L’IDE indique au projet de s’enregistrer lui-même ou d’un élément de projet.

Les modèles pour les projets sont passés à la fabrique de projets. Les modèles doivent prendre en charge l’initialisation de tous les éléments de projet en fonction des exigences du type de projet spécifique. Ces modèles peuvent être enregistrés ultérieurement sous forme de fichiers projet et gérés par l’IDE via la solution. Pour plus d’informations, consultez Création d’instances de projet à l’aide de fabriques de projets et de solutions.

Les éléments de projet peuvent être basés sur des fichiers ou non basés sur des fichiers :

  • Les éléments basés sur des fichiers peuvent être locaux ou distants. Dans les projets web en C#, par exemple, les connexions à des fichiers sur un système distant persistent localement, tandis que les fichiers eux-mêmes persistent sur le système distant.

  • Les éléments non basés sur des fichiers peuvent enregistrer des éléments dans une base de données ou un référentiel.

Valider des modèles

Après avoir choisi l’emplacement des éléments de projet, vous devez choisir le modèle de validation approprié. Par exemple, dans un modèle basé sur des fichiers avec des fichiers locaux, chaque projet peut être enregistré de manière autonome. Dans un modèle de référentiel, vous pouvez enregistrer plusieurs éléments dans une transaction. Pour plus d’informations, consultez Décisions de conception de type de projet.

Pour déterminer les extensions de nom de fichier, les projets implémentent l’interface IPersistFileFormat , qui fournit des informations permettant au client d’un objet d’implémenter la boîte de dialogue Enregistrer sous ( autrement dit, pour renseigner la liste déroulante Enregistrer sous et gérer l’extension de nom de fichier initiale).

L’IDE appelle l’interface IPersistFileFormat sur le projet pour indiquer que le projet doit conserver ses éléments de projet selon les besoins. Par conséquent, l’objet possède tous les aspects de son fichier et de son format. Cela inclut le nom du format de l’objet.

Dans le cas où les éléments ne sont pas des fichiers, IPersistFileFormat reste la façon dont les éléments non basés sur des fichiers sont conservés. Les fichiers projet, tels que les fichiers .vbp pour les projets Visual Basic ou les fichiers .vcproj pour les projets Visual C++, doivent également être conservés.

Pour les actions d’enregistrement, l’IDE examine la table de documents en cours d’exécution (RDT) et la hiérarchie transmet les commandes aux interfaces et aux IVsPersistHierarchyItemIVsPersistHierarchyItem2 interfaces. La IsItemDirty méthode est implémentée pour déterminer si l’élément a été modifié. Si l’élément a, la SaveItem méthode est implémentée pour enregistrer l’élément modifié.

Les méthodes de l’interface IVsPersistHierarchyItem2 sont utilisées pour déterminer si un élément peut être rechargé et, si l’élément peut l’être, pour le recharger. En outre, la IgnoreItemFileChanges méthode peut être implémentée pour provoquer la désintégation des éléments modifiés carte sans être enregistrée.

Voir aussi