Failure is inevitable


Microsoft .NET Framework 3.5 SP1 released?

Along with the release of SQL Server 2008, it looks like the final version of .NET 3.5 SP1 has shipped.  You can snag the bits here.  This update includes some very cool stuff, including Dynamic Data, the Entity Framework, ADO.NET Data Services, and lots of improvements throughout the framework. 

How to run a software development company (INTO THE GROUND)

I was all set to write an informative post about HashSets today, but I'm not going to.  Instead, I'm going to finally start what will be a new on-going series here on this blog.  The series will cover the things you *shouldn't* do if you hold some sort of managerial stake in a software project.  Sadly these tales will be from my own personal experience working for companies that have drifted into disarray.  These examples will be embellished  somewhat to drive the points home, but by and large, everything you will read in these posts will be true.  ... [More]

Essential Development "Tools"

I've had the unfortunate pleasure of changing out two of my machines in the last week.  First, my trusty Dell Inspiron is being phased out in favor of the lighter, sturdier, sexier VistaMac.  Second, my ancient workstation at my day job is finally being replaced by an HP xw6600 workstation with a quad core Xeon (NICE).  While new toys are great, setting them up and getting them to feel "right" is a challenge.  I've found that to perform at my peak, I need some essential tools, utilities, and other misc. items.  Some of these are not free, but I've... [More]

Unit testing complex ASP.NET MVC controllers with Moq

One of the advantages of the new ASP.NET MVC framework is improved testability.  Testing simple controllers is as simple as testing any other class.  Once you start accessing HttpContext-related things though (such as the request, response, etc), things become much more tricky.  There's a few things in MVC Contrib that can help, but I've found them to be very lacking.  For example, I was trying to test a controller that inspected the HttpMethod property of the request, but MVC Contrib provides no way to alter this value (at least not that I have found). Instead, I found s... [More] problems with Firefox 3 and Vista

I'm not sure who to blame, but after switching to Windows Vista on one of my development workstations, I've been unable to get the Firefox 3 plug-in for to work.  No matter how many times I tried to install it, no plug-in files appeared on my computer.  I even tried running Firefox 3 with elevated privileges, but that didn't help.  So, instead, I manually installed the plug-in by performing these steps: Download the XPI from  You may need to use Internet Explorer since Firefox will probably just try to insta... [More]

I have been Mac-inized!

Well, I finally jumped on the bandwagon and bought a MacBook Pro.  My initial impressions are: Wow, this is really nice hardware.  Wow, this thing is tough.  I think it could stop a bullet. Wow, this thing is very light. Wow, it sure is easy to get Vista up and running! Wow, the OS X disc actually has all the bootcamp drivers and what-not built in to it now. Hmm, so they still haven't added a right mouse button? Hmm, how many ways is OS X going to tell me "Welcome" before I can use my computer? Wtf, why are so many people crazy about OS X?... [More]

WiX Snippet: change enable32BitAppOnWin64

As discussed in the last post, you can run both 32-bit and 64-bit app pools side-by-side on Windows Server 2008.  I decided I didn't want to have to remember to change the settings on one of my app pools every time I install my application on x64, so I added a custom action to the installer to do it for me.  Assuming you have already added the correct elements to create your application pool, all you need to do is add a custom action, like so: 1: <InstallExecuteSequence> 2: <RemoveExistingProducts After="InstallFinalize" /> ... [More]

Useful Info: Running x64 and x86 IIS Worker Processes Side-By-Side

On a (somewhat) related note, there's a nice new feature in IIS 7.0 that allows you to run both x86 and x64 worker processes side-by-side.  This wasn't possible with IIS 6/Windows Server 2003.  For details, check out rakkim's post on the subject.  This will be handy for me since one of the apps I maintain has a single web service that is dependent on a 32-bit COM component.  On IIS 6, that meant everything had to run as 32-bit, but with IIS 7, I can segregate that service into its own 32-bit app pool while leaving everything else in 64-bit goodness.

Me - 1, WiX - 0 (issues with WiX and Windows Server 2008)

It looks like "upgrading" our installers to work on Windows Server 2008 wasn't as painful as I expected, at least not once I figured out some of the core issues.  This post summarizes some of the lessons learned. Install IIS 6.0 Management Capability Feature Out of the box, WiX can't talk to IIS 7, so any extensions you use for IIS-related tasks won't work.  You can get around the issue by installing a compatibility layer over IIS 7.  Details here. Built-in Accounts Have Changed In Windows Server 2003, the Internet guest account is "IUSR_[MachineName]".&#... [More]

WiX Snippet: Creating a scheduled task

(Whoa, my goal was to hit three posts by the end of the week, but I've already hit three today!  Now taking bets on how long until I get bored...) A fair bit of my days involve some sort of agonizing over WiX.  That's because I maintain the installers for my employer's product, which is broken up into three separate logical tiers.  Each tier has its own installer, and none of them are simple.  Two of them involve installing web applications, and the third installs/updates SQL Server databases and installs SQL CLR modules.  As I may have hinted at in previous posts, Wi... [More]