É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 qui sont conformes avec vos décisions de conception et l’implication des 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 le mode de conservation d’un élément de projet, 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 met l’accent sur un élément de projet ouvert et choisit enregistrer sur le fichier menu sur le Visual StudioVisual Studio menu barre, votre code de type de projet doit intercepter la commande à partir de l’IDE, conserve le fichier, et envoyer la notification à l’IDE que le fichier est modifié n’est plus.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, grâce à des services particuliers, vous moniteur et l’itinéraire 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 avec 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 des 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 de projet standard.The following illustration shows the primary interfaces, services, and objects that compose a typical project implementation. Vous pouvez utiliser l’application d’assistance de l’application, HierUtil7, pour créer les objets sous-jacents et 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 la HierUtil7 application d’assistance de l’application, consultez HierUtil7 de l’utilisation des classes de projet pour implémenter un type de projet (C++).For more information about the HierUtil7 application helper, see Use HierUtil7 project classes to implement a project type (C++).

    Graphique modèle de projet Visual StudioVisual 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 les composants de base de 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 le IOleCommandTarget interface pour participer au routage des commandes via le GUID de contexte de commande.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 des types de projet Checklist: Create new project types
Utiliser des classes de projet HierUtil7 pour implémenter un type de projet (C++) Use HierUtil7 project classes to implement a project type (C++)
Composants principaux du modèle projet Project model core components
Créer des instances de projet à l’aide de fabriques de projet Create project instances by using project factories
Comment : obtenir un service How to: Get a service
Créer des types de projetsCreate project types