views:

33

answers:

2

We have a product developed in C#.Net. It is not a web application but a desktop version. It connects to various databases like MSSQL, MySQL etc.

We keep on upgrading the versions of the software for bug fixes as well as new functionality. These updates changes the exe as well as dll used and the database also.

We would like to know what are the different methods using which we can provide updates to our customer.

regardsi...

Kalpak L

A: 

Well, there are several different paths to take.

Simple: Just provide a new installer that overwrites the previous installation. Send the clients an email when it's ready or simply put it up on your site.

Mid level: Provide a "check for new version" function in your app that compares it's version number to one retrieved from a web service on your side. Fire up a browser to download it and run the installer if necessary...

Best (IMHO): Create a wrapper application for yours. This wrapper is what would actually be started when they click your icon. It would check for new versions (again once every couple of weeks), then fire off the main program if everything is good. If an update exists give the user the option to download it. Download the file and replace the real app. Then launch it. BTW, This is pretty close to the Firefox model.

Chris Lively
In the last scenario, how to take care of the database updates like creation/alter or new tables and update of config data.
Kalpak
You have the database on the client as well? That isn't exactly "client/server". Regardless, the wrapper could check for an updated DDL file as well. When it sees one it should just run it against it's local instance prior to starting the app. This should be seriously tested prior to each deployment.
Chris Lively
A: 

Consider deploying your app with ClickOnce . Lets your users easily install the application from a web server, and it has automatic support for updates. It's integrated with visual studio, and will generate the stuff you need with the push of a button.

nos