I posted a question early yesterday and got some really good responses back that got me thinking. I agree with everyone that using tools to get the job done and be more efficient is the right choice. So now, what do you feel is the set of tools (or a set of tools or a single tool) that you as a .NET developer ought to have/use?
What do you use and what makes that/those tool(s) so great?
I'd like to hear from any "level" of developer, whether you be Senior or Junior or Mid, whether you use Mocking, CI, TDD, whatever! I would like to know your tools! :)
views:
511answers:
13My favorite tools:
Visual studio 2008 Pro for coding
Resharper to make VS usable
XUnit.Net or NUnit for testing my units.
Rhino mocks for mocking
Castle Windsor, I've just started using this as an IoC container and I'm hooked.
Programmers Notepad for textediting
NLog for logging.
Reflector
TortoiseSVN and VisualSVN for source control
Cruisecontrol.Net (looking at Teamcity) on my buildserver
Here's a rough list of what I've worked with over the years:
Resharper makes some refactoring much easier and noticeable, e.g. changing around some basic logic or renaming classes.
CruiseControl.Net makes continuous integration pretty simple and automated so that if a check-in breaks the build this can be picked up.
Version control, either Subversion or SourceSafe, is another tool that can be helpful in managing the history of a site or its pieces.
nAnt can make some build scripts to handle deployment tasks that some developers may be handed.
Internet Information Servies is a common Web Server software in ASP.Net configurations to get to know.
SQL Server Management Studio can be quite useful in managing an MS-SQL Server installation and with the Express version one can run some of the basic functionality locally to get things working before moving on to regular environments like testing and production.
nUnit for unit testing.
Non-software tools that I think are worth mentioning would include:
- Design Patterns
- Unit Testing
- Refactoring
- Continuous Integration
- Automated build / deployment
- Software development methodology, e.g. Agile or Waterfall
Off of the top of my head, some of the things that we use / are in the process of adopting:
- Sandcastle - XML Documentation compilation
- Sandcastle Help File Builder - GUI for documentation properties, allows for editing topic pages (Alpha version for 1.8 is very impressive. 1.7 is great, but 1.8 is miles beyond and very stable.)
- GhostDoc - XML Documentation inheritance and templating
- autofac - Dependency injection
- moq - Mocking library
- Codeplex.Diagnostics - Provider based logging and exception handling framework
- Automatic Class TesterAlmost-automatic property and constructor testing in unit tests.
You will notice that there is a lot of open source in what we use. There are plenty of good tools out there, and as opposed to marrying ourselves to a single larger toolkit, we have found better flexibility and improved tooling by picking and choosing what we want to implement. The nice thing about choosing a lot of the open source projects is that it is quite easy to extend them or modify them to fit your needs.
Some utilities which help with development:
Powergrep (advanced search and replace)
Beyond Compare (compare tool)
Reflector (compiled, source code browsing)
The tag web-development warrants the answer "Firebug" no matter the language
I strongly recommend JetBrains DotTrace, TestDriven.Net and NUnit
GhostDoc +1 as well
Apart the programs mentioned, i like:
ilmerge
smartassembly
zetaresourceeditor
Some addins for Visual Studio:
regionerate
Wow, thank you all who have answered so far! Quite a number of tools that do all sorts of stuff! A lot of people seem to like Resharper. Those who do use it, have your tried CodeRush? What did you like/dislike about the other and why did you chose the one you did?
I use all of the above, but also:
Web developer toolbar for Firefox (great for alignment work - the ruler and line guide tools are a godsend).
I want to get the ASP.NET web developer toolbar.
Fiddler.
- Firebug / IE8 (beta) / IE7 with Debug Bar- Great for client side debugging and Css editing. Get the YSlow plugin for Firebug. IETabs for FF is nice for quick display checking.
- Fiddler2 for monitoring what Firebug can't (the net panel is sometimes not descriptive enough
- Paint.NET for graphics. Gimp if you want more control.
- jslint.com - It will hate on you, but makes you aware of things Visual Studio doesn't give a crap about.
- FxCop - It will also hate on you, but makes you aware of things Visual Studio misses.
- Refactor! for VB.NET. c# already has this built in.
- Ctrl K+D in the VS Markup editor will format your document.
- UltraEdit - very handy general purpose editor.
Most of the above is excellent advise. On top of that I use the open-source SixPack library (disclosure: I am also the maintainer) that I really find a great time saver.