Visual Studio 中所有项目的接口和实现共享基本结构:项目类型的项目模型。 在项目模型中,即要开发的 VSPackage,创建符合设计决策的对象,并与 IDE 提供的全局功能协同工作。 尽管你可以控制项目项的保存方式,但例如,对于文件必须保存这一通知,你无法控制。 当用户将焦点放在打开的项目项上并选择 Visual Studio 菜单栏上的“文件”菜单上时,项目类型代码必须截获 IDE 中的命令,保留文件,并将通知发回 IDE,指出该文件不再更改。
VSPackage 通过提供对 IDE 接口的访问权限的服务与 IDE 交互。 例如,通过特定服务,可以监视和路由命令,并为项目中所做的选择提供上下文信息。 VSPackage 所需的所有全局 IDE 功能都由服务提供。 有关服务的详细信息,请参阅 如何:获取服务。
其他实现注意事项:
- 单个项目模型可以包含多个项目类型。 
- 项目类型及其附属的项目工厂通过 GUID 独立注册。 
- 当用户通过 Visual Studio UI 创建新项目时,每个项目都必须有一个模板文件或向导来初始化新项目文件。 例如,Visual C++ 模板初始化并最终生成 .vcproj 文件。 - 下图显示了构成典型项目实现的主要接口、服务和对象。 可以使用应用程序帮助程序 - HierUtil7创建基础对象和其他编程样板。 有关应用程序帮助程序的详细信息- HierUtil7,请参阅使用 HierUtil7 项目类实现项目类型(C++)。  - 项目模型 - 有关上图中列出的接口和服务以及关系图中不包含的其他可选接口的详细信息,请参阅 Project 模型核心组件。 - 项目可以支持命令,因此必须实现 IOleCommandTarget 接口才能通过命令上下文 GUID 参与命令路由。