I have deployed plenty of software to my clients. Mostly are Window Forms applications. Here is my current practice.
- Manually install SQLExpress and SQL Management Studio to each client PC.
- Then use ClickOne to install the code from the server.
- When there is a changes in code, I will use ClickOne to deploy -(NO PROBLEM with this step)
- But when there is a change in a database column, what do I do?
I have even tried writing a database update script. Each time the program starts, it will read through the .sql update file and run them if the database exists. This solves the problem of updating the database columns, but it does not help in my DEBUGGING work when my customer complain there is a wrong data. At that point, I have to personally go to their site to check it out.
I find it difficult to have the database installed on the client PC as it make my debugging work very very difficult. I am thinking about moving my client database to a host on an Online server. But that then comes with these constraints:
- What if the internet is down?
- What if my customer has no internet?
Could you help to advise me? Is this a common problem faced by developer? What is the common practice out there? Does Window Azure or SQL CE help?