Data Synchronization


Author
Message
Tim Dol
Tim Dol
StrataFrame User (366 reputation)StrataFrame User (366 reputation)StrataFrame User (366 reputation)StrataFrame User (366 reputation)StrataFrame User (366 reputation)StrataFrame User (366 reputation)StrataFrame User (366 reputation)StrataFrame User (366 reputation)StrataFrame User (366 reputation)
Group: Forum Members
Posts: 340, Visits: 1.4K
We have a StrataFrame CRM application running on a central db server. All clients are connected to the main database. We have a requirement to allow sales reps the ability to enter new contacts, notes etc... on a laptop disconnected from the main server. When they reconnect, the contact and note changes synchronize to the main server and any changes on the server update back to the laptop.

Just wondering if anyone has successfully done this before with StrataFrame or any other technology.

Thanks,

Tim

Keith Chisarik
Keith Chisarik
StrataFrame VIP (1.2K reputation)StrataFrame VIP (1.2K reputation)StrataFrame VIP (1.2K reputation)StrataFrame VIP (1.2K reputation)StrataFrame VIP (1.2K reputation)StrataFrame VIP (1.2K reputation)StrataFrame VIP (1.2K reputation)StrataFrame VIP (1.2K reputation)StrataFrame VIP (1.2K reputation)
Group: StrataFrame Users
Posts: 939, Visits: 40K
I have done this two ways, serialize the required tables to XML and bind to them when disconnected and using SQL Compact as the local database using RDA replication.

Both worked fine, I prefer the later though. The SQLCE version only used SF on the desktop side, the disconnected client was .NET Compact on a mobile device.

I have another app that uses SF with SQL Compact as the database, it took writing a DataSourceItem for SQL Compact to accomodate slight syntactical differences but it too works OK.

Keith Chisarik

Keith Chisarik
Keith Chisarik
StrataFrame VIP (1.2K reputation)StrataFrame VIP (1.2K reputation)StrataFrame VIP (1.2K reputation)StrataFrame VIP (1.2K reputation)StrataFrame VIP (1.2K reputation)StrataFrame VIP (1.2K reputation)StrataFrame VIP (1.2K reputation)StrataFrame VIP (1.2K reputation)StrataFrame VIP (1.2K reputation)
Group: StrataFrame Users
Posts: 939, Visits: 40K
forgot, if I had to do it again with replication I wouldnt use RDA I would use full replication, I used it because the app started out very simple, but as it grew RDA was not the best choice.

Keith Chisarik
Trent Taylor
Trent Taylor
StrataFrame Developer (8.5K reputation)StrataFrame Developer (8.5K reputation)StrataFrame Developer (8.5K reputation)StrataFrame Developer (8.5K reputation)StrataFrame Developer (8.5K reputation)StrataFrame Developer (8.5K reputation)StrataFrame Developer (8.5K reputation)StrataFrame Developer (8.5K reputation)StrataFrame Developer (8.5K reputation)
Group: StrataFrame Developers
Posts: 6.6K, Visits: 6.9K
All of Keith's suggestions are are great. Here are some other options as well:



1. One other option that can be a little easier to get going if you have this option is to load SQL Server Express on the laptops. It is a small footprint for no more data than is generally going to be happening on the client side. So you can update the local SQL Server then have a sync utility (or use RDA replication like Keith mentioned...however you will need to use GUIDs to use SQL replication which can cause issues with applications that are already deployed at times). We actually use INT PKs and have our own sync utility to add these records back in. It takes a bit more time to get the sync working since you in fact have to write it, but it does allow existing applications to remain intact.



2. Create a base BO that all if your BOs inherit from and add a global flag that indicates whether you are running in "DISCONNECTED" or "LIVE" mode. When in a disconnected state, when the Save is clicked, the BO will just be serialized to disk. So when you get back to the office, it is just a matter of deserializing the BO and then saving back to the server as you normally would. The only potential downside here is if you will be dealing with large amounts of data on saves and a query from the main server to retrieve lookup codes would have to be retrieved and serialized prior to heading out (which you will still have this issue no matter which avenue you take).



3. This is probably the best option if it is possible, but if you can maintain internet access on the laptops, you can do everything live and the whole "sync" issue falls away. If you can get USB Sprint / AT&T / Verizon / etc. cards that allow you to get on the internet, then you could implement the Enterprise Server and always have a live connection back to the server and totally eliminate the disconnected issues. Just a thought.
Peter Jones
Peter Jones
StrataFrame User (450 reputation)StrataFrame User (450 reputation)StrataFrame User (450 reputation)StrataFrame User (450 reputation)StrataFrame User (450 reputation)StrataFrame User (450 reputation)StrataFrame User (450 reputation)StrataFrame User (450 reputation)StrataFrame User (450 reputation)
Group: Forum Members
Posts: 386, Visits: 2.1K
Hi Tim,



We used Merge Replication to good effect for a similar requirement, i.e. data collected remotely that needed to be shipped back to a central site plus receiving updates from the central site. This is an old app that used the MSDE engine on the laptops back to a SQL Server 2000 backend. However, it is my understanding that doing this now with Server 2008 and Express may not be quite so straight forward because Express doesn't come bundled with support for SQL Agent which may present problems with firing the SQL replication process. I think this is a move to encourage corporate applications to up-size to the SQL Workgroup Edition for remote users.



Cheers, Peter
Tim Dol
Tim Dol
StrataFrame User (366 reputation)StrataFrame User (366 reputation)StrataFrame User (366 reputation)StrataFrame User (366 reputation)StrataFrame User (366 reputation)StrataFrame User (366 reputation)StrataFrame User (366 reputation)StrataFrame User (366 reputation)StrataFrame User (366 reputation)
Group: Forum Members
Posts: 340, Visits: 1.4K
Thanks everyone for your input. It looks like I have a lot of work ahead of me.
Trent Taylor
Trent Taylor
StrataFrame Developer (8.5K reputation)StrataFrame Developer (8.5K reputation)StrataFrame Developer (8.5K reputation)StrataFrame Developer (8.5K reputation)StrataFrame Developer (8.5K reputation)StrataFrame Developer (8.5K reputation)StrataFrame Developer (8.5K reputation)StrataFrame Developer (8.5K reputation)StrataFrame Developer (8.5K reputation)
Group: StrataFrame Developers
Posts: 6.6K, Visits: 6.9K
Well, let us know if you have some questions along the way! Smile
GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Similar Topics

Reading This Topic

Login

Explore
Messages
Mentions
Search