Jag har fått i uppdrag att forska lite kring synkronisering av databaser.
Det som vi vill uppnå är att det skall finnas en huvudsqlserver, men man skall kunna arbeta ej uppkopplad mot sql servern. Ett alternativ som jag ser då är att klienten har en databas på sin dator exempelvis en sql server express.
Vad skall jag tänka på när jag implemmenterar denna synkronisering?
Jag har idag NHibernate som datalager.
Jag vet att NHibernate har versionshantering som man ganska enkelt kan lägga på. Någon som har lite bra länkar, eller eventuellt något boktips?
Jag hade ju självklart bara kunnat sätta mig ner och göra efter hur jag tycker det skulle fungera men jag vill ha lite best practises :).
CatZMedlem sedan jan. 20022 440 inlägg Nu brukar jag ju hoppa på saker innan de kommer skarpt men jag har kikat på Microsoft Synchronization Services for ADO.NET eller SSEC till just det.
Som sagt det har ju inte släppts mer än beta2 än men jag tycker det verkar väldigt vettigt.
CatZ skrev:
Nu brukar jag ju hoppa på saker innan de kommer skarpt men jag har kikat på Microsoft Synchronization Services for ADO.NET eller SSEC till just det.
Som sagt det har ju inte släppts mer än beta2 än men jag tycker det verkar väldigt vettigt.
Tråkigt att det verkar ganska knutet till DataSet's eller har jag fattat fel?
CatZMedlem sedan jan. 20022 440 inlägg Nej då har du inte riktigt hajjat, tanken är att man på ett enkelt sätt helt ska kunna köra offline läge och sedan uppdatera när man går online.
Spana in http://www.codeproject.com/smartclient/takedataoffline.asp dessutom i C# vilket borde passa dig som handen i hansken :)
CatZ skrev:
Nej då har du inte riktigt hajjat, tanken är att man på ett enkelt sätt helt ska kunna köra offline läge och sedan uppdatera när man går online.
Spana in http://www.codeproject.com/smartclient/takedataoffline.asp dessutom i C# vilket borde passa dig som handen i hansken :)
Jo det var just den länken jag hittade när jag skummade igenom texten så hittade jag detta
ADO.NET introduced a set of disconnected objects that allows you to examine data offline after fetching it from the server. The key to this model is the DataSet object, which encapsulates a host of other disconnected objects like DataTable, DataColumn, etc. Synchronization Services for ADO.NET extends this model by providing a persistent cache on the client. With the data stored on disk on the client machine, the client can examine the data and make modifications while offline and between application restarts. Changes to the data on the client and server are tracked by means of database triggers or through built-in support, as is the case with SQL CE. By using the Sync Services API, incremental changes made on the client and server are exchanged to bring the client cache in sync with the server. The diagram above shows the different components of the sync framework. Below is a brief description of each component:
Men jag får läsa till :).
GladhMedlem sedan maj 20012 812 inlägg
nickemmanen skrev:
Jag har fått i uppdrag att forska lite kring synkronisering av databaser.
Ta en titt på replikeringen som är inbyggd i SQL Server, den är ju gjord för att replikera/synkronisera data mellan olika databaser.
En sak som man måste hålla koll på när det gäller synkroniseringen mot databaser som är offline, är nycklarna. Om du har en vanlig Identity fält så kan de ju bli problem om 2 offlinedatorer fått samma identity nyckel. Så om du skall lösa det i kod, så hålla koll på det eller använd GUID som nycklar så slipper du det problemet.
- M