Every developer has his own favorite set of development tools and libraries that he’s come to rely on. Here’s a round-up of some I use or am looking at.
- CodeSmith – Now in version 3 with it’s own IDE this tool lets you write templates that are executed against database structures. The C# ASP.NET style syntax is easy to get to grips with, allowing you to easily generate stored procedures, database scripts, class templates, simple object-relational-mappings, collection classes and the works. Will be less useful when .NET 2.0 arrives with Generics support but until then snap it up. A free version is available.
- NullableTypes – A shortcoming in .NET 1.1 is the lack of null support for value types outside the SQL Server name space. Until this is addressed in .NET 2.0 then check out this open-source library that does a sterling job. (Disclosure, I’ve contributed to this project)
- Subversion – A great source control tool, the replacement for the aging CVS product. Gaining some good support now you can run the server directly or inside Apache. Combine with TortoiseSVN for Explorer shell based integration or AnkhSVN for integration inside the Visual Studio IDE.
- NUnit – Unit testing is a great way to prevent regressions and NUnit is both simple to learn and fast to use.
- VisualStyles – I’ve mentioned this before but .NET’s support for XP themes is abysmal with drawing problems all over the place especially when it comes to tab controls. VisualStyles is a free component you just drop on your form that magically fixes everything.
On my radar
- Trac – Provides wiki, issue tracking and source browsing over the top of a Subversion repository. I installed on my server at the weekend and it looks quite promising although its convoluted installation procedure had far too many dependencies for my liking. Will be testing this on a project I’m working on to see how it goes.
- PageMethods – Previously called SharpURL’s but now free and without an expiration this provides a way of identifying methods into a web page and the parameters they require.
I’m also on the lookout for a replacement for my object-relational CodeSmith templates I knocked up a while back and have been refining since. While they are functional and incredibly fast I’m now wanting features they don’t provide such as database independence, lazy loading and locking patterns.