Oi! What’s going on with the .NET Reflector update mechanism?

Anyone who’s been using .NET Reflector for any length of time will by now be used to its built-in update mechanism. Every 6 months or so it will ask you to upgrade to the latest version and, if you don’t, will refuse to work after a few weeks have passed. Love it or hate it, it mostly works pretty well, unless your internet connection is down, in which case it can be a pain in the ass (we’re discussing options to improve this situation at the moment because, if you haven’t fired it up for a while, having it refuse to work until you upgrade immediately on startup isn’t a great experience – it’s not something we’re going to fix instantly, but watch this space).

So, you probably got a bit of a rude shock when you tried to upgrade from 5.1.6.0 (or earlier) to 6.0, and it opened up your web browser and redirected you to the product page on our website instead. Why on earth would we do this to you?

Well let me tell you, it wasn’t for marketing or PR reasons, and if it were, it would have to be one of the dumbest strategies in history: since when has annoying people been a great way of achieving anything (unless your surname is Jobs)? I’d be irritated by this redirect (both iTunes and Spotify get up my nose for this very reason).

Actually it’s all down to the legals. .NET Reflector itself is free (as in beer, not speech), so its license agreement hasn’t changed. .NET Reflector Pro on the other hand is paid for, so it needs a different set of terms and conditions. After months of back and forth it turned out that, as I’ve said, we didn’t need to make any changes to the .NET Reflector license agreement, and that we could use the same license agreement we use for all our other products to cover .NET Reflector Pro. To put this in context, there had been discussions around having some uber-agreement that covered both products, but it would have been complicated so thankfully wasn’t necessary.

The one fly in the ointment is that, because we’ve changed the Ts & Cs, we have to give everyone the opportunity to view the license agreements before they download the software, which includes anyone upgrading from a previous version. We were originally just going to bundle the additional Pro license agreement into the zip file, as we’ve done with the .NET Reflector agreement, but the lawyers told us this wouldn’t cut it. Hence the redirect to the website.

The good news is that, once you’re running 6.1, the auto-update mechanism will work as usual for future upgrades, unless we need to alter the Ts & Cs again. Given the amount of aggro involved last time around I’d do just about anything to avoid it.

So far that’s all fair enough, but what we didn’t do a great job of is explaining why this happened when you upgraded: at first everyone was just redirected to reflector.red-gate.com (this URL is hardcoded into .NET Reflector 5.1.x so there was no other option), which has always redirected to the .NET Reflector product page. I wasn’t massively enamoured of this but, when we started trialling this back in February nobody complained, so we thought we could safely proceed. When the 5.1.6.0 build expired at the end of February we noticed a big spike in downloads, which we’d anticipated (always happens), but again, no real complaints. With hindsight it’s obvious that this is because everyone upgrading was doing so willingly, and they were all probably quite anxious to get hold of the new version.

At the end of March the grace period expired and .NET Reflector 5.1.6.0 stopped working, forcing users to upgrade. And this is where it all went slightly awry. Here we’re dealing with a much larger proportion of people for whom the upgrade might be seen as a chore anyway, and we’re taking them to a product page on our website. This looks like we’re forcing them to view an advert. We’re not, but that’s what it looks like. I’d like to apologise for that, because it wasn’t our intention at all, although I can completely understand why you might think that.

So what have we done about this?

We still have to give upgraders the opportunity to view the license agreements however, from today, people will now be taken straight to the .NET Reflector download page. I’ve added a note at the top of this page which briefly explains why people have been redirected to the website. I’ve also removed the Simple Talk Reflector newsletter sign-up/registration process for people upgrading. The sign-up was optional, but it was causing some confusion and frustration, so it seemed best just to bin it. There are links to both license agreements on this page (no change here), and we make it clear that by downloading the product, you are accepting the Ts & Cs so, whilst there’s nothing non-standard or nefarious in there, if you’re at all unsure you should certainly cast your eye over these before downloading .NET Reflector.

OK, next topic.

Why does .NET Reflector automatically update itself at all?

I’ve dealt with this question before in a post here:

https://www.red-gate.com/simple-talk/blogs/net-reflector-support-why-does-net-reflector-auto-update-itself/

I’d recommend reading that post if you want a little more detail but, the short version, is down to support. .NET Reflector is hugely popular, to the point where it’s simply unrealistic for us to support multiple versions of the free edition. This isn’t unheard of for free applications: e.g., the free edition of Spotify regularly forces you to upgrade if you want to keep listening. Sure, I’d prefer if it didn’t, but I like the app enough that I’m willing to live with the faff, just like I’m willing to live with the ads (unless they’re Seat car ads – those things make me hog wild).

On the flip side, it means you get the latest functionality in .NET Reflector. The next forced upgrade won’t be until September, but it will include support for the new C# and VB language extensions in .NET 4.0 (this is in the free version), which we planning to release in a month or so.