|
bertvan wrote: I might indeed write an article on it, but I'd like to finish the code a bit further and then explain everything in depth.
Developing Visual Studio Add-ins are still a bit exotic terrain for me, so I'd like to know a bit more on the subject before I'll write an article on them.
Cool. I'll look forward to the article!
There's quite a lot of info on add-in design on the web (I can particularly recommend the Craig Skibo books on the subject) but there are also a lot of pit-traps for the unwary if you use the less common language specific interfaces (I have had regularly seen VCProjectEngineLibrary interfaces break with new Visual Studio versions, for example). If there is any particular topic about add-in development you need assistance with, please feel free to privmail me and I'll do what I can to assist.
bertvan wrote: About the "MS is doing it wrong": I don't think that Code Analysis is wrong. It is very practical to allow an extra check on bad practices etc.. But it comes at a cost. It might be better running Code Analysis on the build server only, but that might cause a lot of broken builds.
I have an outline for a conference session in my mind at the moment titled "Effective Code Analysis", and you;ve just touched onto one of the points I'm going to make. OIn brief: putting code analysis on the build server only generally doesn't work very well, because it's remote from the changes devs are working on at the time. That's why it also needs to be in the development environment (far more immediate) so the question is how to do this effectively. By contrast, build server code analysis is more of a sanity check on how the project as a whole is holding up wrt code quality (code metrics run well in this context, too).
A few years ago I was experimenting with this using PC-Lint (a C++ source code analysis tool) and had the idea of running the analysis in the background (pretty easy if you use a thread pool). It worked so well my partner and I built a product out of it (another long story!) but the upshot is that we've gained a lot of experience with how to use CA techniques on our own codebase over the past 5 years.
The workflow we use isn't actualy that different to that you suggest - the difference being that we don't run the analysis while compiling - instead it happens automatically in the background while we're editing code (hence the builds don't take any longer, and the CA tasks run in the background while editing).
That's my experience anyway - and it's certainly an interesting and challenging area to work in.
|
|
|
|
|
This is a very useful add-in! I'm downloading it right now and will report on how well it works!
Great idea!
Éric
|
|
|
|
|
Thanks, feel free to post your issues on the google-code page. And please let me know how it works out.
|
|
|
|
|
... would be useful. This would be my choice anyway
|
|
|
|
|
Yup, exactly what I was thinking.
"Creating your own blog is about as easy as creating your own urine, and you're about as likely to find someone else interested in it." -- Lore Sjöberg
|
|
|
|
|
|
Same
|
|
|
|
|
|
Same goes for me, voted "Other" and typed in "none".
2+2=5 for very large amounts of 2
(always loved that one hehe!)
|
|
|
|
|
same here
|
|
|
|
|
I just answered - other: 'None'. It should be an option in order to count it correctly. I am curious about how many do not use any.
Pierre Boucher
'Bien souvent on se rend coupable en négligeant d'agir, et non pas seulement en agissant.'
- Marc Aurèle, empereur et philosophe romain.
|
|
|
|
|
Whereabouts in Canada?
My grandfather (Jacque Boucher) was from the Moncton area (he left there in the 1920s I believe) and my father is still in touch with his cousins in Montreal.
John Boucher
|
|
|
|
|
Hi,
I am from Montréal as my father was. I do not know before that.
I found this information about one of the first Boucher (Pierre) in the new world http://en.wikipedia.org/wiki/Pierre_Boucher[^]
Where are you from?
Pierre Boucher
'Bien souvent on se rend coupable en négligeant d'agir, et non pas seulement en agissant.'
- Marc Aurèle, empereur et philosophe romain.
|
|
|
|
|
My grandfather moved to Boston, MA where he got married, raised a family, and lived out his days.
Most of my immediate family is still in the Boston area, but others (including me) have spread out a bit.
I'm near Phoenix, AZ.
|
|
|
|
|
Well, it's nice to know that our name has spread that far west.
Do you have any relatives that still speak french?
Pierre Boucher
'Bien souvent on se rend coupable en négligeant d'agir, et non pas seulement en agissant.'
- Marc Aurèle, empereur et philosophe romain.
|
|
|
|
|
pboucher wrote: Do you have any relatives that still speak french?
Some do, particularly the ones still in Canada. I don't.
|
|
|
|
|
I use 'None' also. I have found that the interface to 'None' is impressive and very easy to use. 'None' has never crashed on me or destroyed my code. 'None' has never been broken on an uprgade, nor has it caused my code to become unreadable. I actually searched each of the Poll options and read through the highlights for each and still believe that 'None' bets them all hands down. I love 'None' and will stick with it for now.
|
|
|
|
|
|
I am amazed at just how many programmers can't type and don't bother the learn the API. If more did then I think more would share your sentiment. IMHO when you spend time typing instead of clicking you get to understand how the pieces of an application fit together and enjoy the chance to write significantly better code.
|
|
|
|
|
Whoever comes up with these polls leaves out some blindingly obvious options.
Cheers,
Vikram. Current activities:
Films: Sense and Sensibility
TV series: Friends, season 2
Books: Longitude, by Dava Sobel. Carpe Diem.
|
|
|
|
|
|
Hi there
do you know about a review and/or comparation between those tools??
|
|
|
|
|
As they all do different things, a side by side review might not be as helpful as you expect. That said, the benefits of otherwise of different add-ins are regularly discussed on StackOverflow[^].
Personally the ones I use the most are Visual Assist[^] (syntax colouring, better intellisense and fast source code navigation), IncludeManager[^] (C++ include file visualisation), VSFileFinder[^] (fast location of files within a solution) and Visual Lint[^] (C++ static analysis).
Visual Lint is my pet product, so that's a bit of a special case of course!
|
|
|
|
|