Architecture question - how to store local copies of data on a server

My work order application needs to do the following:

1) User has a windows forms client on their laptop, PC, or even mobile client.

2) When they have an active connection, they can connect to a web service to view new tasks, mark the ones they want to download to their local machine, then disconnect.

3) They can then edit their local copies of these tasks, then re-synch with the server when they next have a connection.

Reason being, they may often have to take work orders into the field where they will not have an internet connection.

Question:

How can I store these locally in a secure manner, i.e., in a format that I cannot just open with notepad or something

Thanks.




Answer this question

Architecture question - how to store local copies of data on a server

  • Chattabaugh

    Wow lots of ways, encrypting the data would be an easy one ... a database such as SqlLite is anopther viable alternative.
  • Vitaly Pimenov

    I made a project doing that. Encrypting is very easy, you have lots of example in codeproject or wherever.

    SQL for mobile is a good option but it gives you much more than what you are asking for, you could implement all the messaging with sql and you can forget about being or not online.



  • RMcGill

    Thanks for the answers.

    I do not want to use SQL mobile because I think it would create distribution headaches. I may not have control over the desktops or mobile devices.

    Remote users would download the client themselves.

    Encrypted XML files would work fine.

    Any sample code or links would be greatly appreciated.



  • goozbee

    Embedded SQL

    Bear with me, I am a nub at embedded SQL.

    Any how-to's, links, etc. would be apprectiated.



  • Rambo

    You may also want to look at Isolated Storage (http://msdn2.microsoft.com/en-us/library/3ak841sy(VS.80).aspx) and Encypted File System (EFS) - http://www.microsoft.com/technet/security/topics/cryptographyetc/efs.mspx

    Arnon



  • spkeller

    agent_smith wrote:

    Embedded SQL

    Bear with me, I am a nub at embedded SQL.

    Any how-to's, links, etc. would be apprectiated.

    the DB Greg mentioned is SQLite: http://www.sqlite.org/

    Arnon



  • pgupta

    Note that the SQL example I gave does not have distribution problems as it runs within the same process as your application (it is embedded SQL). It does not require something else to be installed (in fact it is just a .dll that you include with your application)

    As for dealing with encrypted XML, http://www.codeproject.com/csharp/CryptoXML.asp is a simple article discussing using encryption + a dataset to store encrypted XML.

    Cheers,

    Greg


  • camilero999

    The most common way is to use SQL [for mobile] or encrypt XML.

    Look at the Smart Client Baseline Architecture Toolkit. http://www.gotdotnet.com/codegallery/codegallery.aspx id=941d2228-3bb5-42fd-8004-c08595821170

    Clemens



  • haitham ibrahim

    Basically it is an "in-process" SQL server.

    It is a library that you can link to which provides SQL operations within your process (i.e. no external SQL server) http://www.eggheadcafe.com/articles/20040714.asp also walks you through using the managed providers for sqlite. Because you are in process things are also ALOT faster than with an external SQL system.

    Cheers,

    Greg


  • Architecture question - how to store local copies of data on a server