I got pretty excited a couple of days ago when my new laptop arrived.
“The new phone books are here! The new phone books are here! I’m a somebody!”
- Steve Martin in The Jerk
It is a Dell Precision M4500 with an Intel i7 Core 2.8 GHZ running 64-bit Windows 7 with a 15.6” widescreen, 8 GB RAM, 256 GB SSD. For some of you high fliers, this may be nothing to write home about, but compared to the 32–bit Windows XP laptop with 2 GB of RAM and a regular hard disk that I’m coming from, it’s a really nice step forward. I won’t even bore you with the details of the desktop PC I was first given when I started here 5 1/2 years ago. Let’s just say that things have improved. One really nice thing is that while we are definitely running a lean and mean department in terms of staffing, my boss believes in supporting that lean staff with good tools in order to stay lean instead of having to spend even more money on additional employees. Of course, that only goes so far, and at some point you have to add more people in order to get more work done, which is why we are bringing on-board a new employee and a new contract developer next week. But that’s a different story for a different time.
But the main topic for this post is to highlight the variety of tools that I use in my job and that you might find useful, too. This is easy to do right now because the process of building up my new laptop from scratch has forced me to assemble a list of software that had to be installed and configured. Keep in mind as you look through this list that I play many roles in our company. My official title is Software Engineering Manager, but in addition to managing the team, I am also an active ASP.NET and SQL developer, the Database Administrator, and 50% of the SAN Administrator team. So, without further ado, here are the tools and some comments about why I use them:
|Virtual Clone Drive||Easily mount an ISO image as a DVD Drive. This is particularly handy when you are downloading disk images from Microsoft for your tools.|
|SQL Server 2008 R2 Developer Edition||We are migrating all of our active systems to SQL 2008 R2. Developer Edition has all the features of Enterprise Edition, but intended for development use.|
|SQL Server 2005 Developer Edition (BIDS ONLY)||The migration to SSRS 2008 R2 is just getting started, and in the meantime, maintenance work still has to be done on the reports on our SQL 2005 server. For some reason, you can’t use BIDS from 2008 to write reports for a 2005 server. There is some different format and when you open 2005 reports in 2008 BIDS, it forces you to upgrade, and they can no longer be uploaded to a 2005 server. Hopefully Microsoft will fix this soon in some manner similar to Visual Studio now allows you to pick which version of the .NET Framework you are coding against.|
|Visual Studio 2010 Premium||All of our application development is in ASP.NET, and we might as well use the tool designed for it. I’ve used a version of Visual Studio going all the way back to VB 6.0 and Visual Interdev.|
|Vault Professional Client||Several years ago we replaced Visual Source Safe with SourceGear Vault (then Fortress, and now Vault Pro), and I love it. It is very reliable with low overhead - perfect for a small to medium size development team. And being a small ISV, their support is exceptional.|
|Red-Gate Developer Bundle with the SQL Source Control update for Vault||I first used, and fell in love with, SQL Prompt shortly before Red-Gate bought it, and then Red-Gate’s first release made me love it even more. SQL Refactor (which has since been rolled into the latest version of SQL Prompt) has saved me many hours and migraine’s trying to understand somebody else’s code when their indenting was nonexistant, or worse, irrational. SQL Compare has been awesome for troubleshooting potential schema issues between different instances of system databases. SQL Data Compare helped us identify the cause behind a bug which appeared in PROD but could not be reproduced in a nearly (but not quite exactly) identical copy in UAT. And the newest tool we are embracing: SQL Source Control. I blogged about it here (and here, and here) last December. This is really going to help us keep each developer’s copy of the database in sync with one another.|
|Funduc Search & Replace||Find any string anywhere in a mound of source code really, really fast. Does RegEx searches, if you understand that foreign language. Has really helped with some refactoring work to pinpoint, for example, everywhere a particular stored procedure is referenced, whether in .NET code or other SQL procedures (which we have in script files). Provides in-context preview of the search results. Fantastic tool, and a bargain price.|
|SciTE||SciTE is a Scintilla based Text Editor and it is a fantastic, light-weight tool for quickly reviewing (or writing) program code, SQL scripts, and extract files. It has language-specific syntax highlighting. I used it to write several batch and CMD programs a year ago, and to examine data extract files for exchanging information with other systems. Extremely handy are the options to View End of Line and View Whitespace. Ever receive a file that is supposed to use CRLF as an end-of-line marker, but really only has CRs? SciTE will quickly make that visible.|
|Infragistics Controls||We do a lot of ASP.NET development, and frequently use the WebGrid, WebTab, and date picker controls. We will likely be implementing the Hierarchical Data Grid soon. Infragistics has control suites for WebForms, WinForms, Silverlight, and coming soon MVC/JQuery.|
|WinZip - WITH Command-Line add-in||The classic compression program with a great command-line interface that allows me to build those CMD (and soon PowerShell) programs for automated compression jobs. Our versioned Build packages are zip files.|
|XML Notepad||Haven’t used this a lot myself, but one of my team really likes it for examining large XML files.|
|LINQPad||Again, haven’t used this one a lot, but it was recommended to me for learning and practicing my LINQ skills which will come in handy as we implement Entity Framework.|
|SQL Server Show Plan on steroids. Great for helping you focus on the parts of a large query that are of most importance. Also great for just compressing the graphical plan into more readable layout.|
|Araxis Merge||A great DIFF and Merge tool. SourceGear provides a great tool called DiffMerge that we use all the time, but occasionally, I like the cross-edit capabilities of Araxis Merge. For a while, we also produced DIFF reports in HTML that showed all the changes that occurred between two releases. This was most important when we were putting out very small, but very important hot fixes on a very politically hot system. The reports produced by Araxis Merge gave the Director of IS assurance that we were not accidentally introducing ripples throughout the system with our releases.|
|Idera SQL Admin Toolset||A great collection of tools including a password checker to help analyze your SQL Server for weak user passwords, a Backup Status tool to quickly scan a large list of servers and databases to identify any that are overdue for backups. Particularly helpful for highlighting new databases that have been deployed without getting included in your backup processing. I also like Space Analyzer to keep an eye on disk space consumed by database files.|
|Idera SQL Job Manager||This free tool provides a nice calendar view of SQL Server Job Schedules, but to a degree, you also get what you pay for. We will be purchasing SQL Sentry Event Manager later this year as an even better job schedule reviewer/manager. But in the meantime, this at least gives me a good view on potential resource conflicts across multiple instances of SQL Server.|
|DBFViewer 2000||I inherited a couple of FoxPro databases that I have to keep an eye on occasionally and have not yet been able to migrate them to SQL Server.|
|Balsamiq Mockups||We are still in evaluation-mode on this tool, but I really like it as a quick UI mockup tool that does not require Visual Studio, so someone other than a programmer can do UI design. The interface looks hand-drawn which definitely has some psychological benefits when communicating to users, too.|
|FeedDemon||I have to stay on top of my WAY TOO MANY blog subscriptions somehow. I may read blogs on a couple of different computers, and FeedDemon’s integration with Google Reader allows me to keep them all in sync. I don’t particularly like the Google Reader interface, or the fact that it always wanted to mark articles as read just because I scrolled past them. FeedDemon solves this problem for me, and provides a multi-tabbed interface which is good because fairly frequently one blog will link to something else I want to read, and I can end up with a half-dozen open tabs all from one article.|
|Synergy+||In my office, I run four monitors across two computers all with one mouse and keyboard. Synergy is the magic software that makes this work.|
|TweetDeck||I’m not the most active Tweeter in the world, but when I want to check-in with the Twitterverse, this really helps. I have found the #sqlhelp and #PoshHelp hash tags particularly useful, and I also have columns setup to make it easy to monitor #sqlpass, #PASSProfDev, and short term events like #sqlsat68.|
Whew! That’s a lot. No wonder it took me a couple of days to get everything setup the way I wanted it. Oh, that and actually getting some work accomplished at the same time. Anyway, I know that is a huge dump of info, and most people never make it here to the end, so for those who did, let me say, CONGRATULATIONS, you made it!
I hope you’ll find a new tool or two to make your work life a little easier.
|re: Tools of the Trade
If you are looking at Balsamiq.. also consider the "pencil project"