Fog Creek Software
Discussion Board




MSDE Server

MS is having a field day right now writting wrappers to Windows Installer that install MSDE for you before the application is installed so that they can get around their highly buggy merge modules that can't have patches installed (because of bad patching systems in Windows Installer)

This solution creates a problem. If the user cancels the install or the install fails for whatever reason MSDE is left running on the user's computer. This is a BAD THING because MSDE eats ram for breakfast so you don't want to be running it unless you have to (not to mention security...)

My question to you is, have you dealt with MSDE at all?  What's your thoughts on where MSDE is going?  I am really really pissed off because I've explained all of this to MS and they continue to ignore me.  I figured you would be perfect to get the word out for everyone to start yelling at MS so that they're forced to fix it.

James Hancock
Sunday, February 22, 2004

This is one, of many, reasons that we don't use Windows Installer and one, of many, reasons that we use Jet instead of MSDE.

Joel Spolsky
Fog Creek Software
Sunday, February 22, 2004

Isn't MSDE a "lite" version of SQL Server?  (i.e. accepts less simultaneous connections but is otherwise the same?)

Oli
Sunday, February 22, 2004

Yes. MSDE is essentially SQL Server Standard edition, with performance limitations, and no GUI management tools.

Microsoft's decision to cancel Jet (not sure if it still stands) is a terrible one. MSDE is ridiculously heavyweight in the many places where Jet is used today.

Brad Wilson (dotnetguy.techieswithcats.com)
Sunday, February 22, 2004

Ah, but I would argue that stored procedures (which MSDE supports) make it possible to think of a relational database as a funky extension of the programming language, which (as a side-effect) make it terribly difficult to perform injection attacks.

I feel uncomfortable seeing "raw" SQL mixed in with code because one database platform *cough* Access/Jet *cough* does not support stored procedures, although, in Access' defense, I think you can have it use parameterized queries. (as opposed to concatenated strings)

Oli
Sunday, February 22, 2004

And, parameterized queries eliminate the possibility of injection attacks, so I'm not really sure your argument means much.

Brad Wilson (dotnetguy.techieswithcats.com)
Sunday, February 22, 2004

Yeah, sorry, you're right, they do.  They don't seem as explicit/clean, although that might just be brainwash from all those articles saying that inline SQL is the devil.  :)

Oli
Sunday, February 22, 2004

Yes. MSDE is essentially SQL Server Standard edition, with performance limitations, and no GUI management tools.


They released management tools for it last week: http://www.microsoft.com/downloads/details.aspx?familyid=c039a798-c57a-419e-acbc-2a332cb7f959&displaylang=en

Just me (Sir to you)
Monday, February 23, 2004

I must agree 100% with the original post.

We use MSDE for a 'standalone' version of our product (the network version runs on SQL Server so it was the easiest option).

You would not believe the number of problems we have getting it to install.  It simply astounds me that Microsoft could release a product that you are meant to embed in your own application without ensuring that the install works!!!

I have spent literally 100's of hours troubleshooting failed MSDE installations.  With the benefit of hindsight, I would have used another product, no question about it.

Having said that, it is essentially a fully featured version of SQL Server that you don't have to pay a runtime licence for so I suppose I should be grateful.

MattR
Tuesday, February 24, 2004

Well, I've been investigating the issue of shipping a dbms with an application for some time now. I've always stumbled across the issue that in most cases I won't need a server (ie. service) running but an embedded dbms would do fine.

So I found sqlite ( http://www.sqlite.com ) which seems to have enough features but on the other hand is rather for small scale use. It might be ok to replace JET with the added benefit of beeing cross platform though I have to investigate in it's robustness as it is typeless.

More often though you need a more sophisticated dbms and the possibility to upscale to a client/server scenario. This is where MSDE should be great. As mentioned it has issues though and I didn't like the fact it is running as a service. This adds complexity and I don't know what happens on XP Home where services can't run as system (did somebody investigate this?).
So I found Firebird ( http://www.firebirdsql.org ) which is an open source branch of InterBase. It's available as server and as embedded database (ie. dll) plus it is also cross platform.

Martin Weber
Wednesday, February 25, 2004

We wrestled with the MSDE merge modules for a while, then just ended up running the EXE to install it.  At the time--about one year ago--this went against Microsoft's instructions for installation.

Of course, what do they reccommend now?  Don't use the merge modules; install using the exe.

Dave

Dave
Wednesday, February 25, 2004

The problem with the exe install is what I listed above.  The problem with the merge modules is bugs and unable to upgrade unless you create a patch for your software.

The merge modules can be fixed (I did it and told MS how to do it.)

The patch thing could be fixed by MS VERY easily and I also told them how to do it. They don't seem interested.

Windows Installer is BROKEN. GRRR.

James Hancock
Saturday, February 28, 2004

BTW, the package just released by MS to do MSDE installs does not fix the problem of leaving the instance on the machine if the install fails.

Hence why it is garbage and should not be used by an self-respecting installer.

James Hancock
Saturday, February 28, 2004

*  Recent Topics

*  Fog Creek Home