SlideShare a Scribd company logo
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.

More Related Content

PDF
Introducing visual studio_2010_v1.0--chappell
PDF
TechnoGeek training report
PDF
Android Jump Start
PDF
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...
PDF
NetWork - 15.10.2011 - Applied code generation in .NET
PDF
Nuget is easier than you think and you should be using it as both a consumer ...
PDF
Support of Visual Studio 2017 and Roslyn 2.0 in PVS-Studio: sometimes it's no...
PDF
Changes in programmer tools' infrastructure
Introducing visual studio_2010_v1.0--chappell
TechnoGeek training report
Android Jump Start
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...
NetWork - 15.10.2011 - Applied code generation in .NET
Nuget is easier than you think and you should be using it as both a consumer ...
Support of Visual Studio 2017 and Roslyn 2.0 in PVS-Studio: sometimes it's no...
Changes in programmer tools' infrastructure

Similar to Visual Studio Ceases Support of Add-Ins in Community Previews 14 (20)

PDF
Creating, debugging and deploying extension packages for Microsoft Visual Stu...
PDF
Changes in programmer tools' infrastructure
DOC
235042632 super-shop-ee
DOCX
Tutorial test driven development with Visual Studio 2012
PDF
Visual Studio 2008 Overview
PPTX
VS Code and Modern Development Environment Preview
DOCX
Overview
PDF
tutorials-visual-studio_visual-studio-2015-preview-comes-with-emulator-for-an...
PDF
Comparing static analysis in Visual Studio 2012 (Visual C++ 2012) and PVS-Studio
PPTX
Visual studio vs visual studio code
PPTX
Introducing visual studio_2010_v1.0--chappell
PDF
Visual Basic In Easy Steps Covers Visual Basic 2015 Fourth Mcgrath
PPTX
Sharbani bhattacharya Visual Basic
PDF
Flutter vs Java Graphical User Interface Frameworks - text
PPTX
SharePoint Developer Experience Present & Future
PPTX
Visual Studio Software architecture
ODP
dot net
DOC
A developer's first impressions for windows 8
PDF
Vue js & vue cli 3 plugins to boost up the performance of your application
PDF
Programming Ios 8 Dive Deep Into Views View Controllers And Frameworks Matt N...
Creating, debugging and deploying extension packages for Microsoft Visual Stu...
Changes in programmer tools' infrastructure
235042632 super-shop-ee
Tutorial test driven development with Visual Studio 2012
Visual Studio 2008 Overview
VS Code and Modern Development Environment Preview
Overview
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
Visual studio vs visual studio code
Introducing visual studio_2010_v1.0--chappell
Visual Basic In Easy Steps Covers Visual Basic 2015 Fourth Mcgrath
Sharbani bhattacharya Visual Basic
Flutter vs Java Graphical User Interface Frameworks - text
SharePoint Developer Experience Present & Future
Visual Studio Software architecture
dot net
A developer's first impressions for windows 8
Vue js & vue cli 3 plugins to boost up the performance of your application
Programming Ios 8 Dive Deep Into Views View Controllers And Frameworks Matt N...
Ad

More from Andrey Karpov (20)

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

Recently uploaded (20)

PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PDF
How AI/LLM recommend to you ? GDG meetup 16 Aug by Fariman Guliev
PDF
17 Powerful Integrations Your Next-Gen MLM Software Needs
PDF
Website Design Services for Small Businesses.pdf
PDF
AutoCAD Professional Crack 2025 With License Key
PPTX
Oracle Fusion HCM Cloud Demo for Beginners
PDF
CCleaner Pro 6.38.11537 Crack Final Latest Version 2025
PPTX
Why Generative AI is the Future of Content, Code & Creativity?
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PPTX
Patient Appointment Booking in Odoo with online payment
PPTX
history of c programming in notes for students .pptx
PDF
AI-Powered Threat Modeling: The Future of Cybersecurity by Arun Kumar Elengov...
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PPTX
assetexplorer- product-overview - presentation
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
How to Make Money in the Metaverse_ Top Strategies for Beginners.pdf
wealthsignaloriginal-com-DS-text-... (1).pdf
How AI/LLM recommend to you ? GDG meetup 16 Aug by Fariman Guliev
17 Powerful Integrations Your Next-Gen MLM Software Needs
Website Design Services for Small Businesses.pdf
AutoCAD Professional Crack 2025 With License Key
Oracle Fusion HCM Cloud Demo for Beginners
CCleaner Pro 6.38.11537 Crack Final Latest Version 2025
Why Generative AI is the Future of Content, Code & Creativity?
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Navsoft: AI-Powered Business Solutions & Custom Software Development
Patient Appointment Booking in Odoo with online payment
history of c programming in notes for students .pptx
AI-Powered Threat Modeling: The Future of Cybersecurity by Arun Kumar Elengov...
Operating system designcfffgfgggggggvggggggggg
Design an Analysis of Algorithms I-SECS-1021-03
assetexplorer- product-overview - presentation
Internet Downloader Manager (IDM) Crack 6.42 Build 41
CHAPTER 2 - PM Management and IT Context
Design an Analysis of Algorithms II-SECS-1021-03
How to Make Money in the Metaverse_ Top Strategies for Beginners.pdf

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.