Visual Studio: Equivalent of Eclipse's variable movement? - visual-studio

Developing Java with Eclipse, it's easy to move variables from one class to another, and have the references be updated. (So if you move size from being a class variable to a class named Constants, every reference to size in the original class will be replaced by Constants.size automatically.)
Is there a way to do this in C# XNA Visual Studio 2010?

The Devexpress RefactorPro! plugin has similar refactorings (though not I don't think that exact one). I think they're even all available in the free version. If you want a specific one that's not available though you can check the free DxCore plugins page or develop one yourself. It's not all that hard.
All the links are on the DxCore community plugins page.
Oh but, to answer your question very specifically no, I have never heard of that exact refactoring being available anywhere - it's not generally seen as CSharp-y.

Move variable is not one of the refactoring operations that is supported by C# out of the box in Visual Studio 2010 (or 2008 / 2005 for that matter). In order to get that kind of operation you will need to use a 3rd party plugin such as Resharper or DevExpress`s RefactorPro.

Related

Querying Language service in Visual Studio Editor Extension to get Assembly, class and method info

I want to write an Editor extension for Visual Studio 2010.
In my extension I want to get information about the Class, method which is at the current caret position.
For example, if I am in an Event Handler and I have some code that shows a MessageBox using MessageBox.show(…) and the caret is at .Show,
I want to query VS Services to get a response which tell me that I the caret is at Show method of MessageBox class which is in System.Windows.Froms.dll version 4.0.40319 etc.
Is it possible?
There is no way to do this with the current APIs in Visual Studio 2010. This is why we're building the Roslyn APIs so you could. When you install the CTP, we setup a Roslyn instance that replaces the standard language services with the Roslyn ones, and you can ask your question directly to it.
If you don't want to be dependent upon running in the Roslyn instance (which I assume is the case), then it gets a bit trickier. You can invoke the parsers to understand you're on a call named MessageBox.Show, but to get the semantics you'd have build up a Compilation making sure you get all the project references and source files right. That's a far trickier proposition, so depending on your scenario you might want to "cheat" as much as possible.
Disclosure: I'm on the Roslyn team.

Should a new Visual Studio-Based Application be based on 2008 or 2010?

I am thinking of creating a product based on the Visual Studio Shell (primarily isolated mode). Since Visual Studio 2010 will most likely be RTM before my product, does it make sense to start with VS2010 as a base rather than VS2008?
Has anyone looked at what they changed in connection to the shell framework and if it is improved enough to warrant using it over the better documented and not-beta 2008?
The editor extensability model is changed radically since it is based off MEF and WPF in 2010. If you extend the editor on 2008, it is likely you will have to make quite a few changes to get stuff working in 2010.
However, a large amount of the extensability still depends on the old VSIP/COM which remain unchanged.
If you plan on shipping with the 2010 time frame I think skipping 2008 is not a bad idea.
Speaking as one who is working on a product based on VS2008 shell I would strongly suggest to use VS2010 instead as base. They have cleaned up their interface and probably fixed a lot of the bugs that are in the VS2008 shell. I think they would also be more sensitive to bugs than when they happen in the "old" VSShell.
This is really not a technical question, in my mind - you need to think about your customers before yourself - is there a large enough crowd of people who use vs08?
(I encountered a similar question and concluded that for my scenario - I need to support VS08)

Do I need to buy Visual Studio Professional?

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.

VS2010 Extensibility - how different is it?

A question to those of you who already looked at VS2010. How big are the changes that add-in developers will have to make in order to get their add-ins working under VS2010?
As luck would have it I've just written about this exact subject and shown what it took to upgrade my add-in. (links below)
Basically your answer is that there is a low-impact migration, because a back-wards compatible "shim" is in place for most functionality. Understandably though, to get the new stuff in 2010 like MAF, MEF, and WPF there will be some work on the developers part.
http://jb-brown.blogspot.com/2008/11/migrating-visual-studio-add-in-to-2010.html
http://jb-brown.blogspot.com/2008/11/migrating-visual-studio-add-in-to-2010_29.html
(more to come)
Lastly - Be sure to read this outstanding post from Carlos Quintero, MVP about Add-Ins, Frameworks and CLR compatibility. Carlos's blog is the best I've found for add-in stuff.
We've already migrated a development version of our Visual Lint product to VS2010, and for the most part the migration was straightforward - or would have been if there weren't so many bugs in the Visual Studio 2010 Beta 1 automation model. The experience has been akin to the work we had to do to support VS2005 (by contrast VS2008 was a breeze), so it's obvious that VS2010 represents a major change in the evolution of Visual Studio.
As we're using the same binary for all versions of Visual Studio we support (which means the code is contstained to be native C++ throughout), breaking changes in the interfaces tend to be quite visible to us. This time, the areas which have caused us issues are:
The new .vcxproj project file format (we parse project files to read project properties as that's more reliable across multiple Visual Studio versions than using VCProjectEngine - the Visual C++ automation model). Hence we had to write a new parser for .vcxproj files, and as they are potentially very complex that was a major task in itself.
Various bugs in the command bar/command interfaces (presumably related to the new WPF editor/command bar integration). Carlos Quintero has blogged extensively about this subject, so if you have concerns in this area you would be well advised to read his blog.
An undocumented change to the add-in startup sequence in Beta 1 which meant that the DTE Window interfaces were not functional until the OnStartupComplete event had occured. MS have informed us that they are reversing this particular change in Beta 2 due to potential compatibility issues, but we've desensitised our code to this one now, anyway.
Toolwindows in Beta 1 can't be created by internal CLSID (though ProgID works OK). This is the last one we're waiting on before we can wrap up the last major bit of the port.
I suspect that our experience will be pretty representative for most add-ins - it is only if you are using the areas affected directly by major changes in Visual Studio itself (e.g. editor or intellisense integration) that the effects are likely to be particularly severe.
Finally, we're not planning to migrate the build itself to VS2010; it is currently built in VS2008, and we quite simply can't see any reason to migrate to an IDE which is showing every sign of still being a "work in progress" even when it RTMs later this year (that's just my personal opinion though - YMMV).

Recommended add-ons/plugins for Microsoft Visual Studio [closed]

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.

Resources