Éléments d’un modèle de projet

Les interfaces et implémentations de tous les projets de Visual Studio partagent une structure de base : le modèle de projet pour votre type de projet. Dans votre modèle de projet, qui est le VSPackage que vous développez, vous créez des objets conformes à vos décisions de conception et collaborez avec les fonctionnalités globales fournies par l’IDE. Bien que vous contrôlez la persistance d’un élément de projet, par exemple, vous ne contrôlez pas la notification qu’un fichier doit être conservé. Lorsqu’un utilisateur place le focus sur un élément de projet ouvert et choisit Enregistrer dans le menu Fichier dans la barre de menus de Visual Studio, votre code de type de projet doit intercepter la commande à partir de l’IDE, conserver le fichier et renvoyer la notification à l’IDE que le fichier n’est plus modifié.

Votre VSPackage interagit avec l’IDE via des services qui fournissent l’accès aux interfaces IDE. Par exemple, par le biais de services particuliers, vous surveillez et routez les commandes et fournissez des informations de contexte pour les sélections effectuées dans le projet. Toutes les fonctionnalités d’IDE globales nécessaires à votre VSPackage sont fournies par les services. Pour plus d’informations sur les services, consultez Guide pratique pour obtenir un service.

Autres considérations relatives à l’implémentation :

  • Un modèle de projet unique peut contenir plusieurs types de projet.

  • Les types de projets et les fabriques de projets standard sont inscrits indépendamment avec des GUID.

  • Chaque projet doit avoir un fichier de modèle ou un Assistant pour initialiser le nouveau fichier projet lorsqu’un utilisateur crée un projet via l’interface utilisateur de Visual Studio. Par exemple, les modèles Visual C++ initialisent les fichiers .vcproj.

    L’illustration suivante montre les interfaces principales, les services et les objets qui composent une implémentation de projet classique. Vous pouvez utiliser l’assistance d’application, HierUtil7pour créer les objets sous-jacents et d’autres programmes réutilisables. Pour plus d’informations sur l’assistance HierUtil7 d’application, consultez Utiliser les classes de projet HierUtil7 pour implémenter un type de projet (C++).

    Visual Studio project model graphic Modèle de projet

    Pour plus d’informations sur les interfaces et services répertoriés dans le diagramme précédent et d’autres interfaces facultatives non incluses dans le diagramme, consultez les composants principaux du modèle Project.

    Les projets peuvent prendre en charge les commandes et doivent donc implémenter l’interface IOleCommandTarget pour participer au routage des commandes via les GUID du contexte de commande.