Development Tools

I’m setting up a new development environment, and I thought I’d share the list of tools and technologies I’m putting into place there. Please add any you’d recommend in the comments. Everything here is free except the OS, SmartSVN, and RedGate SQL Source Control.

Operating System: Windows Server 2008 R2 x64 ($$)
Application Server: IIS 7 with .Net 4.0
Database Server: SQL Server 2008 Developer Edition R2 x64 ($35)
(yes, that’s right - Microsoft has a fully-featured version of SQL server for development that is dirt cheap)

Installation Tools used:

  • Web Platform Installer - tool to help install IIS, .Net, MVC, and other components
  • NuPack - helps to add extra assemblies / web.config merges, etc. for third party DLLs for your project

Testing / Debugging / Logging:

  • NUnit - allows you to create and run unit tests
  • Chrome + web developer toolbar
  • Safari - already has developer menu - Edit - Preferences - Advanced - Show Develop Menu
  • IE was already installed, and it comes with a developer toolbar - hit F12
  • Firefox + web developer toolbar + add-ons:

  • Firebug - great tool for seeing details on what’s going on between your browser and the server

  • YSlow - tool from Yahoo that analyzes page load times and gives tips on how to speed it up
  • PageSpeed - similar to YSlow, but made by Google* Fiddler - traces HTTP traffic so that you can see details of exactly what happened on the wire
  • ELMAH - fantastic error logging framework
  • Moq - Mocking framework, which allows you to test without having all dependencies alive and working (i.e., you can test something that needs an HTTPContext without actually having a real HTTPContext)
  • Reflector - allows you to disassemble .Net DLLs and see what’s going on under the covers. The Pro version ($95) allows you to debug .Net DLLs, even if you don’t have the source code. Wow.
    Development Specfic

  • Visual Web Developer 2010 Express

  • MVC 2 - allows (and strongly encourages you) to separate visual design from data access and business logic, which significantly aids testability
  • MVC 2 Route Debugger - helps you fix broken MVC 2 routes
  • T4MVC - T4 template for MVC that allows you to use strongly typed names to refer to controllers, actions, and views
  • Ninject - Dependency Injection / Inversion of Control framework (compatible with MVC 2)
    Data Access

  • LINQ to EF4/Entity Framework 4 (or L2E) - installed as a part of .Net

  • LINQPad - helps you create and test LINQ queries
    UI Controls / Javascript

  • jQuery - makes javascript fun again (and very powerful)

  • jQuery Validation - validation tools that run on top of jQuery
  • Telerik MVC Extensions - Great MVC controls, such as Calendar, drop-down, grid, etc.
    Versioning

  • WinMerge - free tool to diff and merge files and directories

  • VisualSVN - SVN Server that runs on Windows and is simple to install (Apache and SVN are installed behind the scenes)
  • SmartSVN ($79) - SVN client
  • RedGate SQL Source Control ($295) - an SVN client for a SQL database. You can version your database objects in an SVN server using this tool.
  • TeamCity - Continuous Integration server. This automatically grabs your code from your SVN server at the schedule you specify, compiles it, runs your NUnit tests on it, and saves/emails the results.
    Other handy tools:

  • SearchMyFiles - Windows search never really seems to work. When you want to search a whole folder of files for a chunk of text, this is the tool for the job.

  • Notepad++ - when you want to edit something, you need something better than notepad, but you don’t really want to load up Visual Studio
    Please let me know if I’m missing out on some great tool, and please check these out - there is a wealth of tools out there that can make your life easier and your code better.