In relation to this stackoverflow question, how would I go about creating my own Visual Studio 2008 plug-in?
I've checked the Visual Studio Developer Centre on MSDN, but the amount of info is overwhelming. There are loads of project types, and I don't even know where to start.
Where should I start looking if I want to write something which meets the following requirements:
A plug-in that runs like a "service" in Visual Studio, and is able to poll Visual Studio for information, and handle Visual Studio events.
The info I'd like to access from VS are things like, what projects are currently open, who has them open, and other solution/project file based info.
The events I'd like to be able to handle are things like, the opening/closing/editing/creating/deleting of Solutions / Projects / individual files.
I'd also like to be able to handle any interaction with VS on a per solution basis. So, I'd like to handle any interaction with files, even code editing, but also, just other interaction, like with the menus, or just the IDE itself.
As well as these, I'd also like to be able to store data somewhere. Where is this usually done? Can I add Metadata to the Solution file? Or, does it make sense to save this info to a small local instance of a database, that is somehow attached to the solution..?
I just need a push in the right direction, is any of this possible? What part of the Visual Studio Developer Centre should I focus on? What APIs should I check out?
cheers!
An add-in can do most of that. There's a template in VS2008 for creating a base add-in.
I have an add-in that you can download that hooks into the solution/project load events etc - it is free and comes with source code ( http://www.huagati.com/projectloader/download/huagatiprojectloader.zip ). This particular add-in detects when projects/solutions are loaded and pre-loads referenced assemblies to work around a CLR bug that can cause VS2008 to crash. Anyway, the source code for it shows how to detect some of the events you're looking for.
Other than that, the definitive resource on add-in development and all the little quirks and tricks involved is Carlos Quintero's blog ( http://msmvps.com/blogs/carlosq/ ) and the "howto" article series on his website ( http://www.mztools.com/resources_vsnet_addins.aspx ).
Craig Skibo's blog ( http://blogs.msdn.com/craigskibo/ ) also has some useful tips.
You want:
Visual Studio Extensibility Developer Center
VSX Forum
Visual Studio 2008 SDK
Professional Visual Studio Extensibility by Keyvan Nayyeri
Buy the book, if nothing else.
I have been using Visual Studio Express versions. I used to use the full Pro VS 2005. I can't figure out what I am missing with the Express version. What benefits will I get if I buy the full version of VS?
Here you go. This link is vs2005 specific rather than the more-recent 2008, but that's the version you asked about.
Some highlights:
No Mobile Device support
No Object Test Bench
No Extensions
No built-in source control support (they should really change this)
No remote debugging
No Office Development support
No 64-bit compiler support
No Visual Studio Package support
No profiler
No SQL Server debugging integration
Limited deployment options
This list is actually quite lengthy, but with the notable exception of source control they are mostly things you might be able to do without as a single developer, if you really have to. Even the source control can be handled by a file-system-only tool like Tortoise.
Obviously if you're building something like a smart phone app or VS extension it's a non-starter, so you'll need to evaluate what you're really doing. Some of the other missing features like object test bench or the profiler can be partially replaced by third-party tools.
Here's a link to a downloadable Visual Studio 2008 Product Comparison Guide from Microsoft.
The full version of Visual studio supports some extra features and tools.
One of the big differences is more debugging options (You can specify break conditions for debugging, unlike the express version). That feature alone is probably worth it.
You can also install 3rd party addons to add extra featues.
No Resharper.
also, you can add addins like VisualSVN and Resharper into pro. You can't into express.
Matze might be right - MS needs the money - 5K people layed off today, and only 4.7b profit! :(
Depends on what you do. Look at the product matrix to see what features you gain with higher SKUs. Testing, Smart Devices, etc may or may not be relevant for you.
This really just requires a bit of Googling.
You can view a comparison of the paid versions here and an overview of the Express versions here
Have a look at this:
http://blogshare.members.winisp.net/docs/VisualStudio2008-ProductComparison-v1.02-Revisions.xps
If you are doign any sort of professional development with Visual Studio you should buy the Standard edition at a bare minimum. Without it you will loose Source Control integration which IMHO is vital absolute must no questions asked must have for professional development.
I used VS2003 for a while, and am currently using VS2008 C# Express.
Personally, I miss the ability to set a conditional breakpoint instead of simply breaking when a line is hit, and the Threads window.
Support for code version systems is a feature that is real essential.
And Microsoft needs your money to go on implementing new, hot stuff.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
Can anyone recommend any good add-ons or plugins for Microsoft Visual Studio?
Freebies are preferred, but if it is worth the cost then that's fine.
SmartPaster - (FREE) Copy/Paste code generator for strings
AnkhSvn - (FREE) SVN Source Control Integration for VS.NET
VisualSVN Server - (FREE) Source Control
ReSharper - IDE enhancement that helps with refactoring and productivity
CodeRush - Code gen macros on steroids
Refactor - Code refactoring aid
CodeMaid (FREE) - Code cleanup, organization and complexity analysis
CodeSmith - Code Generator
GhostDoc - (FREE) Simple code commenting tool
DXCore (FREE) and its many awesome plugins: DxCore Community Plugins, CR_Documentor, CodeStyleEnforcer, RedGreen
TestDriven.Net - (FREE/PAY) Unit Testing Aid
Reflector - (PAY) Feature rich .Net Disassembler Reflector AddIn's
Web Deployment Projects - Provides additional functionality to build and deploy Web sites and Web applications (source).
StudioTools - (FREE) Navigation assistant, code metrics tool, incremental search, file explorer in visual studio and tear off editor windows. Moved from old site (archive.org) to new site and discontinued.
Not free, but ReSharper is definitely one recommendation.
Whole Tomato's Visual Assist X. I absolutely swear by it. I would like to see a better plug in for Lint than Visual Lint by Riverblade, but since that will eventually be moved onto the build server I don't mind running it every couple of days manually.
PowerCommands is a Microsoft-created plugin that offers a variety of new features that one would think probably should have been in Visual Studio in the first place.
These include
Copying/Pasting project references!
"Open Containing Folder" to jump straight to the hard-drive location of a file or project
Automatic reorganizig and sorting of using statements
"Open Command Prompt Here" to open a command prompt in any of your project folders.
Collapse Projects
RockScroll is awesome, and free.
Addendum
As #Andrei points out, MetalScroll is a better alternative. It's Open Source, and corrects some annoying things about RS.
I'm a big fan of CodeRush and Refactor! Pro by DevExpress. I've been using them for a number of years, and without a doubt it makes me a faster developer. Also, both are built on a free framework called DXCore that allows you to develop your own plug-ins for Visual Studio, and the sky is the limit there...
Resharper
Resharper MbUnit Test Runner Add-On
SQL Prompt for Database Projects (works inside your SQL Management Studio as well)
Ankh SVN 2.0+ for free SVN support (v1.x pales in comparison)
TeamCity plug-in to monitor your builds, personal builds, and bug tracking
I find Ghost Doc to be very useful.
GhostDoc is a free add-in for Visual Studio that automatically generates XML
documentation comments for C#. Either by using existing documentation inherited
from base classes or implemented interfaces, or by deducing comments from
name and type of e.g. methods, properties or parameters.
If you use SVN for source control, definitely get VisualSVN. It enables TortoiseSVN interactions from within the Visual Studio IDE.
I also echo the Resharper comment. Retail price is a little steep, but if you're a student or otherwise educationally affiliated, it's actually pretty cheap.
+1 Visual Assist.
It's unfortunate that you need a plugin to get really good intellisense but it's definitely worth paying for.
LinqPad is great for testing linq to objects/xml/sql. Free download.
What about IncrediBuild? This is a nice distributed build system with visual studio integration.
Clipboard Manager
Maintains your clipboard data through removal of lines, a few other nice items but that one alone makes me happy.
Regionerate
While some have problems with regions I think if you use them, this tool is for you. Automatically region'izes your code into appropriate region blocks. Fully configurable for custom items etc.
VSCommands 2010
from the website:
Latest version supports:
Manage Reference Paths
Prevent accidental Drag & Drop in Solution Explorer
Prevent accidental linked file delete
Apply Fix (automatically fix build errors/warnings)
Open PowerShell
Show Assembly Details
Create Code Contract
Cancel Build when first project fails
Debug Output - custom formatting
Build Output - custom formatting
Search Output - custom formatting
Configure WPF Rendering
Configure Fusion Logs
Configure IE for debugging
Locate Source File
Thumbnails in IDE Navigator
Extended support for xaml, aspx, css, js and html files
Disable Ctrl + Mouse Wheel Zoom
Zoom to Mouse Pointer
Configurability
Attach to local IIS
Copy Full Path
Build Startup Projects
Open Command Prompt
Search Online
Build Statistics
Group linked items
Copy/Paste Reference
Copy/Paste as Link
Collapse Solution
Group items directly from user interface (DependantUpon)
Open In Expression Blend
Locate in Solution
Edit Project File
Edit Solution File
Show All Files
and others, so try it now!
http://trolltech.com/products/qt/">Qt Cross-Platform Application Framework
Qt is a cross-platform application framework for desktop and embedded development. It includes an intuitive API and a rich C++ class library, integrated tools for GUI development and internationalization, and support for Java™ and C++ development
They have a plug-in for Visual Studio that costs a bit of money, but it is worth every penny.
I've been using Visual Assist X for nearly two years now, and I find it so useful I can honestly say that if my employer didn't provide it, I'd have to pay for it myself.
I also use Cool Commands and SlickEdit (the free version), whose File Explorer and Command Spy tools are quite useful.
+1 for Visual Assist
And I will add VLH (Visual Local History) which provides a kind of local source control system. Every time you save a file, the plugin add a copy in the local repository.
ViEmu
vi/vim support inside VS
I found this site called Visual Studio Gallery - it has a lot of visual studio add-ins. I'm browsing it right now and I recommend everyone to visit it.
Consolas font
Free font from MS designed for reading code.
Try MetalScroll!! It's better than Rockscroll
Sonic File Finder for when you have loads of files in your solutions and searching for them in the solution explorer becomes a pain in the wrist.
You might also find DPack interesting. Several tools and enhancements rolled into one neat package.
MZTools is great too.
+1 for CodeRush & Refactor Pro. I've been using CodeRush since its Delphi incarnations, and it's utterly wonderful. The mantra of "Code at the speed of thought" is very close to reality ;)
Microsoft StyleCop provides code style checking for C#, we use it all the time and love it (free)
Axialis IconWorkshop has a Visual Studio add-in which is now free for VS2008 users.
Resharper Yes another vote, because I can't upvote everyone who suggests it :)
Workspace Whiz for C++, I used to live by Workspace Whiz but haven't used it in VS2008 as I hadn't realised there was an update. Will have to give it a try again.
If you're doing C++ coding, hands down Visual Assist.
I love CopySourceAsToHTML as a cool little addin. It's great if you want to copy code blocks for blogging and the like while maintaining your syntax formatting.
I think this is still the url.. you have to do some manual work to set it up with 08.
http://www.jtleigh.com/people/colin/software/CopySourceAsHtml/
For the laptop bound or for those with vi/vim key bindings burned into the brain I would recommend ViEmu.
If you have not tried editing with vi key bindings here is why you may want to try "Why, oh WHY, do those #?#! nutheads use vi?"
AtomineerUtils Pro Documentation - automatic DocXml/Doxygen/JavaDoc/Qt doc-comment generation/updating (similar to GhostDoc, but more powerful & flexible, and supports C#, C++, C++/CLI, C, Java and Visual Basic code).
The style of the generated comments is very configurable, and automatic re-formatting (such as whitespace control and word wrapping) can be optionally applied to keep the comments as readable as possible. It also has many helpers to allow users to read and convert most legacy doc-comments into any of the above formats.
(I'm the author, but I believe the above is an accurate and objective description. This add-in was free when this answer was first added, but to cover the costs of hosting, supporting, and continuing to improve the addin in monthly releases, it is now $10 with a 30-day free trial)
I'm always amazed that more people don't know about/use NDepend - it shows all dependencies at every level of your code, and will even draw pretty box and arrow pictures showing how confused your architecture really is :) Together with TestDriven.Net, I can't imagine working without it any more. Free/cheap.
I am developing an Isolated Shell that caters to "designers/special content creators" performing specific tasks, using the Shell. As they operate on files, they need to be able to use TFS for source control. This is mainly due to the fact that Developers will also operate on the same files from TFS but using Visual studio 2008.
After looking and searching I still could not find Team Explorer to be available to Shell.
Asking on MSDN forums, lead me to the answer that "this is not supported yet in the Isolated Shell". Well, then the whole point of giving away a shell is not justified, if you want to use a source control system for your files. The idea is not to recreate everything and develop tool windows etc using the TFS provider API.
The Visual Studio Extensibility book by Keyven Nayyeri has an example, which only goes so far into this problem of adding a sc provider.
Has anyone worked on developing Visual Studio 2008 Isolated Shell applications/environment? Please provide comments, questions - anything that you have to share apart from the following threads, which I've already participated in.
Threads from MSDN forums:
Team Explorer for Isolated Shell
Is it possible to use Team Explorer in VS Shell Isolated?
Thanks for your answer. Yes you are right, we will acquire CALs for users without having to buy them Visual Studio, that's the direction we will be taking.
But I am yet to figure out how to make Team Explorer available to such users, inside Shell. So I am looking to find out the technical details of how that can be done.
I mean, I have a user, he installs my VS Shell application, he has no VStudio Team system on his machine. Now if I acquire CAL for TFS and install Team Explorer, do you think it will be automatically available in the VS Shell app?
Any ideas? have you worked on making this happen?
Thanks
It sounds like you are trying to allow the "special content creators" save files in TFS Source Control without having to buy them a license to a Visual Studio Team Edition -- correct me if I'm wrong.
If that's the case, unfortunately I believe that you can't quite do that. Your users still need a Client Access License ("CAL") to access TFS.
I think that you can acquire just CALs for your users without having to buy Visual Studio for them (I presume for less than a full blown Visual Studio would cost). At that point, you can just distribute to them the Team Explorer, which is a VS shell with nothing but TFS access components. That is available in your TFS server media.
I found this via Google. You might want to review it to decide your best options:
Visual Studio Team System 2008 Licensing White Paper
The only exception to the CAL rules I'm aware of is access to Work Items. Assuming properly licensed servers, anyone in your organization can create new Work Items or view and update existing ones created by them, using the Work Item Web Access component.
Just stumbled on this question, it might still be relevant to you.
You have the option of including the AnkhSVN (http://ankhsvn.open.collab.net/) packages and load it into your Isolated Shell. While there are some issues around it, with Subversion support, you could use SvnBridge to access TFS repositories. This might bring you a little bit closer to the process you are trying to achieve.