1

I have a .NET web server application I'm building that I plan to host at a .NET cloud hosting platform, like AppHarbor with SQL server. It will be used by multiple small groups of people to record and processes votes at an election (the current system is called TallyJ).

I also need my users to be able to set up a self-contained edition on a single PC, or as a server on a PC with an ad hoc LAN that is not connected to the internet when it is being used.

My current plan would be to use IIS Express and SQL CE for a local setup. With that, the local and hosted versions of code and SQL would be the same.

Does this sound viable, or am I missing something?

Do you have any suggestions for a better set of tools (but limited to C# and a relational database on the server/cloud)?

Arseni Mourzenko
  • 134,780
  • 31
  • 343
  • 513
Glen Little
  • 125
  • 7
  • Have you considered [local storage](http://diveintohtml5.org/storage.html) and [offline mode](http://diveintohtml5.org/offline.html) as alternatives to deploying a lot of software to clients? – friism Sep 19 '11 at 06:37
  • @friism problem with that solution is that only works on *some* browsers – balexandre Sep 19 '11 at 06:56
  • Yes, I've considered local storage, but it is still limited to some browsers (as balexandre mentions) and needs to be reliably persistent. I will use local storage for some items, but not the core data. – Glen Little Sep 20 '11 at 19:22

2 Answers2

3

It certainly sounds viable.

It has the great advantage of allowing you to keep with one version of the application which will always be easier to develop and maintain.

However, is it going to present any difficulties to the user?

One issue might be that you are limiting the users of your off line application to Windows users. Is this acceptable? If not then you'll have to find a different platform for the application. This is just one example that sprang to mind immediately. There will be others. You will need to draw up a list and see if any are show-stoppers for you.

ChrisF
  • 38,878
  • 11
  • 125
  • 168
  • I guess the "local" users would need at least one Windows computer of some sort, but other on the local LAN would be using a web client, so could use other platforms. – Glen Little Sep 20 '11 at 19:18
0

If you really must give 2 versions of your application, an online and other offline mode, I would strongly suggest to drop the web application entirely unless you must have a web version.

A simple windows application (maybe Silverlight so you can aim not only for Mac but for browser and out-of-the-browser as well), that will consume a local database and sync into the master when having a connection.

If you want to have an app in the browser, you can simply use the same Silverlight application in Hosted mode and on each user, in "out-of-the-browser" mode.

There is plenty of solutions to sync offline databases from Microsoft or others, plenty of questions/answers on StackOverflow about this:

https://stackoverflow.com/questions/1656652/syncing-sql-server-2008-databases-over-http-using-wcf-sync-framework

balexandre
  • 243
  • 3
  • 8
  • Thanks for the comment. If all the users are in one room, they would not need the web version. But if they are distributed across various venues, then a web application is the only simple solution. – Glen Little Sep 20 '11 at 19:19
  • The "offline" and the "online" applications will not need to actively sync between them. I will likely give an option to export/import data from both, and that can be used to move from one to the other. – Glen Little Sep 20 '11 at 19:20