August 13, 2006 at 10:24 am
Hi there,
I'm about to start work on a single-user app. I'll be writing it in C#, as a Windows Application, and am trying to decide what database to use. All installation (application and database) must occur through an installation package - I will not have administration access to the customer machines.
My customers will not have any database engines installed, but will use Windows XP SP2. I guess this means that if I use Microsoft Access I don't need to do any extra installation work - I can just install a blank DB MDB file in the application directory and go from there.
However, I'd really rather use SQL Server Express if possible - what is involved in using SQL Express instead of Access? Is it possible to automate installation of the SQL Express engine into my installation package, and attach an empty db?
Thanks,
Nick
August 14, 2006 at 9:30 am
Nick,
I have a lot of experience embedding MSDE 2000 into a client/server shrink wrap product. The product is meant to be installed by salesmen and non-technical customers.
My install checks for the presence of the named instance of MSDE for my app and on not finding it, it installs MSDE and attaches the initial database for the app. It was a bit tricky working out a nice semi-silent install package for the MSDE part, because the MSDE installer is an ancient piece of crap that predates the use of Windows Installer.
However, I just recently installed Sql Server Express on a few machines and found it to be the modern and clean installer that they promised. It even asked for Windows Installer 3.1 (and .Net 2.0, by the way.) A few those installs were on test machines that had my product on it. SS Express detected the named instance of MSDE for my product and updated it quickly and flawlessly. The product works great.
My advice is if you really do need something more powerful than Access in your app, use SS Express and don't worry about installer concerns. The install is clean and simple. In fact there is a well developed silent install capability that allows you to integrate the SS Express install right into your products installer.
Chiefley
August 14, 2006 at 9:38 am
Nick,
Another thing that is improved is the addition of SQLSMO. It is a managed code replacement for the old fashioned COM object called SQLDMO. I used DMO to attach the DB and set up the logins from C# code in my installer classes. Although the com object is already installed with MSDE, it is still clumsy to work with from C#.
SMO will make your scripting much easier, since it is designed to be a managed library that is easily used from your managed code.
For the current versions of my product, I used the Package and Deployment projects in VS 2003. I am in the middle of switching over to a Wise based installer which has auto-update over the internet for my client and server. When I switch to SS Express, I expect to have complete automatic patch and update capability for the SS Express part of it, too.
August 17, 2006 at 11:10 am
Thanks very much for your replies Chief, really helpful!
Viewing 4 posts - 1 through 3 (of 3 total)
You must be logged in to reply to this topic. Login to reply