Sysinternals Filemon is a utility I use often to troubleshoot file and security permissions. Sometimes you get cryptic or silent errors that would not lead you to discover that a file permission is missing. Other times, it’s just quicker to locate the file problem using this tool.

Because it tells you the path and process referencing the file, it is easy to resolve permission problems.

<%image(http://www.benallfree.com/media/MWSnap033.jpg|1347|800|)%>

Be careful with it on servers. It can crash, and when it does, it takes the whole server with it.

 

Occasionally, I use the Sysinternals Process Explorer to see who has a death-grip on a file. Using this tool, you can release locked file handles when all other measures fail.

It can’t get every file handle to release, but it is certainly a good troubleshooting step even if it can’t break the file lock.

Suppose I need to re-compile GrooveOOM.dll, but somebody has it locked and I can’t figure out who.

<%image(http://www.benallfree.com/media/MWSnap030.jpg|1036|1125|)%>

First, I search for the DLL

<%image(http://www.benallfree.com/media/MWSnap031.jpg|828|474|)%>

I see that Outlook has it. If closing Outlook doesn’t do the trick, then I can force the handle closed with a right click in the main window.

<%image(http://www.benallfree.com/media/MWSnap032.jpg|514|88|)%>

 

SequoiaView is a visual file space allocation depiction tool and is incredibly useful for clearing out disk space quickly. Very useful for live servers.

Here is a snapshot from one of my development servers. Notice how much free space I keep.

<%image(http://www.benallfree.com/media/MWSnap029.jpg|1600|1176|)%>

 

XVI32 is my hex editor of choice. It supports highlighting and file drag/drop. Does it need to be any more complicated?

It is also one of the only tools I know of that will open extremely large files without flinching.

<%image(http://www.benallfree.com/media/MWSnap028_1.jpg|909|723|)%>

 

SQL2000 Print saved me hours on documentation the one time I used it. Worth a purchase if you have a need to print your database schema.

 

Araxis Merge is a visual merge tool for Windows. It supports plugins for FTP and VSS comparison, and works great through mounted drives on RDC.

This is my main tool for deployment. I don’t use the 3-way comparison.

 

SQL Delta is an old friend of mine. I chose it over SQLCompare because SQL Delta can compare data objects too.

There are rare cases when it doesn’t recognize identical schemas, such as when the object owner or table name changes, but those don’t occur so often for me.

<%image(http://www.benallfree.com/media/MWSnap027.jpg|790|570|)%>

 

ReSharper is a code completion and refactoring plugin for C# users of Visual Studio.

My favorite features:

* ‘Using’ directive auto-completion and optimization
* Refactoring methods (even suggests static methods)
* Encapsulating variables into properties

Least favorite:

* Code completion hotkeys sometimes delete symbols next to the cursor. This is by design and for convenience, I just don’t find it convenient
* It takes a long time to load projects with large assemblies that need parsing

<%image(http://www.benallfree.com/media/MWSnap026.jpg|820|388|)%>

 

RssFeed is a great ASP.NET component for consuming RSS feeds.

I had long wondered what possible application such a component could have, until I found one: In creating AjaxNation.com, I found myself without a home page. I wanted to use a blog, but I couldn’t find an easy to install ASP.NET blogging component. Then, the solution flashed before me – use my existing blog at benallfree.com and just consume the Ajax-related RSS feed from it!

Problem solved, and quite elegantly too.

<%image(http://www.benallfree.com/media/MWSnap024.jpg|907|868|)%>

<%image(http://www.benallfree.com/media/MWSnap025.jpg|907|868|)%>

 

LLBLGen Pro is an O/R mapper of sorts, which means you create your database schema and it creates all the business object classes.

I can not overstate the advantages of this form of development. Gone are DataSets and DataAdapters. Instead, all you deal with is custom collections of table objects. It is even smart enough to map relations, so you can do things like:

foreach (CustomerEntity c in customersCollection)
   foreach (OrderEntity o in customer.Orders)
      Console.WriteLine(o.Name);

It takes about 2 weeks to really get the hang of it, but you’d be spending that time writing your business classes anyway, so it’s an immediate win.

© 2011 Ben Allfree :: Painless Programming