Ayende @ Rahien

My name is Oren Eini
Founder of Hibernating Rhinos LTD and RavenDB.
You can reach me by phone or email:


+972 52-548-6969

, @ Q c

Posts: 6,026 | Comments: 44,842

filter by tags archive

NH ProfThe beta mistake

time to read 1 min | 151 words

One of the things that I should have done from the get go of the beta program was to force people to upgrade when their version is too old.

Why would I want to do that? Because people that continue to use old versions, and old versions has old bugs.

Take a look at this error report:


This version is almost a hundred builds old, and the error reported was fixed long ago. I also get errors from people using older versions than that.

When I built the error reporting feature, I was concerned about the user privacy, so I don’t have any information about the user that can be used to identify him. I am reduce to this public plea: Just upgrade NH Prof already!

More posts in "NH Prof" series:

  1. (09 Dec 2010) Alert on bad ‘like’ query
  2. (10 Dec 2009) Filter static files
  3. (16 Nov 2009) Exporting Reports
  4. (08 Oct 2009) NHibernate Search Integration
  5. (19 Aug 2009) Multiple Session Factory Support
  6. (07 Aug 2009) Diffing Sessions
  7. (06 Aug 2009) Capturing DDL
  8. (05 Aug 2009) Detect Cross Thread Session Usage
  9. (22 May 2009) Detecting 2nd cache collection loads
  10. (15 May 2009) Error Detection
  11. (12 May 2009) Queries by Url
  12. (04 Feb 2009) View Query Results
  13. (18 Jan 2009) Superfluous <many-to-one> update
  14. (18 Jan 2009) URL tracking
  15. (10 Jan 2009) Detecting distributed transactions (System.Transactions)
  16. (06 Jan 2009) The Query Cache
  17. (05 Jan 2009) Query Duration
  18. (24 Dec 2008) Unbounded result sets
  19. (24 Dec 2008) Row Counts


Rinat Abdullin

Hi Oren,

There is a simple solution to reduce friction here:

  1. Deployment build updates ProductVersion.txt with the latest build number

  2. Application on start-up (once in a while) checks this url and compares its version with the txt. If found - offers user to update.

  3. Update simply launches ClickOnce bootstrapper that would download and start the latest deployment (which is basically an MSI with MajorUpgrade)

  4. [Optional] Submit feedback UI informs user if he is using an outdated version, to save him the embarassement.

  5. [Optional] Menu link for the program has "Get latest version" that simply launches sequence 3.

All nine yards have to be coded once. With this in place, dev would just need to start deployment build to publish an update.


Ayende Rahien


That isn't an issue, I am not talking about technical details.

NH Prof is doing something similar already.

But I did it fairly late in the game, and older versions don't have that.


Still, the technical solution described by Rinat would reduce the slight friction involved with the current implementation (which is somewhat 'agressive', IMHO)

Rinat Abdullin

Then that's just an evolutional issue that might pass.

Yet, I heard somebody say - unit test your code before commiting, establish continuous integration and deployment before releasing))


We purchased 3 of the beta license at my company. One of the devs still had the beta emblazoned on the front and I kept reminding him to upgrade. He did upgrade recently, so I hope that your traffic is decreased just a bit.

I do like that the newer versions will tell you when a new rev is available.


Its kind of ironic that they send bug reports, presumably to get bugs fixed, but never upgrade the version they are using which would contain said fixes.


I agree with Chuck that it's nice to know about new builds, however it would be even better if it could update itself too :)

Steve Py

I'm actually not a fan of auto-updating software. Reflector was one that drove me up the smegging wall. (During a contract stint I worked on-site with a laptop without a trusted external connection.) When I launch an app I want to use the app, I don't want to be notified that it's trying to call home, wait for downloads, or be told to wait because it needs to update itself and restart.

Though whenever I do come across a "bug" in a product, beta or otherwise, the first thing I do is check to see if it's been reported, fixed, or there's a workaround mentioned, and if they've released a newer version. I can't say I've ever used a "report a bug" feature in an application. I admit it sounds like a useful feature, but in reality like this scenario, it's moron-fodder.

Comment preview

Comments have been closed on this topic.


No future posts left, oh my!


  1. Technical observations from my wife (3):
    13 Nov 2015 - Production issues
  2. Production postmortem (13):
    13 Nov 2015 - The case of the “it is slow on that machine (only)”
  3. Speaking (5):
    09 Nov 2015 - Community talk in Kiev, Ukraine–What does it take to be a good developer
  4. Find the bug (5):
    11 Sep 2015 - The concurrent memory buster
  5. Buffer allocation strategies (3):
    09 Sep 2015 - Bad usage patterns
View all series


Main feed Feed Stats
Comments feed   Comments Feed Stats