[VSX.002]VS开发环境模型
本文是阅读Visual Studio Development Environment Model笔记.
VS IDE(Integrated development environment)是VSPackage的宿主框架,以便他们可以交互共享的服务.VS IDE实现UI就是一个很好的例子.IDE不仅提供了窗口容器,默认的工具栏,菜单,还提供了一个富COM来让UI成为可编程的.完整的命令处理和分发机制给用户提供了一个开放性的框架来访问已经安装的命令设备.[英文烂,中文更烂啊!!!囧]
可扩展架构
标准的IDE提供了大量的服务.
可扩展架构简图
VSPackage和服务的关系是双向的.VSPackage可以使用其他服务,也可以通过IProfferService接口来提供服务.基于服务的架构是从MS ActiveX设计试试中演化而来的,一个服务由一组有内在关联的接口形成一个任务.从严格意义COM的观点,所有的接口特别是服务必须是一个COM类的实现.
标准IDE提供了重要的服务给VSPackage,例如:SVsShell, SVsUIShell, SVsSolution.
阅读更多:
IDE service |
描述 |
---|---|
提供处理基础功能,VSPackage和注册的服务 |
|
提供基础窗口,UI相关的功能.例如:创建工具和文档窗口的功能 |
|
提供解决方案相关功能,例如:列举,创建,监视(改动)项目 |
因为提供了共享的服务,VS IDE和VSPackage紧密地相互依赖.但他们有不同的职责.
VS IDE负责:
提供关键服务,通过额外的VSPackages
提供可编程界面
按用户或其他VSPackage需求,创建VSPackage的实例,
提供为多个VSPackage之间通信,协调的服务
管理解决方案和他们需要的文件
提供命令分发,例如:菜单,工具栏,上下文菜单
协调选择,上下文和货币[不解]
VSPackage负责:
执行初始化和终止
写入注册表信息,让IDE在合适的时间加载合适VSPackage
提供服务以便于其他VSPackage通信
提供新的项目类型,编辑器和设计器
提供内嵌UI元素的扩展,例如任务,工具箱,选项对话框