Éléments d’un modèle de projetElements of a Project Model

Les interfaces et les implémentations de tous les projets de Visual StudioVisual Studio partagent une structure de base : le modèle de projet pour votre type de projet.The interfaces and implementations of all projects in Visual StudioVisual Studio share a basic structure: the project model for your project type. 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 de travail ainsi que les fonctionnalités globales fournies par l’IDE.In your project model, which is the VSPackage you are developing, you create objects that comply with your design decisions and work together with global functionality provided by the IDE. Bien que vous contrôlez la façon dont un élément de projet est persistant, par exemple, vous ne contrôlez pas notification qu’un fichier doit être persistante.Although you control how a project item is persisted, for example, you do not control notification that a file must be persisted. Lorsqu’un utilisateur place le focus sur un élément de projet ouvert et choisit enregistrer sur la fichier menu sur le Visual StudioVisual Studio menu barre, votre code de type de projet doit intercepter la commande à partir de l’IDE, conserver le fichier, et envoyer la notification à l’IDE que le fichier est n’est plus modifié.When a user places the focus on an open project item and chooses Save on the File menu on the Visual StudioVisual Studio menu bar, your project type code must intercept the command from the IDE, persist the file, and send notification back to the IDE that the file is no longer changed.

Votre VSPackage interagit avec l’IDE via les services qui fournissent l’accès aux interfaces IDE.Your VSPackage interacts with the IDE through services that provide access to the IDE interfaces. Par exemple, par le biais des services particuliers, vous analyse et routage des commandes et fournissez des informations de contexte pour les sélections effectuées dans le projet.For example, through particular services, you monitor and route commands and provide context information for selections made in the project. Toutes les fonctionnalités IDE globale nécessaire pour votre VSPackage sont fournie par les services.All the global IDE functionality needed for your VSPackage is provided by services. Pour plus d’informations sur les services, consultez Comment : obtenir un Service.For more information about services, see How to: Get a Service.

Autres considérations relatives à la mise en œuvre :Other implementation considerations:

  • Un modèle de projet unique peut contenir plusieurs types de projet.A single project model can contain more than one project type.

  • Types de projets et les fabriques de surveillance du projet sont enregistrés indépendamment des GUID.Project types and the attendant project factories are registered independently with GUIDs.

  • Chaque projet doit avoir un fichier de modèle ou un Assistant pour initialiser le nouveau fichier de projet lorsqu’un utilisateur crée un nouveau projet via la Visual StudioVisual Studio l’interface utilisateur.Each project must have a template file or wizard to initialize the new project file when a user creates a new project through the Visual StudioVisual Studio UI. Par exemple, le Visual C++Visual C++ modèles initialiser ce que deviennent les fichiers .vcproj.For example, the Visual C++Visual C++ templates initialize what eventually become .vcproj files.

    L’illustration suivante montre les interfaces principales, les services et les objets qui composent une implémentation d’un projet standard.The following illustration shows the primary interfaces, services, and objects that compose a typical project implementation. Vous pouvez utiliser l’Assistant application, HierUtil7, pour créer les objets sous-jacents et les autres réutilisable de programmation.You can use the application helper, HierUtil7, to create the underlying objects and other programming boilerplate. Pour plus d’informations sur l’application d’assistance de HierUtil7 application, consultez pas dans la Build : utilisation de Classes de projet HierUtil7 pour implémenter un Type de projet (C++).For more information about the HierUtil7 application helper, see Not in Build: Using HierUtil7 Project Classes to Implement a Project Type (C++).

    Graphique de Visual Studio projet modèleVisual Studio Project Model graphic
    modèle de projetProject model

    Pour plus d’informations sur les interfaces et les services répertoriés dans le diagramme précédent et les autres interfaces facultatives ne pas inclus dans le diagramme, consultez composants principaux du modèle de projet.For more information about the interfaces and services listed in the previous diagram, and other optional interfaces not included in the diagram, see Project Model Core Components.

    Projets peut prendre en charge les commandes et par conséquent doit implémenter la IOleCommandTarget interface pour participer au routage des commandes via le contexte de la commande GUID.Projects can support commands and therefore must implement the IOleCommandTarget interface to participate in command routing through the command context GUIDs.

Voir aussiSee Also

Liste de vérification : Créer de nouveaux Types de projet Checklist: Creating New Project Types
Pas dans la génération : à l’aide des Classes de projet HierUtil7 pour implémenter un Type de projet (C++) Not in Build: Using HierUtil7 Project Classes to Implement a Project Type (C++)
Composants de modèle de projet Project Model Core Components
Création d’Instances de projet à l’aide de fabriques de projet Creating Project Instances By Using Project Factories
Comment : obtenir un Service How to: Get a Service
Création de types de projetsCreating Project Types