Last Thursday evening (Feb 5th), SSE sponsored a local developer bootcamp covering VS.NET 2008. We had a great turnout and a lot of great discussion and questions. If you are in the St. Louis area and interested in being invited to these bootcamps please drop me a line at email@example.com.
First, I wanted to thank everyone on my various teams who contributed ideas for the talk. While I did do a lot of research for the event, many developers contributed some good ideas that found there way into the talk. To them I say thanks!
I also gathered some great content for this talk from Sara Ford's "Visual Studio Tips" book. If you want to become much more knowledgeable and efficient with Visual Studio.NET as your developer tool, buying this book is a great way to kick-start the process. I was pleasantly surprised and have recommended it to a number of developers ever since reading it.
While this event centered on VS.NET tricks and optimizations we also spent a lot of time covering various freely available add-ins. Although I'm a big proponent of commercial VS.NET add-ins to increase developer productivity, during this talk I intentionally stayed away from commercial options simply to try to broaden the appeal and demonstrate to developers that you can find some very nice tools out there which are available at no cost.
Finally, per a promise I made at that event, I wanted to take the time to post a link to my presentation as well as links to some of the tools and techniques I demonstrated. If you have any questions on anything posted here (or at least how and why I use specific things), please don't hesitate to drop me a line.
Free VS.NET Add-Ins
The following is a list of URL's to a few of the add-ins I demonstrated at this event. By no means is it an all-encompassing list and I stuck to free tools that I had experience with and use frequently. If you are big into Visual Studio add-ins, you can check out a HUGE list here http://visualstudiogallery.com/. I actually keep a feed from that site in my Google Reader and try to keep up on what is new.
I like this little tool window for what it does and what it does is simply give me a better view of all my projects during the build cycle. Pretty simple but kind of neat and useful. I do have a little issue with the menu option to show it disappearing every now and then.
XAML Power Toys
I do a lot of WPF development and this set of tools has helped out now and then. Unless XAML and WPF is something you do frequently, this might not be that useful.
Source Code Outliner
VERY handy tool that I keep visible whenever I'm in a code editor. It allows me to navigate my files using a handy outline.
If you want to write your own code snippets, this is the tool that will make the process very simple. It provides a full editor that is completely integrated into VS.NET.
This is a Microsoft tool with some great C# source code analysis capabilities.
VS.NET 2008 Power Commands
Although it's hard to say that the VS.NET team "forgot" any functionality since the core development environment is HUGE and it commonly appears that they thought of everything. BUT, if we are open to the possibility that they forgot some handy stuff, then the Power Commands library adds all the missing functionality. This add-in is very common on our teams and includes addition menu commands for tons of common actions. Go to the site and read through all that this includes and you'll see what I mean.
I haven't worked in VS.NET without this tool loaded in a few years. A missing XML comment on a public member will break all my builds (and make for unhappy developers) so we are really big on commenting. This tool streamlines that process and (within reason) writes a lot of our comments for us. Check it out!
Another simple add-in that replaces my standard editor scroll-bare with a thumbnail of the current document and let's me scroll a "window" area over it. On a few of my development environments this tool works flawlessly and on others it's a little flaky. I include it here because I do like it and load it everywhere.
This is another tool similar to the Source Code Outliner above. Same concept with a different implementation and features.
I use CodeProject a lot and have learned countless tricks from browsing projects off that site. This is a VERY nice plug-in that let's me download and organize all of the projects I want from CodeProject directly from within VS.NET.
I will admit that my day-to-day refactoring add-in to VS.NET is ReSharper and the DevExpress people probably hate to hear me say that. BUT, these guys have a VERY nice tool that I was turned on to at PDC. They now offer an express version at no charge and I load it on every developer box for which I don't have a ReSharper license. I'm seriously considering putting more time and effort into evaluating their full product suite based on how happy I am with the Express version.
Other Developer Tools
This is a list of non-Visual Studio.NET tools that my team and I use frequently. Again, it's not intended to be an full list of everything available but instead is simply representative of what we have loaded and the tools we find most valuable in terms of our development environment.
One of many program launcher options out there but my favorite...
This handy tool tracks all my "favorite" links in a nice, "tagged" format. I love this tool and couldn't keep track of my links without it.
Pretty standard source code analysis tool. Most (if not all) teams I work with include this tool in their development process somehow.
Again, not so useful if you aren't doing XAML. But if you are...check out this nice XAML tool.
Similar tool to Kaxaml above but with it's own features (and issues).
The third and final XAML tool in my list. Again, it's similar to the above tools but different. I'd check out all three and decide for yourself which one you like. I have all three loaded.
If you do any work with LINQ or would like to learn LINQ, this is the handiest tool you'll ever find.
I do absolutely no coding in SharpDevelop (as I am too spoiled with VS.NET), but I do have this as part of my standard list of tools to load on every development environment. Why? Because it does a great job of converting between C# and VB.NET (or VB.NET and C#). It'll convert one file at a time or a whole VS.NET solution at a time and does a pretty good job with all the 3.5 features such as LINQ and Lambda expressions. It's not perfect but its better than a long, drawn-out manual conversion like I used to have to do.
Edit XML frequently? This could help if you like the tree-view editing paradigm.
Every .NET person should be intimately familiar with this tool by now.
A great little editor if you don't have PhotoShop or Expression Design.
If you are like me and end up wondering why your computer is slow every now and then, this tool will give you all the gory details of what is going on with currently running processes. It's much more detailed than the standard Task Manager and provides a significant amount of additional functionality.
Another SysInternals project that is becoming the de-facto standard for ZOOMING during presentations...
In addition to the tools described above, these links are to things covered in my talk and should hopefully provide some value.
Scott Hanselman's Ultimate Tools List
While my list of tools above is pretty short and only indicative of what my teams and I use frequently, Scott's list is much more thorough. If you have some time, look over his list and check out a few of the tools. You might find that one (or 10) gem that will save you countless hours of work :)
Visual C# 2008 Keybindings Poster
A presentation on VS.NET tips isn't complete without a lot of discussion on keyboard shortcuts. Microsoft has put together a nice PDF "cheat-sheet" that shows a huge number of common shortcuts. Here is the C# version.
Visual Basic.NET 2008 Keybindings Poster
And here is the VB.NET version.
Debugging into the Base Class Library (BCL) Code
Another thing I demonstrated during the talk was how to configure your IDE to allow you to step directly into Microsoft's code for various BCL types. This link is to a blog posting which I found invaluable in learning how to do that.
Using SoS in VS.NET
The final few links of this post are to a bit more information on using SoS to debug in VS.NET. I gave a demonstration of this and it was probably one of the more advanced topics of the talk but, if you have the need for some low-level debugging then this is your tool. I might do another post sometime soon with some more thoughts on how I use this tool (when needed).