关闭

vs插件开发

285人阅读 评论(0) 收藏 举报
分类:

The Visual Studio integrated development environment (IDE) is a framework for hosting VSPackages and for making it easier to exchange shared services. An example of this is the way the IDE implements the user interface (UI). The IDE provides the container window and the default toolbars and menus. It also provides a rich COM infrastructure that makes the UI programmable. The complete command handling and routing scheme gives users an open framework that offers easy access to both existing and installed command sets.

Extensibility Architecture

The following illustration shows the Visual Studio extensibility architecture. Note that the concept of software application is absent. Instead, the IDE hosts software components, called VSPackages, that provide application functionality. This functionality, in turn, is shared across the IDE as services. VSPackages offer services that they and other VSPackages use. The standard IDE also offers a broad range of services, such as SVsUIShell, which provide access to the IDE windowing functionality.

Generalized view of the Visual Studio architecture

Environment Architecture graphic

Notice that the relationship between VSPackages and services is bidirectional. Although VSPackages use services offered by others, they also can offer services of their own by using the IProfferService interface. This service-based architecture grew out of the Microsoft ActiveX Designer implementation, in which a service is a group of related interfaces that perform a task. From a strict COM viewpoint, all the interfaces of a particular service must be implemented in a single COM class.

The standard IDE offers important services, such as SVsShellSVsUIShell, and SVsSolution, which are used by VSPackages. The following table lists and describes some of these services. For more information, see Services.

IDE service

Description

SVsShell

Provides access to IDE services dealing with basic functionality, VSPackages, and the registry.

SVsUIShell

Provides basic windowing and UI-related functionality in the IDE, such as the ability to create tools and document windows.

SVsSolution

Provides basic solution-related functionality, such as the ability to enumerate projects, create new projects, and monitor project changes.

Because of their tight integration through the interaction of shared services, the Visual Studio IDE and VSPackages are closely interdependent. However, despite their close interaction they have different responsibilities.

The Visual Studio IDE is responsible for the following tasks:

  • Providing critical services for use by external VSPackages.

  • Providing a programmable interface, which enables participation with standard UI elements.

  • Creating instances of VSPackages as required by user actions or by other VSPackages requesting services.

  • Providing services that make it possible for communication and coordination between VSPackages.

  • Managing solutions and their required files.

  • Providing window management.

  • Providing command routing and command bars, such as menus, toolbars, and context menus.

  • Coordinating selection, context, and currency.

VSPackages are responsible for the following tasks:

  • Performing certain initialization and termination routines.

  • Writing information to the registry, which the IDE uses to load the appropriate VSPackages at the appropriate times.

  • Offering the services that are required for communicating with other VSPackages.

  • Providing implementations for new project types, editors, and designers.

  • Providing extensions for built-in UI elements, such as task items, toolbox items, and the Options dialog box.

0
0
查看评论

1.2 开始开发 vs 插件

开始开发 vs插件 如果你以前从来没有开发过vs 插件,你也许有些疑问。我们在这里列出大部分问题。如果你没有看到你要的信息,使用返回按钮,来告诉你想要了解什么。 开发vs插件需要什么软件呢? 你需要安装在 安装vs时 或安装后 选着安装vs sdk。 vs 插...
  • downloadflex
  • downloadflex
  • 2017-06-01 22:10
  • 387

Visual Studio Package 插件开发

背景   这段时间公司新做了一个支付系统,里面有N个后台服务,每次有更新修改,拷贝打包发布包“不亦乐乎”。。。于是我想要不要自己定制个打包插件。   部分朋友可能会认为,有现成的可以去找一个,干嘛不用持续集成工具啊。   1、公司没用,也不打算用   2、自己想折腾下,好奇   因此主要是...
  • jiangfei009003
  • jiangfei009003
  • 2016-11-11 17:49
  • 2598

Visual Studio 2015 插件开发 从入门到放弃(一)

必需知识:C#和Visual Studio (1)安装 Visual Studio 2015 的时候选择 Visual Studio 扩展性工具(Visual Studio Extensibility Tools)。对于已经安装好 Visual Studio 2015 的小伙伴,可以找VS20...
  • AncientPeople
  • AncientPeople
  • 2016-11-20 17:37
  • 7557

VSCode插件开发

VSCode插件开发工具准备 安装Node.js 升级Npm需要保证 npm 是最新的版本,不然安装 Yeoman 可能出错 npm i -g npm安装Yeoman npm install -g yo generator-code编码准备 生成插件最先是使用 Win10 来安装 Yeoma...
  • MyHerux
  • MyHerux
  • 2017-10-26 11:51
  • 293

VS小插件--属性自动生成器

    对于“依赖注入”,我最常用的是“设值注入法”(即通过Setter属性注入),对于需要注入很多依赖的类来说,一个一个的手动写属性的繁琐已经让我难以忍受了。于是我写了一个VS2003的小插件,你只需要输入类型和属性名,它就能在编辑器指定的地方自动生成属性,并且一次可...
  • zhuweisky
  • zhuweisky
  • 2006-03-24 16:59
  • 741

VS插件开发

addNamedCommand,增加一个命令对象的时候,有一个图片位图ID,该图片所在的资源编译类型必须是【不生成代码】,而且该图片的大小必须是16*16,否则图片增加不到命令上。
  • davidsu33
  • davidsu33
  • 2015-05-06 16:53
  • 450

VS插件编写初探

Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE
  • jingzhongrong
  • jingzhongrong
  • 2010-01-20 12:59
  • 1913

VS插件开发(1 菜单)

最近工作需要,学习一些插件的开发。IDE平台不是.NET开发的。用起来比较累。 在VisualStudio里建立 VisualStudio外接程序。 菜单主要的工作方法OnConnection   QueryStatus   Exec...
  • zgke
  • zgke
  • 2008-10-09 12:48
  • 5581

vs2010开发activex(MFC)控件/ie插件(一)

vs2010制作基于mfc的ie插件
  • yhhyhhyhhyhh
  • yhhyhhyhhyhh
  • 2016-03-02 20:35
  • 3910

vscode编写插件详细过程

转自:http://www.cnblogs.com/caipeiyu/p/5507252.html 前言 之前编写了一个vscode插件用vscode写博客和发布,然后有园友要求写一篇来介绍如何开发一个vscode扩展插件,或者说介绍开发这个插件的过程。然而文章还没有写,园子里面已经有人...
  • cometwo
  • cometwo
  • 2016-05-19 12:48
  • 20705
    个人资料
    • 访问:736430次
    • 积分:8422
    • 等级:
    • 排名:第2829名
    • 原创:412篇
    • 转载:438篇
    • 译文:0篇
    • 评论:57条
    文章分类
    最新评论