Programming Tools For Developers
What tools do you use in conjunction with your IDE to extend your capabilities? In the previous article in this series, I looked at how important it was to know your IDE. Did you know that you can show and hide the line numbers in Visual Studio? While this option can be toggled, it got me thinking. I realized that it is also good to know the limitations of your IDE. How many other actions are we as developers performing that can be automated or that can be done more efficiently with a tool?
So let me start by saying this; first and foremost remember that you are a programmer. If you need a tool (and it is within your means to do so), instead of buying a tool to do the job just write one yourself. In my previous company we made use of encrypted settings to store the database connections, Web Service URLs etc. If there was a problem on a customer’s site and the application could not seem to establish a connection to the database, I would always go and verify that the settings were correct. Well, those settings are encrypted remember? What I did was write a decryption application. This small app would decrypt the settings, allowing me to verify the values entered.
Can you see the value in this? I can verify the application settings simply by running my decryption application on a thumb drive. (Oh and by the way, it is always a good idea to have portable applications on a thumb drive) Sometimes however, it is better to use a tool that already provides you the functionality you need. Some tools that are worth mentioning and that I regularly use are the following:
My Essential List
I have added a new Toolbar to my Windows 10 task bar with shortcuts to all my programming tools.
I do however have an essential list I just can’t live without.
1. SQL Compare
This is my number one tool when it comes to bringing SQL Databases in line. Redgate SQL Compare makes the process of comparing and scripting changes to a database really very easy and effortless. SQL Compare will generate a merge script for me that works every time. I’ve never had it fail.
2. SQL Data Compare
An equally indispensable tool I use is Redgate SQL Data Compare. This allows me to verify if certain settings and static data tables are the same between two databases. Take for example the body text of an email template. You would not pick up any changes otherwise. SQL Data Compare allows me to quickly see the differences between the data of two tables.
CodeCompare is a brilliant app. It allows me to merge code between specific pages and shows me the difference on either side of the diff. I use a UAT release for one of my projects, and because the code merge is very granular (certain parts of one task but not others), I can’t just branch and merge. Devart Code Compare is the one tool I can count on to give me complete control over exactly the code I need to merge.
Telerik’s Fiddler is essential if you do any web development. It’s free, it’s Fiddler, enough said.
5. CodeSmith Generator Studio
CodeSmith Generator is one of those tools that takes a little bit of time to set up initially. Once you have set it up, you can save hours/days of code. Imagine that you have a specific requirement such as generating a C# object of type [tableName] from a SQL table for example. You can do it manually for every table in your database (as well as for any new tables added) or you can tool it. This is where CodeSmith comes in. Have a look at my review CodeSmith Projects and Visual Studio.
6. Programmer’s Notepad
I know that a lot of you like Notepad++, and that’s cool. In fact, I use it too. I really love Programmer’s Notepad though. It has a lot of the same functionality that the other text editors have, but it feels nicer to me. Programmer’s Notepad is definitely up there with Notepad++, Scite and other great text editors. It’s well worth your time to check it out.
Go Forth and Use the Tools
If you are a single developer or part of a team, the correct use of tools will greatly speed up your productivity. So if you haven’t done so already, start looking to build up your own set of tools. What are some of your favorite tools? Let me know in the comments below.