SlideShare ist ein Scribd-Unternehmen logo
1 von 2
Downloaden Sie, um offline zu lesen
Visual Studio Ceases Support of Add-Ins in 
Community Previews 14 
Author: Paul Eremeev 
Date: 05.08.2014 
Not so long ago, Microsoft showed the next version of Visual Studio presently known as Visual Studio 14 
CTP (Community Technology Preview). After I installed the latest CTP version available, one of the things 
to catch my eye right away was the absence of the Add-In Manager item in the Tools menu. A year has 
passed since the time when add-ins were declared as deprecated in Visual Studio 2013, and it seems 
now the new IDE version will completely cease their support. 
I should explain to those not familiar with the nuances of plugin development for Visual Studio that by 
add-ins in this context we mean a certain type of Visual Studio extension modules (or simply plugins). 
This plugin type was introduced to Visual Studio quite a long time ago. Since then, other methods of 
extending Visual Studio's standard functionality have been developed, both complementing add-ins's 
functionality and duplicating it but in a way more convenient for developers and end users (MPF, 
VSPackage, MEF). We won't focus on these details now; let me only recommend you our series of 
articles on the topic of Visual Studio extensions in case you want to find out more about it. 
The PVS-Studio product, besides the C++ analyzer itself, includes plugins to allow it to integrate into a 
number of different IDEs – first of all, naturally, Visual Studio. Once, in the times of the earliest PVS-Studio 
versions, we utilized add-ins to integrate the tool into Visual Studio. But we upgraded all our 
projects to the VSPackage plugin format quite a while ago. 
Sure, those Visual Studio plugin developers who still use add-in format to integrate with the IDE (strange 
as it may sound, such plugins still do exist and are even actively developed) will soon be forced to 
upgrade their projects to a more up-to-date format. However, what personally I am wondering about is 
if cancelling all support for add-ins, as planned by Microsoft, will cause any troubles to us, i.e. those who 
use the VSPackage format in their products. 
It may seem at first that no troubles should occur. Microsoft will hardly drop support for VSPackage in 
the foreseeable future – if only because a great deal of the regular Visual Studio components are 
implemented in this very format. However, this comment on the news we are discussing by Carlos 
Quintero (MVP, specializing in Microsoft Extensibility) made me wonder and take a look at this problem 
from a bit different angle. 
In particular, before our plugin can launch static analysis of project files, it needs to collect all the 
information about these files concerning their build specifics – compilation arguments, project 
configuration parameters, and so on. To do this, the plugin uses the interfaces of the EnvDTE object, the 
top-level interface of the Visual Studio automation model. However, it is to support macros and add-ins 
that the Visual Studio automation model was initially created for, and the model was introduced as early 
as in the first Visual Studio.NET 2002 version, while VSPackage was developed somewhat later. 
However, macro support was ceased in Visual Studio 2012, add-in support will most likely be cancelled 
starting with the next version... what next? Won't Microsoft decide "one fine day" to completely give up 
EnvDTE too, especially taking into account that more and more Visual Studio components are using 
WPF, MEF, MPF interfaces (i.e. that very Package interface describing VSPackage plugin), and IDE 
services? EnvDTE, in its turn, may become (or perhaps has already become) an obsolete intermediate 
layer left solely for the sake of compatibility.
Well, we haven't seriously considered abandoning EnvDTE interfaces yet. Personally I, for instance, 
cannot imagine for now a more convenient (or at least as convenient) way to parse the project tree, get 
the list of all the necessary files and their build parameters, without such interfaces as VCProject and 
ProjectItem. Moreover, PVS-Studio in particular has to keep supporting old Visual Studio versions like 
2005 and 2008 that don't yet use the vcxproj project model based on MSBuild (it means Microsoft.Build 
interfaces won't help there). This issue as a whole surely requires special and detailed investigation. 
At the same time, we are not completely unprepared for this turn of events. In his post (see the link 
earlier in this article), Carlos Quintero suggests separating the code directly using the IDE's APIs from all 
the other plugin code – business logic, user interfaces, etc. Should the necessity of upgrading to a new 
API occur, this approach will help you keep most of the code unchanged, simply creating a new "layer" 
for different IDE interfaces. 
Our plugin – orplugins, to be more precise – had taken this path a few years ago already, although there 
had been a different reason behind it: we had had to provide support for a number of different IDEs 
besides Visual Studio. Although we haven't seen much commercial success from supporting these 
environments (RAD Studio  C++ Builder in particular), this approach allowed us to use the plugin code 
as a basis for an independent tool for analyzing C++ projects and handling analysis logs – PVS-Studio 
Standalone. We hope that if it comes to that, migration from EnvDTE interfaces will be a bit less painful 
job for us.

Weitere ähnliche Inhalte

Ähnlich wie Visual Studio Ceases Support of Add-Ins in Community Previews 14

Visual Studio 2008 Overview
Visual Studio 2008 OverviewVisual Studio 2008 Overview
Visual Studio 2008 Overview
Roman Okolovich
 
Visual Studio Software architecture
Visual Studio Software architectureVisual Studio Software architecture
Visual Studio Software architecture
Suphiyaan Sutar
 
Compile open cpn on windows
Compile open cpn on windowsCompile open cpn on windows
Compile open cpn on windows
randikaucsc
 

Ähnlich wie Visual Studio Ceases Support of Add-Ins in Community Previews 14 (20)

Creating, debugging and deploying extension packages for Microsoft Visual Stu...
Creating, debugging and deploying extension packages for Microsoft Visual Stu...Creating, debugging and deploying extension packages for Microsoft Visual Stu...
Creating, debugging and deploying extension packages for Microsoft Visual Stu...
 
Changes in programmer tools' infrastructure
Changes in programmer tools' infrastructureChanges in programmer tools' infrastructure
Changes in programmer tools' infrastructure
 
235042632 super-shop-ee
235042632 super-shop-ee235042632 super-shop-ee
235042632 super-shop-ee
 
Tutorial test driven development with Visual Studio 2012
Tutorial test driven development with Visual Studio 2012Tutorial test driven development with Visual Studio 2012
Tutorial test driven development with Visual Studio 2012
 
Visual Studio 2008 Overview
Visual Studio 2008 OverviewVisual Studio 2008 Overview
Visual Studio 2008 Overview
 
VS Code and Modern Development Environment Preview
VS Code and Modern Development Environment PreviewVS Code and Modern Development Environment Preview
VS Code and Modern Development Environment Preview
 
Overview
OverviewOverview
Overview
 
tutorials-visual-studio_visual-studio-2015-preview-comes-with-emulator-for-an...
tutorials-visual-studio_visual-studio-2015-preview-comes-with-emulator-for-an...tutorials-visual-studio_visual-studio-2015-preview-comes-with-emulator-for-an...
tutorials-visual-studio_visual-studio-2015-preview-comes-with-emulator-for-an...
 
Comparing static analysis in Visual Studio 2012 (Visual C++ 2012) and PVS-Studio
Comparing static analysis in Visual Studio 2012 (Visual C++ 2012) and PVS-StudioComparing static analysis in Visual Studio 2012 (Visual C++ 2012) and PVS-Studio
Comparing static analysis in Visual Studio 2012 (Visual C++ 2012) and PVS-Studio
 
Visual studio vs visual studio code
Visual studio vs visual studio codeVisual studio vs visual studio code
Visual studio vs visual studio code
 
Introducing visual studio_2010_v1.0--chappell
Introducing visual studio_2010_v1.0--chappellIntroducing visual studio_2010_v1.0--chappell
Introducing visual studio_2010_v1.0--chappell
 
Sharbani bhattacharya Visual Basic
Sharbani bhattacharya Visual BasicSharbani bhattacharya Visual Basic
Sharbani bhattacharya Visual Basic
 
Flutter vs Java Graphical User Interface Frameworks - text
Flutter vs Java Graphical User Interface Frameworks - textFlutter vs Java Graphical User Interface Frameworks - text
Flutter vs Java Graphical User Interface Frameworks - text
 
SharePoint Developer Experience Present & Future
SharePoint Developer Experience Present & FutureSharePoint Developer Experience Present & Future
SharePoint Developer Experience Present & Future
 
Visual Studio Software architecture
Visual Studio Software architectureVisual Studio Software architecture
Visual Studio Software architecture
 
dot net
dot netdot net
dot net
 
A developer's first impressions for windows 8
A developer's first impressions for windows 8A developer's first impressions for windows 8
A developer's first impressions for windows 8
 
Vue js & vue cli 3 plugins to boost up the performance of your application
Vue js & vue cli 3 plugins to boost up the performance of your applicationVue js & vue cli 3 plugins to boost up the performance of your application
Vue js & vue cli 3 plugins to boost up the performance of your application
 
Compile open cpn on windows
Compile open cpn on windowsCompile open cpn on windows
Compile open cpn on windows
 
Using VSTS to Deploy BizTalk Server Solutions by Johan Hedberg
Using VSTS to Deploy BizTalk Server Solutions by Johan HedbergUsing VSTS to Deploy BizTalk Server Solutions by Johan Hedberg
Using VSTS to Deploy BizTalk Server Solutions by Johan Hedberg
 

Mehr von Andrey Karpov

Mehr von Andrey Karpov (20)

60 антипаттернов для С++ программиста
60 антипаттернов для С++ программиста60 антипаттернов для С++ программиста
60 антипаттернов для С++ программиста
 
60 terrible tips for a C++ developer
60 terrible tips for a C++ developer60 terrible tips for a C++ developer
60 terrible tips for a C++ developer
 
Ошибки, которые сложно заметить на code review, но которые находятся статичес...
Ошибки, которые сложно заметить на code review, но которые находятся статичес...Ошибки, которые сложно заметить на code review, но которые находятся статичес...
Ошибки, которые сложно заметить на code review, но которые находятся статичес...
 
PVS-Studio in 2021 - Error Examples
PVS-Studio in 2021 - Error ExamplesPVS-Studio in 2021 - Error Examples
PVS-Studio in 2021 - Error Examples
 
PVS-Studio in 2021 - Feature Overview
PVS-Studio in 2021 - Feature OverviewPVS-Studio in 2021 - Feature Overview
PVS-Studio in 2021 - Feature Overview
 
PVS-Studio в 2021 - Примеры ошибок
PVS-Studio в 2021 - Примеры ошибокPVS-Studio в 2021 - Примеры ошибок
PVS-Studio в 2021 - Примеры ошибок
 
PVS-Studio в 2021
PVS-Studio в 2021PVS-Studio в 2021
PVS-Studio в 2021
 
Make Your and Other Programmer’s Life Easier with Static Analysis (Unreal Eng...
Make Your and Other Programmer’s Life Easier with Static Analysis (Unreal Eng...Make Your and Other Programmer’s Life Easier with Static Analysis (Unreal Eng...
Make Your and Other Programmer’s Life Easier with Static Analysis (Unreal Eng...
 
Best Bugs from Games: Fellow Programmers' Mistakes
Best Bugs from Games: Fellow Programmers' MistakesBest Bugs from Games: Fellow Programmers' Mistakes
Best Bugs from Games: Fellow Programmers' Mistakes
 
Does static analysis need machine learning?
Does static analysis need machine learning?Does static analysis need machine learning?
Does static analysis need machine learning?
 
Typical errors in code on the example of C++, C#, and Java
Typical errors in code on the example of C++, C#, and JavaTypical errors in code on the example of C++, C#, and Java
Typical errors in code on the example of C++, C#, and Java
 
How to Fix Hundreds of Bugs in Legacy Code and Not Die (Unreal Engine 4)
How to Fix Hundreds of Bugs in Legacy Code and Not Die (Unreal Engine 4)How to Fix Hundreds of Bugs in Legacy Code and Not Die (Unreal Engine 4)
How to Fix Hundreds of Bugs in Legacy Code and Not Die (Unreal Engine 4)
 
Game Engine Code Quality: Is Everything Really That Bad?
Game Engine Code Quality: Is Everything Really That Bad?Game Engine Code Quality: Is Everything Really That Bad?
Game Engine Code Quality: Is Everything Really That Bad?
 
C++ Code as Seen by a Hypercritical Reviewer
C++ Code as Seen by a Hypercritical ReviewerC++ Code as Seen by a Hypercritical Reviewer
C++ Code as Seen by a Hypercritical Reviewer
 
The Use of Static Code Analysis When Teaching or Developing Open-Source Software
The Use of Static Code Analysis When Teaching or Developing Open-Source SoftwareThe Use of Static Code Analysis When Teaching or Developing Open-Source Software
The Use of Static Code Analysis When Teaching or Developing Open-Source Software
 
Static Code Analysis for Projects, Built on Unreal Engine
Static Code Analysis for Projects, Built on Unreal EngineStatic Code Analysis for Projects, Built on Unreal Engine
Static Code Analysis for Projects, Built on Unreal Engine
 
Safety on the Max: How to Write Reliable C/C++ Code for Embedded Systems
Safety on the Max: How to Write Reliable C/C++ Code for Embedded SystemsSafety on the Max: How to Write Reliable C/C++ Code for Embedded Systems
Safety on the Max: How to Write Reliable C/C++ Code for Embedded Systems
 
The Great and Mighty C++
The Great and Mighty C++The Great and Mighty C++
The Great and Mighty C++
 
Static code analysis: what? how? why?
Static code analysis: what? how? why?Static code analysis: what? how? why?
Static code analysis: what? how? why?
 
Zero, one, two, Freddy's coming for you
Zero, one, two, Freddy's coming for youZero, one, two, Freddy's coming for you
Zero, one, two, Freddy's coming for you
 

Kürzlich hochgeladen

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 

Kürzlich hochgeladen (20)

Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 

Visual Studio Ceases Support of Add-Ins in Community Previews 14

  • 1. Visual Studio Ceases Support of Add-Ins in Community Previews 14 Author: Paul Eremeev Date: 05.08.2014 Not so long ago, Microsoft showed the next version of Visual Studio presently known as Visual Studio 14 CTP (Community Technology Preview). After I installed the latest CTP version available, one of the things to catch my eye right away was the absence of the Add-In Manager item in the Tools menu. A year has passed since the time when add-ins were declared as deprecated in Visual Studio 2013, and it seems now the new IDE version will completely cease their support. I should explain to those not familiar with the nuances of plugin development for Visual Studio that by add-ins in this context we mean a certain type of Visual Studio extension modules (or simply plugins). This plugin type was introduced to Visual Studio quite a long time ago. Since then, other methods of extending Visual Studio's standard functionality have been developed, both complementing add-ins's functionality and duplicating it but in a way more convenient for developers and end users (MPF, VSPackage, MEF). We won't focus on these details now; let me only recommend you our series of articles on the topic of Visual Studio extensions in case you want to find out more about it. The PVS-Studio product, besides the C++ analyzer itself, includes plugins to allow it to integrate into a number of different IDEs – first of all, naturally, Visual Studio. Once, in the times of the earliest PVS-Studio versions, we utilized add-ins to integrate the tool into Visual Studio. But we upgraded all our projects to the VSPackage plugin format quite a while ago. Sure, those Visual Studio plugin developers who still use add-in format to integrate with the IDE (strange as it may sound, such plugins still do exist and are even actively developed) will soon be forced to upgrade their projects to a more up-to-date format. However, what personally I am wondering about is if cancelling all support for add-ins, as planned by Microsoft, will cause any troubles to us, i.e. those who use the VSPackage format in their products. It may seem at first that no troubles should occur. Microsoft will hardly drop support for VSPackage in the foreseeable future – if only because a great deal of the regular Visual Studio components are implemented in this very format. However, this comment on the news we are discussing by Carlos Quintero (MVP, specializing in Microsoft Extensibility) made me wonder and take a look at this problem from a bit different angle. In particular, before our plugin can launch static analysis of project files, it needs to collect all the information about these files concerning their build specifics – compilation arguments, project configuration parameters, and so on. To do this, the plugin uses the interfaces of the EnvDTE object, the top-level interface of the Visual Studio automation model. However, it is to support macros and add-ins that the Visual Studio automation model was initially created for, and the model was introduced as early as in the first Visual Studio.NET 2002 version, while VSPackage was developed somewhat later. However, macro support was ceased in Visual Studio 2012, add-in support will most likely be cancelled starting with the next version... what next? Won't Microsoft decide "one fine day" to completely give up EnvDTE too, especially taking into account that more and more Visual Studio components are using WPF, MEF, MPF interfaces (i.e. that very Package interface describing VSPackage plugin), and IDE services? EnvDTE, in its turn, may become (or perhaps has already become) an obsolete intermediate layer left solely for the sake of compatibility.
  • 2. Well, we haven't seriously considered abandoning EnvDTE interfaces yet. Personally I, for instance, cannot imagine for now a more convenient (or at least as convenient) way to parse the project tree, get the list of all the necessary files and their build parameters, without such interfaces as VCProject and ProjectItem. Moreover, PVS-Studio in particular has to keep supporting old Visual Studio versions like 2005 and 2008 that don't yet use the vcxproj project model based on MSBuild (it means Microsoft.Build interfaces won't help there). This issue as a whole surely requires special and detailed investigation. At the same time, we are not completely unprepared for this turn of events. In his post (see the link earlier in this article), Carlos Quintero suggests separating the code directly using the IDE's APIs from all the other plugin code – business logic, user interfaces, etc. Should the necessity of upgrading to a new API occur, this approach will help you keep most of the code unchanged, simply creating a new "layer" for different IDE interfaces. Our plugin – orplugins, to be more precise – had taken this path a few years ago already, although there had been a different reason behind it: we had had to provide support for a number of different IDEs besides Visual Studio. Although we haven't seen much commercial success from supporting these environments (RAD Studio C++ Builder in particular), this approach allowed us to use the plugin code as a basis for an independent tool for analyzing C++ projects and handling analysis logs – PVS-Studio Standalone. We hope that if it comes to that, migration from EnvDTE interfaces will be a bit less painful job for us.