There are a few development tools that I just can’t live without.
A few years ago I was sitting in Glenn Block’s office when I noticed some strange additions to Visual Studio. When I asked him about it he said “That’s ReSharper” and I was hooked. I had to have it.
ReSharper helps me to write better code faster period. This is my #1 must have tool.
This is my most recent addition to the list. I’m a big believer in unit testing and understanding your code coverage is crucial. Yes Visual Studio has unit testing and code coverage but… if you have a large project the cycle of build, test, check code coverage just takes way too long.
With NCrunch I just work away and it builds, tests and analyzes code coverage in the background. Before you know it you have red, green and black dots telling you about the coverage. If a test fails, I see it right away and can fix it even before I built the project or even saved the file!.
I remember the good old days when teams used to fight about things like tabs vs. spaces in code or where to put your curly braces. StyleCop stops all the fighting – it has a set of rules for code style that for the most part I agree with. It analyzes my code and tells me when I’m not complying with the style as I type.
If you put StyleCop together with ReSharper – now you can quickly format your code. Got to have this tool.
Have you ever wanted to email a project to a colleague or upload it to some website only to find that with all the bin / obj / ReSharper / etc. folder full of stuff that the zip file was huge? Or maybe you open a project from a website or a friend and Visual Studio informs you that the project was under source control and the server is not available.
I created CleanProject as a tool to remove crap that I don’t care about from the zip file and to remove source control bindings. Seems that several thousand of you agree that CleanProject is pretty useful.
Yes, I work at Microsoft and yes I have access to all the .NET Framework source (you do too by the way) but often I find that it is faster and easier for me to analyze what some piece of the .NET framework is doing by simply going to .NET Reflector. They recently release a great extension for Visual Studio 2012 which makes it even better. I can’t tell you how many times where understanding the underlying class has helped me to solve a difficult bug.
I would recommend ILSpy (http://www.ilspy.net) over .NET Reflector since it is no longer free. In addition to ILSpy there are also several other free alternatives.
JustDecompile is my decompiler of choice, now. Its always getting updated, and works pretty well. I can't see myself paying for Reflector after I believed redgate when it said it wouldn't remove the free version. Oh, by the way, f*k redgate.
Ron - how do you get NCrunch to work with unit tested workflows? It's not deploying the workflows that are configured in the test settings file.
@Mike - I typically use the [DeploymentItem] to deploy things I need. In fact I never use the deployment section in the test settings file. It could be that NCrunch is not using settings. You could post a message in the NCrunch forum to see.
@Ron - the way I ended up getting it to work, since we use the settings file currently, is to add the files I needed to the "Additional files to include" configuration property in NCrunch. However, your statement gets me thinking. Right now we're using the [DeploymentItem] attribute and adding them to the settings file. The path in the [DeploymentItem] attribute we're using is a relative path starting in the solution directory.
Do we not need to use the settings file to successfully unit test the workflows? Based on the forum posts I've found NCrunch requires a fully qualified path (as opposed to relative) in the [DeploymentItem] attribute - are you finding the same thing?
I look forward to your response!
I actually posted a message about how I use [DeploymentItem] on the NCrunch forum forum.ncrunch.net/yaf_postst464_DeploymentItem-with-Environment-Variable-not-working.aspx
@Ron - when I see this post (especially the workaround) I just have to say AWESOME (while laughing painfully) - LOL! Thanks Ron!
Also VSCommands (visualstudiogallery.msdn.microsoft.com/a83505c6-77b3-44a6-b53b-73d77cba84c8),
small and very useful extension!
@Michael - Interesting... VSCommands looks pretty cool - it even has CleanProject like functionality except that it doesn't remove source bindings as far as I can tell.
I have used both Resharper and CodeRush. I have to say CodeRush is waaaaaaaaay better. Clean interface, useful refactoring, etc. There are some areas which Resharper is better but overall Coderush has too many features which makes it superior.
Not sure about source bindings and clean project, but they are quick in adding new features when requested so you may want to email them.
@Alireza - Never tried CodeRush - heard several debates between fans of both though. It's great to have some options.