I get often asked which tools we use in our projects. Therefore, I’m listing all of them here in this post. I’m using the project bbv.Common as an example because you can download the source code and look for yourself how some tools are used.
The main differences in the tool chain between our different projects is due to the source code repository that is used: Subversion, TFS or Git. bbv.Common uses Git and therefore the tools in this list will be the Git tools but you can easily find corresponding tools for svn or TFS.
Coding
- Visual Studio (VS) Premium – Premium because it allows using the integrated FxCop aka Code Analysis
- ReSharper – VS extension for refactoring, navigation and a lot more
- PowerCommands – VS extension providing additional helper functionality like “edit project file” and “copy reference”
- Productivity Power Tools – VS extension providing additional helper functionality like enhanced scroll bar, reference dialog and pinning file tabs
- VSCommands – VS extension providing additional helper functionality like “open command line”, “output highlighting”
- Regex Editor – VS extension for building regular expressions
- NuGet Packaging Manager – VS extension to add references as NuGet packages
Testing (Developer’s side)
- xUnit.NET – unit test framework
- xUnit ReSharper Plug-in – to run unit tests directly in Visual Studio with ReSharper
- NMock2 (code < .Net 3.5) – mocking framework
- Moq (code >= .Net 3.5) – mocking framework that is highly refactoring friendly
- MSpec – BDD framework we use for executable specifications
- MSpec ReSharper Plug-in – to run specifications directly in Visual Studio with ReSharper
- statLight – to run Silverlight xUnit unit tests (note that this is not yet in the official bbv.Common project because of a pending pull request on xUnit)
- FluentAssertions – makes assertions in unit tests and specifications much easier to read
Code Validation
- StyleCop – checks coding style
- StyleCop Plugin for ReSharper – to see StyleCop violations in real-time in Source Code Editor
- CodeAnalysis aka FxCop – checks basic design guidelines
- Agent Smith – spell checking
- dotCover – code coverage
- Clone Detective for Visual Studio – to find code duplication
Documentation
- Sandcastle – generate help files from XML code documentation
- GhostDoc – helps writing code documentation
- yEd – open source diagram editor (mainly used for automatic state machine documentation)
Source Control (Git based projects)
- Git – version control system
- Git Source Control Provider – shows file changes in solution explorer
- GitExtensions – Windows client providing easy access to all Git related tools (Git, PuTTY, …)
- kDiff3 – merge tool providing 3-way merging
Build Automation & Continuous Integration
- NAnt – build automation
- NAntContrib – additional NAnt tasks
- bbv.NUnitProject – additional NAnt tasks
- msbuild – build automation (we use NAnt to call msbuild)
- TeamCity – continuous integration server
Debugging & Performance
- Dbgview – shows logging output in real time
- WinDbg – if you have to debug start-up and hardcore issues
- dotTrace – performance and memory profiling
Deployment
bbv.Common is itself never deployed, but here are the tools we use in other projects
- NSIS
- WiX
System
- Unlocker – removes locks from files so they can be deleted
- NotePad++ – fast editor for a lot of file types
- Paint.NET – for simple image editing
- Virtual Clone Drive – map .iso images
- Filezilla FTP
- CDBurnerXP – to burn CDs (if still necessary)
Information
- Wiki – documentation
- Team mailing list
- Team calendar (meetings, releases, milestones, …)
- Instant messenger