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,124 | Comments: 45,470

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.


  1. RavenDB 3.5 whirl wind tour: You want all the data, you can’t handle all the data - 2 days from now
  2. The design of RavenDB 4.0: Making Lucene reliable - 3 days from now
  3. RavenDB 3.5 whirl wind tour: I’ll find who is taking my I/O bandwidth and they SHALL pay - 4 days from now
  4. The design of RavenDB 4.0: Physically segregating collections - 5 days from now
  5. RavenDB 3.5 Whirlwind tour: I need to be free to explore my data - 6 days from now

And 14 more posts are pending...

There are posts all the way to May 30, 2016


  1. RavenDB 3.5 whirl wind tour (14):
    29 Apr 2016 - A large cluster goes into a bar and order N^2 drinks
  2. The design of RavenDB 4.0 (13):
    28 Apr 2016 - The implications of the blittable format
  3. Tasks for the new comer (2):
    15 Apr 2016 - Quartz.NET with RavenDB
  4. Code through the looking glass (5):
    18 Mar 2016 - And a linear search to rule them
  5. Find the bug (8):
    29 Feb 2016 - When you can't rely on your own identity
View all series



Main feed Feed Stats
Comments feed   Comments Feed Stats