"Visual Studio Integration Package" vs "Visual Studio Add-in": what is the difference? - visual-studio

When creating a new extension for visual studio, there are two project options: "Visual Studio Integration Package" and "Visual Studio Add-in". What is the difference between the two project types and when would you use one over the other?

Ok, you can find a full detailed comparison here (there are also links to the previous parts in the series).
But basically, add-ins were available as the VS extension type from the very first versions of the VS and built as the COM components. Later on, some limitations were discovered in that approach, so the new extensibility feature was created -- namely VS SDK package.
Probably, if you are building an extension for VS 2008+ you should target the VS SDK package as the newer technology. Another strong point of the VS package is better integration with the Visual Studio.
Whatever you do, add-ins are an
external thing for Visual Studio while
VSPackages are a completely integrated
part of the IDE.
You still might consider building an add-in, if
you need access to high-level extensibility API, as opposed to low-level fundamental API available from a VS package;
you develop in Visual Basic (templates for VS Package are available only in C# / Visual C++);
you want to automate a simple task / common scenario, then add-in will probably require less development effort.

Important point on Visual Studio Add-in vs Package, Add-ins are deprecated in VS 2013 and will not be available in VS "14"
Add-ins Deprecated in Visual Studio 2013
Visual Studio "14" CTP: add-ins are gone
"Official" guidance from How to: Create an Add-In is "Visual Studio add-ins are deprecated in Visual Studio 2013. You should upgrade your add-ins to VSPackage extensions...."

An integration package is something that can be chosen when you start a new project (like how you pick C# or VB).
See http://www.bitwisemag.com/copy/features/dev/visual_studio/vs2005_integration_1.html.
Add-ins work just like they would for MS Office applications. You can add your own custom buttons and menu items. Here is an example: http://www.c-sharpcorner.com/UploadFile/mgold/AddIns11292005015631AM/AddIns.aspx.

Related

Does InfoPath 2013 support Visual Studio 2013?

I am trying to develop custom code for an InfoPath 2013 form. I have Visual Studio 2013 Professional installed, but when trying to edit code I get the following message:
The following external components are required to edit your form code. Please install them and try again.
Microsoft Visual Studio 2012
Visual Studio C# Support
Microsoft Visual Studio Tools for Applications 2012
C# support is installed, along with Visual Studio Tools for Applications 2012.
Does InfoPath 2013 just not support VS2013?
Unfortunately No
MS has really been making some bad decisions lately
Firstly VS2013 was released so they forced people to upgrade if you want to develop for Windows 8.1
Secondly, MS have announced that they are dropping InfoPath and have yet to provide an alternate solution. Support is still available but InfoPath 2013's successor will be another solution.....i'm guessing Azure Forms or SharePoint forms, something like that
Very disappointing
As you have found, adding code to an InfoPath 2013 form requires Visual Studio 2012. I am not aware of a way to use it with any other version of Visual Studio.
Depending on what you plan to use the custom code for, you may be able to get by with the qRules library (full disclosure: I am one of the developers of this library). It contains many of the most common features for which people tend to use code within InfoPath, and you can use them simply by executing rules within your form, eliminating the need for any version of Visual Studio.
If there is a specific thing you are looking to do with code, I can tell you whether it's possible to do so with qRules, but you should open a separate question for that (and let me know here).

Create MSI or setup project with Visual Studio 2012

I create a small application and I would like to create one MSI file.
In Visual Studio 2010 you have this project type under:
Other Project Types -> Setup and Deployment -> Visual studio Installer -> Setup Project
But the only thing you got in Visual Studio 2012 is "Enable InstallShield Limited Edition".
You can change the .NET Framework, but nothing changes.
Why is it not there any more? And how can I get it back? Is there a new way to do this?
Please see:
Visual Studio setup projects (vdproj) will not ship with future versions of VS
Windows Installer Deployment
It was announced 1 1/2 years ago that the project types were being killed. Alternatives are:
Use A VS2008/2010 Solution to build your installer
Switch to another tool such as InstallShield or Windows Installer XML
To create setup projects in Visual Studio 2012 with InstallShield Limited Edition, watch this video.
The InstallShield limited edition that cannot install services.
"ISLE is by far the worst installer option and the upgraded, read -
paid for, version is cumbersome to use at best and impossible in most
situations. InnoSetup, Nullsoft, Advanced, WiX, or just about any
other installer is better. If you did a survey you would see that
nobody is using ISLE. I don't know why you guys continue to associate
with InstallShield. It damages your credibility. Any developer worth
half his weight in salt knows ISLE is worthless and when you stand
behind it we have to question Microsoft's judgment."
By Edward Miller (comments in Visual Studio Installer Projects Extension).
The WiX Toolset, which, while powerful is exceeding user-unfriendly and has a steep learning curve. There is even a downloadable template for installing Windows services (ref. VS2012: Installer for Windows services?).
For Visual Studio 2013, see blog post Creating installers with Visual Studio.
Have you tried the "Publish" method? You just right click on the project file in the solution explorer and select "Publish" from the pop-up menu. This creates an installer in a few very simple steps.
You can do more configuration of the installer from the Publish tab in the project properties window.
NB: This method only works for WPF & Windows Forms apps.
Microsoft has listened to the cry for supporting installers (MSI) in Visual Studio and released the Visual Studio Installer Projects Extension. You can now create installers in Visual Studio 2013; download the extension here from the visualstudiogallery.
ISLE (InstallShield Limited Edition) is the "replacement" of the Visual Studio Setup and Deploy project, but many users think Microsoft took wrong step with removing .vdproj support from Visual Studio 2012 (and later ones) and supporting third-party company software.
Many people asked for returning it back (Bring back the basic setup and deployment project type Visual Studio Installer), but Microsoft is deaf to our voices... really sad.
As WiX is really complicated, I think it is worth to try some free installation systems - NSIS or Inno Setup. Both are scriptable and easy to learn - but powerful as original SADP.
I have created a really nice Visual Studio extension for NSIS and Inno Setup with many features (intellisense, syntax highlighting, navigation bars, compilation directly from Visual Studio, etc.). You can try it at www.visual-installer.com (sorry for self promo :)
Download Inno Setup (jrsoftware.org/isdl.php) or NSIS (nsis.sourceforge.net/Download) and install V&I (unsigned-softworks.sk/visual-installer/downloads.html).
All installers are simple Next/Next/Next...
In Visual Studio, select menu File -> New -> Project, choose NSISProject or Inno Setup, and a new project will be created (with full sources).
There is some progress for Visual studio 2013 developers :-D woot woot! See blog post Visual Studio Installer Projects Extension.
Link and information were retrieved from Brian Harry's blog post Creating installers with Visual Studio.
Have a look at the article Visual Studio Installer Deployment. It will surely help you.
You can choose the correct version of .NET framework on the page.
So for you, make it .NET 4.5. I guess that would be there for Visual Studio 2012.
I think that Deploying an Office Solution by Using ClickOnce (MSDN) can be useful.
After creating an Outlook plugin for Office 2010 the problem was to install it on the customer's computer, without using ISLE or other complex tools (or expensive).
The solution was to use the publish instrument of the Visual Studio project, as described in the link. Just two things to be done before the setup will work:
Install the PIA (Primary Interop Assembly) of Office 2010
Install the VSTO 2010 runtime

Specflow with Visual Studio express

I have used Specflow in Visual Studio 2010 Pro at work but would like to use it on my personal projects. Unfortunately I only have VS210 Express.
I have not managed to get Specflow working in VS2010 Express. has anyone done this or is it even possible.
thanks,
I have managed to do this, and I have written a blog post on how to do this entitled: "C# ATDD on a shoestring (or the complete guide to SpecFlow & NUnit in VS2010 Express)"
The main idea is: SpecFlow generates fixtures for one of the common Unit-Test-Frameworks. More information you can find here.
I suppose that you loose some Item templates that appear in the Visual Studio Professional but disappear for Visual Studio Express versions. To overcome this problem you should take all templates files from SpecFlow application folder on computer where you have Professional version installed. On my computer it is located here:
C:\Program Files (x86)\TechTalk\SpecFlow\ItemTemplates
There should be the files like: SpecFlowFeature.zip and etc, all with *.zip extension. Then you should copy its to your computer for this place:
C:\Users\[User name]\Documents\Visual Studio 2010\Templates\ItemTemplates\Visual C#
And finally, open Microsoft Visual C# 2010 Express. Create console application, for example. And choose Project -> Add new item. There is only possible to open these templates with Microsoft Visual C# 2010 Express. Because inside template files it was defined that templates could be open only with C# project type.
You can't use 3rd party add ons (like Specflow, ReSharper etc.) with the Express editions of Visual Studio. I can't find the reference right now, but this will be why you can't integrate Specflow.

Creating a Visual Studio 2010 add-in with a user-interface?

How can I create a Visual Studio 2010 add-in with a user-interface? I want my add-in to have a window that can be pinned, just like the "Output", "Task list", "Error list" and all the other extensive windows in Visual Studio.
Where can I find documentation on add-ins with such user-interfaces to get me started? I can only find documentation on the actual coding.
Although there is some Microsoft documentation for writing add-ins, I recommend you start at Carlos Quintero's Resources about Visual Studio .NET extensibility. There are many how-to articles and links to a variety of documentation.
I figured out that what I needed was Visual Studio 2010 packages.
Fear not, these packages can be made in managed languages too (C# and Visual Basic). However, they require the Visual Studio 2010 SDK, which I didn't have installed.
It's very easy to make, and is done without hassle! Furthermore, it's cool, since the UI of the addins allow WPF!

Differences between Visual Studio 2010 add-in manager and extension manager

The difference between Add-In and Integration Package is still unclear and now with Visual Studio 2010 an extension manager appears along with the add-in manager.
What are the differences between the add-in manager and the extension manager?
Can an add-in be in both manager at the same time?
Add-ins implement an extensibility interface that was first created for Visual Studio.Net for customizing and automating the IDE. These add-ins are supported in Visual Studio 2002/2003/2005/2008/2010.
Extensions are MEF components and do not normally implement the Add-in interface. Visual Studio 2010 is the first version of Visual Studio to support MEF components.
Only Add-ins appear in the Add-in Manager. Only Extensions appear in the Extension Manager.
I don't know if an MEF extension could also be loaded by Visual Studio as an add-in, but there's really not much reason that to happen. An extension can use the add-in DTE interfaces without actually being loaded as an add-in.

Resources