Microsoft Sync Framework – Databas sync eller objekt sync är frågan

Jag håller just nu på att utforska Microsoft Sync Framework i en förstudie där vi studerar tekniska förutsättningarna för att bygga en OCA (Occasionally Connected Applications) applikation.

syncProviders

En av de största och svåraste funderingarna jag har är om vi skall satsa på att synka data på databas nivån med Sync Services for ADO.NET eller om man skall använda egna providers som endast synkar objekten.

Om man synkar på databasnivå så måste man dels titta på databas designen på servern för att minska den data som skall synkas samt man måste ha ett data access lager på applikationssidan.

Om man bygger egna sync provider baserat på grunderna i Sync Framework så får man som sagt bygga sina egna provider, bygga proxy för kommunikationen med server samt hantera hur man persisterar sina objekt på klienten.

Just nu lutar jag åt att bygga egna providers men behöver undersöka vilka delar som måste hanteras via remote proxy. Att persistera datan lutar jag åt att använda Xml serialisering alternativt binär serialisering ner i filsystemet alternativt ner i en SQL Server Compact Edition som ett antal blobbar. Detta skulle i vårt fall vara smidigast eftersom vi jobbar med en rik domänmodell utan dirketa anrop till databasen. Nackelen är dock att man måste implementera egna sync providers och dess remote proxy.

Skulle man gå på Sync Services for ADO.NET så finns det mesta klart i synk ramverket men kan ha större påverkan på applikationen i sin helhet eftersom databas designen ev måste justeras och optimeras för synkning. Å andra sidan så påverkar en databas redesign endast vårt dataaccess lager.

Förhoppningsvis så kommer jag kunna bolla lite av mina funderingar med  Microsoft Sync Framework teamet på .

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s