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

  • Question

  • 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.


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


    Thursday, April 13, 2006 11:58 AM

All replies

  • Wow lots of ways, encrypting the data would be an easy one ... a database such as SqlLite is anopther viable alternative.
    Tuesday, April 18, 2006 2:15 AM
  • The most common way is to use SQL [for mobile] or encrypt XML.

    Look at the Smart Client Baseline Architecture Toolkit.


    Tuesday, April 18, 2006 7:37 AM
  • 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.

    Tuesday, April 18, 2006 10:41 AM
  • 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.

    Tuesday, April 18, 2006 12:06 PM
  • Tuesday, April 18, 2006 1:58 PM
  • 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, is a simple article discussing using encryption + a dataset to store encrypted XML.




    Tuesday, April 18, 2006 2:29 PM
  • Embedded SQL?

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

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

    Tuesday, April 18, 2006 2:36 PM
  •  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:



    Tuesday, April 18, 2006 3:09 PM
  • 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) 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.



    Tuesday, April 18, 2006 3:13 PM