views:

810

answers:

8

I have inherited a VB6/Access application that we have developed and sold for many years. We're going to SQL Server 2005 Express Edition and .Net.

The application can be multi-user. Currently the setup is simple for the customer -- Navigate to the folder to create the database on first launch; second user browses to the same file.

If we go with SQLExpress I believe our application will require more involvement to configure SQLExpress on the server. But I think we will get better security, and (with no code changes) a SQL version for larger customers.

How can I create the best customer experience from an installation and tech support point of view? What issues have come up for you? What install procedures have worked?

Do you set up a separate install for server/client, or just provide good instructions? What kinds of things do customers get wrong on the first try?

A: 

Since you're still considering going to SQLExpress, has your group considered SQLite? You can still have the database functionality you require without having to install an engine on the client's system.

Dillie-O
Just learned about it today, but that's a separate question.
Vic Boudolf
A: 

SQL Server 2005 Express Edition is easily installed with any decent installer. A couple hours of work is all it will take! If your heart is set on it then don't let the fear of installation hold you back.

pdavis
A couple of hours for me? Or a couple of hours for my customers to install it?
Vic Boudolf
+1  A: 

How many users and how much data?

I don't know if there are general guidelines on how many users is "too much" for SQL Express 2005 but there is a hard data limit of 4GB. My guess would be you wouldn't hit that what with the Access heritage but it would be a good thing to know.

You can have SQL Express' installation automated. I've seen it done because something my wife installed did it and she's the last person I would suspect to install it.

There is also SQL Server Compact Edition which I believe targets .NET 3.5 as well as Windows Mobile. I believe it's more analogous to the "single file database" bits like you got with Access.

Schnapple
Max DB size for SQL Server 2005 Express is actually 4GB.
Kev
Too much data and we'd go to SQL Server Standard.
Vic Boudolf
+1  A: 

SQL Express will be a huge step up from Access in capability and reliability. It shouldn't need any more configuration, just a different approach provided you know what your doing.

Kev
So just let them install SQL Express, and give good instructions for entering a connect string in the app?
Vic Boudolf
+2  A: 

I would recommend going the SQL Express route and including it in the install package. The installer has a ton of command-line options, and you can use SQL scripts to do any post-install configuration to the database (i.e., enabling/disabling CLR integration, OpenRowset, other features).

In addition, it's much more stable than the old MSDE 2000 installs; I had nightmares supporting that. I've also found that 99 times out of 100, putting default DB install parameters makes people happy.

SQL Express Weblog

How to install SQL 2008 From the command prompt

Lurker Indeed
Good call on default parameters and the links. MSDE is why we stuck with Access for so long. I'm glad SQLExpress is less trouble.
Vic Boudolf
+3  A: 

A deployment project from Visual Studio allows you to install a SQL Server Express instance with ease.

We have the same kind of scenario for our applications and it means you do need separate installations for the client and server.

Our server installation deals with either installing a new SQL Server or upgrading the schema of an existing installation if necessary. The client installation simply packages up the files required by the client. You have to consider the scenario of upgrading the database schema and ensuring the clients have the updated client version which works against the new schema. We achieve this in a simple way by:

Storing a version id in the database e.g. 1.0.1 Updating the AssemblyInfo.cs of the client application and ensuring the assembly version matches the version stored in the database. If it doesn't it prompts the user to install the new version.

For the best possible user experience you would like to be able to install a new server version and for all the clients to auto update. We have a method for doing this and I can give you more details if required.

Gary Joynes
Thanks for the details! How do the clients "find" the server on the first install? I heard of one company required you map the S: drive to an installation folder on the server, and they picked up the db settings. Or maybe you could export a config file that you import to clients?
Vic Boudolf
+1  A: 

At my company we use it a lot. Had some problems with slow startup times on slower machines.

Out install experience is not perfect - there is a utility that will restore database that the application uses as a database template.

David Vidmar
A: 

Another option: I believe you can also use SQL Server Express in a "file mode" where you just point to the MDF file and don't have to have an instance of SQL Server running. That would be very similar to how it sounds like your current app uses Access. I'm not sure how this works with multiuser situations, but it might be something to investigate.

Jon Turner
We like the "file mode" (I think they call it "in process") for single user. But for multi-users you have to install SQLExpress on a server (or at least on one of the workstations) where the shared file is.
Vic Boudolf
The official name is "User Instance". See http://msdn.microsoft.com/en-us/library/bb264564(SQL.90).aspx
David Vidmar