I’ve got a strange scenario where we’ve developed a workflow management tool as an ASP.Net web application with SQL Server 2008. Unfortunately we’re unable to host this for our client, and asking them to host it themselves is not an option.
We need give them access to the functionality we’ve developed through a technology platform that is not web. They have very tight firewall security internally, so desktop applications talking to each other is not reliable.
What have available to us now, reliably, is:
- Ability to run a desktop app on a user’s machine.
- Access to network file shares.
My current thoughts are to migrate the Sql Server component to use Sql Server CE instead, host the database file on a network file share, and have each user run a desktop application that points to it.
Problems arise with rolling out software updates.
How do you ensure that all users update their application?
How do you ensure that they do it at the same time?
How do you ensure that they only access the DB with the correct version?
All of these problems become major issues with no server-side centralisation or remote access to the production environment.
I was thinking maybe WPF had something in its bag of tricks where an application can run from a network file share concurrently for multiple users.
My questions to you are:
Is there some great technology I’m missing that would make my life easier in this scenario?
How would you approach the problem?
SQL Server CE will not work, it requires exclusive access to the database file. I’d recommend using SQLite. Tho that is not without it’s own issues if you have a large number or users writing to the database at the same time.
WPF will not help you here, it’s simply a GUI tool.