Tools, tips, and techniques for software developers.
I am always on the lookout for new tools to help me become more productive. This list contains the tools that I use on a regular basis. I will periodically update this list so that it stays relevant.
Development
- Dispatch ($14.95) - This is an FTP upload plugin for Visual Studio. If you are building a website in Visual Studio and use FTP to upload the pages, this is a must-have tool. It automatically detects when a file in your project changes and allows you to upload just the changed files.
- Visual Assist X ($149) - Best Visual Studio Plugin EVER. The best feature of this tool is the improved Intellisense. It filters the Intellisense so that you can easily find what you are looking for. The filter basically just finds words that contain the letters that you typed in the order you typed them. So if you are looking for a method called ExportToXml you can type in 'Xml' and only methods that contain Xml will be displayed. Or you could type in 'ETX' (the acronym) and only methods that contain ETX will be displayed. This plugin has many other features as well. If you write code in Visual Studio, you should definitely have this plugin!
- SQL Prompt ($195) - Intellisense for Sql. If you haven't memorized the schema for your database, this is the next best thing. SQL Prompt brings all the things you love about Intellisense for Visual Studio to Query Analyzer and Management Studio.
- Reflector (Free) - Need to know how some code works but don't have access to the source? Reflector can disassemble any .Net assembly back into code (C# or VB). I have used this a lot to learn how the .Net framework and other 3rd party code works.
- The Regulator (Free) - Regular expression evaluation tool. Allows you to quickly build a regular expression. This tool even provides some basic Intellisense and code completion.
- Final Builder ($379 and up) - Visually design your build process. If you are interested in building quality software, an automated build process is essential. However, many of the build tools available (such as MSBuild and NAnt) are extremely complicated and can require a full time build engineer. Final Builder provides a nice visual environment that lets you create your build process using many built-in actions. It's also fairly easy to extend if you have special needs (I was able to create my own extension in a matter of a few hours). Once your build is created, you can schedule it to run on a regular basis (we build nightly). If you are interested in reading more about creating a build process, check out my blog (build posts).
- NUnit (Free) - Unit testing is another critical part of software development. It's nice that Visual Studio 2008 Pro has included unit testing, but it's a bit late for our project. We've been using NUnit for a number of years. It's a great tool and has a lot of support in the community.
- Resource Refactoring Tool (Free) - Creating a software product for an international audience can be challenging. .Net provides a mechanism that allows your product to be modified depending on the culture of the user without having to change the source code. But in order to use this mechanism, you must be sure all of the strings that are displayed to the user are placed in resource files. This tool provides a refactoring menu option to move string literals from your code into resource files. I've only used this tool a little bit, but I'm planning on using it a lot more later in the project I'm working on.
- Snippet Editor (Free) - Visual Studio 2005 introduced the concept of snippets. Snippets are basically xml files that contain code that can be inserted into your code using a menu option or a shortcut replacement. Unfortunately these xml files are not that simple to create. The Snippet Editor provides a way to easily browse the snippets that are availble and modify them or create your own. I have created snippets for standard regions I put in my code, properties, events, etc.
- Crystal Icon Set (Free) - You can't create a great UI without great icons! This set includes over 1500 icons and they all look great. One thing to be careful about, I'm not entirely clear what the licensing model is for it (it looks like they applied the GNU General Public License to it which is intended for software and doesn't make any sense to me when applied to images). So if you want to use this in a commercial project, you might want to get permission from the project team. Another resource for free icon sets (though none really compare to Crystal in scope) is IconBase.com.
Browser/Internet
- RoboForm ($29.95) - Remembers your passwords so you don't have to. I have dozens of accounts spread throughout the Internet and I would never remember all the accounts I have without this tool. It automatically detects when you have entered in login information and asks you if you want to save it. This is better than the built-in login support of Firefox because it can remember all of the fields on the form, not just the username and password. I have purchased licenses for both home and work and use GoodSync (below) to keep them synchronized.
- IE Tab (Free) - Allows you to view IE only content in Firefox. Some content out on the Internet just doesn't seem to work well (or at all) in Firefox (like Netflix Watch Instantly app). The best part of this plugin is that you can easily set it up so that it will just automatically display in IE whenver you go to the site. Once setup, you don't have to think about it again.
- BugMeNot (Free) - It's amazing how many sites want you to create an account just to read an article or something (as if I didn't already have enough information spread across the Internet). BugMeNot is a service that allows people to share accounts. There's even a Firefox plugin that adds a context menu option to automatically login with BugMeNot.
System
- Process Explorer (Free) - This is a major enhancement to the task manager built into Windows XP (though it seems to be vastly improved in Vista).
- UltraMon ($39.95) - If you use multiple monitors, you should be using UltraMon. UltraMon provides a number of features for multiple monitors. My favorites include the ability to drag a maximized window to another monitor, separate task bars for each monitor, saved profiles (I have a laptop that I plugin at home and work), remembers desktop icon positions (because Microsoft seems to always want to move them to a non-existent monitor for me), and desktop wallpaper.
- Slick Run (Free) - Provides a very simple way to launch frequently used applications and commands. If you know the secret, it can replace the Windows Run dialog.
Files
- FileZilla (Free) - This is a full featured free FTP client.
- Unlocker (Free) - I'm sure you've had the problem where you wanted to delete a file but you couldn't because it was being used by another process. Well here comes Unlocker to the rescue! If you try to delete a file that is locked, the Unlocker dialog will prompt you if you want to unlock it or not.
- GoodSync ($19.95) - This is the best synchronization tool I've found. I was in the process of building my own synch tool when I found this. Perhaps someday I will complete my synch tool and make it open source, but until then, GoodSync is as good as it gets.
- Beyond Compare ($30) - One of my favorite things about VSS is the visual diff tool. Beyond Compare is very similar to that tool, but they've added a number of features that make it far better. My favorite feature (and the primary reason I bought this tool) is the Windows Explorer context menu extension that allows me to easily compare files on my file system. This tool also lets you easily merge the files (move a line from one side to the other or even just type in whatever you want). Beyond Compare can be used in VSS and Visual Studio.
- Foxit Reader (Free) - I hate Adobe Acrobat Reader and the way it is always wanted to update itself and runs some kind of service all the time not to mention that it is extremely slow for what it does. Foxit reader is a great replace for Acrobat. It's small and fast and it's never asked if I wanted to update it (I don't mind updating software, but not as frequently or persistently as Acrobat wanted to).
- CutePDF (Free) - If you want to create a PDF document, this is an easy way to do it. It basically installs itself as a printer driver so that anything you can print you can turn into a PDF document.
Misc.
- Notepad2 (Free) - If you work a lot with text documents, you are probably keenly aware of the limitations in Notepad. Notepad2 is a great replacement for it. There are a lot of Notepad replacements out there, but Notepad2 seems to do the best job at staying simple and fast while providing features that are very handy when working with text documents (like line numbers, simple colorization, etc). Although it's not easy, you can even Notepad2 up to completely replace Notepad (anywhere that Notepad would typically open, Notepad2 will open instead).
- Windows Live Writer (Free) - Web browsers are great for a lot of things, but writing lengthy articles is not one of them. Live Writer is a desktop application that is designed for writing blog posts. It supports a number of different blog services such as Blogger and Community Server. In fact, Live Writer was one of my requirements when I was looking for software to run this website.
- Paint.Net (Free) - I'm not much of a graphic artist, but when I need to do image manipulation, I always turn to Paint.Net. Rick Brewster has done an amazing job and I'm excited to see where this project will go.
- PureText (Free) - This tool removes formatting while the text is still on the clipboard.
- ColorCop (Free) - Allows you to easily get the color definition from anything displayed on the screen.
About Brian Brewder
I'm a software engineer in Kirkland, WA. I have been developing with .Net since 2002. My main area of focus has been designing and implementing a UI framework for an ERP system. Before I got into .Net, I developed for several years in a variety of languages and platforms including mostly ASP, though I've also developed applications for both Palm and Pocket PC devices.
I received my degree in Computing and Software System from the University of Washington in 1999. I have also completed a certificate course in Object-Oriented Analysis and Design Using UML, also from the University of Washington, in 2005.