In my previous post I discussed the challenge of deploying your application.
Since then, I have been hard at work contemplating and designing a proof of concept for the ultimate deployment technique. I guess the easiest solution would be just to create a web-based application, application updates can then happen from anywhere and at anytime.
Unfortunately web-based applications aren’t always an option, so what I’ve come up with so far is a web service solution. I’m still working on the structure of the service, but basically what would happen is the following:
- User click the "Check for Update" button in their application
- The application connects to the web service using the following criteria:
- Application Name
- Application Version
Note: Later web service version can include fields like company name, user name etc. for licensing purposes.
- The web service takes the supplied information, and checks against a database whether a newer version for the Application exists or if the user is using the latest version.
- If a newer version exists, it retrieves the following information about that version:
- Version Description
- List of changes
- List of SQL scripts
- The application will then download all the SQL scripts required for the release, and send the information about the release back to the client
- Once the SQL scripts has been downloaded it will be automatically run on the client database, and the status of the script( Successful, Failed) will be reported back to the web service, in order for the support team to respond appropriately.
- If no scripts failed, the standard click once deployment method will then be called to update the application with the latest assemblies.
So there you have it. Still a work in progress, but I think overall not a bad concept. I’ll report back on my progress as I go, maybe even throw in a demonstration.