Monday, May 9, 2011

“A developer is only as good as his tools”

In this post I’d like to share some tools with you, that I think may be of use for any developer.

You may have come across the expression that is the title of this post. Some think this is not true and others swear by it. I’m sort of a middle of the road kind of guy when it comes to tools, as I do think that a tool is only useful when used effectively. However, our lives would be a lot harder without proper tools for development. For example, development becomes a lot easier with a highly tuned IDE like Visual Studio 2010, instead of typing code in notepad and compiling it directly with msbuild.exe.

As it turns out, I’m migrating to a new laptop for my work, so it seems like a good time to write about some of the tools I install on my new laptop.

As people tend to get very emotional on this subject:

DISCLAIMERS: This post is by no means sponsored in any way, except for the Google ads already in place. Also, most of these tools are NOT specific for developers. Some are useful for most PC users, some are useful for IT people and some are developer specific. This post is also by no means exhaustive. Finally, I will not talk about the obvious things, like Visual Studio, SQL Server, a Virus Scanner, etc..

LiberKey

One of the very first things I always install on a PC I use is LiberKey. This is a free tool to manage your tools. It comes with a massive (at the moment of writing this) 309 applications in 10 main categories, ranging from office tools to system utilities and anything in between. Applications like Notepad++, Paint.NET and HxD are all included.

The cool thing about LiberKey is that you don’t have to actually install anything to your hard disk. All the software just works, whenever you have LiberKey active, including full OS integration things, like explorer integration. It also deals with keeping all these applications up to date and new tools are added often.

Check it out at www.liberkey.com.

NuGet

If you haven’t heard about NuGet, you should check it out. This is basically an extension for Visual Studio 2010, that allows you to search for open source libraries and then immediately install them and add them to your Visual Studio projects.

What makes this so useful, is that you no longer have to and find a download source for these libraries, find out how to install them and then add them to your projects. You need a framework for dependency injection? Right-click your project file and click “Add Library Package Reference…”, type dependency injection in the search box and it will come up with open source libraries for that. Choose one, click install and you’re ready to go.

Check it out at nuget.codeplex.com.

Fiddler

If you’re going to do some work involving HTTP, this tool rocks. It allows you to follow HTTP and HTTPS traffic as long as the client runs on your machine. You can inspect messages going back and forward, look at time lines and even create your own messages.

Check it out at www.fiddler2.com.

XMind

I’m a fan of mind mapping. I use the technique for organizing my thoughts when working on complex problems and also for certain types of meetings to make notes. XMind is a great tool for making digital mind maps. I has great keyboard support, which makes me very productive without distracting from the though process.

Check it out at www.xmind.net.

smtp4dev

As a developer I frequently need to write some code which sends out emails. As you may be aware, testing code like that against an actual SMTP server in production is a hazardous operation. Not only that, it also tends to clutter your inbox with test emails. In some environments it can actually present security issues as well, where virus scanners block unknown processes which send emails, in order to prevent malware attacks.

To actually have a way of testing code that sends emails, I use this great open source tool, called smtp4dev. It runs like an actual application, but it also functions as an SMTP server on your machine. It has a UI that allows you to easily configure and manage it. The UI also allows you to inspect any emails received by it’s SMTP server. Further more, it doesn’t relay any emails, so you can’t accidentally send out emails.

Check it out at smtp4dev.codeplex.com.

The Regulator and Regulazy

Two great tools (by the same developer) for people who need to do work with regular expressions. Regulazy allows you to quickly create a regular expression from a piece of text through a UI. Although it is limited in what you can do, it does usually provide you with a good basis to extend on.

The Regulator is a more comprehensive tool, which allows for better analysis and testing of regular expressions.

Check both of the out at osherove.com/tools/.

LinqPad

If you work on a project that uses Linq and/or Entity Framework, LinqPad is the tool for you. This tool allows you to run Linq queries against your own Entity Framework model on the fly. This makes it a great tool for testing Linq queries, without actually having to compile and run your application every time. For the TDD evangelists out there who will tell you, you should never have to run your application to test such a thing, not having to compile can be a great advantage as well.

Check it out at www.linqpad.net.

Conclusion

Those are just some of the tools I use. Do you have any other tools you think people should at least know about? Leave a comment.