From:
Hello Ed,
I would like to suggest that it's a pity (of course, it's my personal opinion) that the strategy to separate add-ins and packages still continues in Whidbey. This strategy undoubtedly
So what am I talking about? According to the VSIP docs and, if I understand correctly, to the official policy of Microsoft, add-ins can only use a very restricted set of interfaces which don't allow to do even the very basic things like colorizing text in the code editor and listing changes in a document. If you want something else, please write a package. But as I noted before, it's often much more natural to have an add-in that does e.g. advanced text coloring. So add-in authors should resort to the trick with casting EnvDTE to IServiceProvider that is not officially documented (and obviously not all of them are aware of this trick). It would be nice if in Whidbey there would be an officially supported way for an add-in to get access to VSIP functionality. Developers could then make
It would be interesting to know what others think of it.
Thanks in advance.
Regards
From: Ed Dore [MSFT]
Hi IVSU,
I agree that the line has blurred a bit between add
Macros and Addin's are certainly technologies that are easier to grasp, and
Bob read this and added: One thing I'd suggest is to consider the opposite approach: Why not make packages easier and leave add-ins to the stuff they're good at?
The policy of add
Jim: Actually we did write a topic on how to access VSIP interfaces from an add-in. In the Beta 2 release search for the topic called Walkthrough: Calling into the Environment SDK from Automation.
I believe there are plans for a better topic describing when to use macros, automation, addins, and packages. But I haven't actually been able to locate it as of yet. I'll send a bug up to doc team just to make sure that happens. The following page off the Extensibility site though may be a help in the interim: http://msdn.microsoft.com/vstudio/extend/vseoverview/.
It's important to point out that the add-in model was never designed to allow developers to customize or create editors, or implement other advanced features like language services, custom projects, or source code control integration for example. Advanced features such as these, are the pervue of the VS SDK.
Colorization for example, is one such feature that is pretty advanced. Colorization is actually provided by the individual language services, as it's the language service that knows how to parse the source file(s), and identify the various tokens for a given language. This scanning and parsing typically needs to take into account such things as import chasing, and build options as well (to mark undefined code in a #ifdef block of C++ for example). This in turn requires the language services to be very dependent upon the language's project system as well.
In all honesty, I wouldn't advise attempting to modify an existing language service's colorization support, unless said language service actually provided the hooks for you to do so. To date, none of the language services shipping in VS actually do this, nor are they designed as reusable components in and of themselves. The only supported way to go about modifying colorization today, is to implement a new language service, which is obviously not a trivial undertaking.
Given the number of threads we see on this particular topic, it's
Developers should make the choice of whether to use an add-in or package
Jim: And unlike add-ins, packages provide some security with a load key access system.
IVSU, we definitely appreciate the feedback. on this, and I have fowarded your comments on to the program management staff. We've also logged a few bugs against the documentation to make sure some of these items are better addressed.
Sincerely,
Ed Dore [MSFT]
Jim: Ed is our friendly VS SDK Customer Support rep. :o)
From: Jason Weber To: Jamie Cansdale Date: Dec 1, 2005 11:05 PM Subject: TestDriven.Net VSIP Package
PingBack from http://www.keyongtech.com/2406031-vs-2003-devenv-exe-setup/2
PingBack from http://quickdietsite.info/story.php?id=2020
PingBack from http://topalternativedating.info/story.php?id=10020
PingBack from http://thebasketballhoop.info/story.php?id=2030