Upload
damir-arh
View
929
Download
1
Embed Size (px)
DESCRIPTION
Slides from my session on data synchronization and occasionally connected apps development for Windows 8 at NT conference 2014 autumn
Citation preview
Damir Arh, Adacta d.o.o.Arhitekt programske opremeMVP – Visual C#@DamirArh, damirscorner.com
Sinhronizacija podatkov – praktični vodič za izgradnjo pametnih Windows 8 aplikacij
2
Agenda(Občasno) povezane aplikacijeBranje podatkovUrejanje podatkovMicrosoft Sync Framework
(Občasno) povezane aplikacije
4
Današnje aplikacije
5
Izzivi vedno povezanih aplikacijStalni dostop do omrežnih virovHitrost podatkovnega prenosaKritična točka odpovedi (SPOF)Obremenitev strežnikov
6
Občasno povezane aplikacije
Aplikacija
Omrežni vir
7
Lokalna hramba podatkovNestrukturiranaSettings LocalSettings RoamingSettingsFolder LocalFolder RoamingFolder TemporaryFolder
StrukturiranaC++: Extensible Storage EngineJS: IndexedDB.NET: SQLite
Branje podatkov
9
PredpomnjenjeLokalno shranjevanje prejetih odgovorovPolitika osveževanjaOb vsaki zahteviKo so na voljo novejši podatki Ko preteče veljavnost lokalnih podatkovNa zahtevo
CiljČim bolj ažurni podatkiČim manj prenosa podatkov
10
Sledenje spremembamPrenos podatkov po potrebiInformacija o zadnji spremembiVpliv granularnosti
11
Sinhronizacija glede na datum zadnje spremembe
12
Brisanje zapisovUporaba nagrobnikovInformacija o času izbrisaKako dolgo hraniti te podatke?
Urejanje podatkov
14
KonfliktiId Vrednost Verzija
1 1 1
Id Vrednost Verzija
1 2 2
Id Vrednost Verzija
1 1 1
Id Vrednost Verzija
1 2 2
Id Vrednost Verzija
1 3 3
Id Vrednost Verzija
1 4 3A
15
Reševanje konfliktovPrevlada strežnik / prviPrevlada odjemalec / zadnjiZabeleženje konfliktaOdloženo reševanje
16
Izogibanje konfliktomSpreminjanje zgolj v povezanem načinuKreiranje novih zapisovZaklepanje zapisov pred spreminjanjem
17
Preprečevanje konfliktov s predhodnim zaklepanjem
18
Preostali izziviKljuč zaklepanjaTrajanje zaklepanjaAdministrativno odklepanjeZavrnjene spremembe
Microsoft Sync Framework
20
Osnovni gradnikiAplikacij
a
Provider Provider
Sync Framework
Sync Framework
Sync Framework
Spremembe
Shramba ShrambaSpremembe
21
Spremljanje spremembIdentifikator shrambeŠtevec spremembVerzija zapisovEvidenca izbrisanih zapisovZavedanje drugih shrambIzvedba osveževanjaSprotiPeriodično
22
Postopek sinhronizacije
Vir Cilj
Vzpostavitev seje
Vedenje o viru
Relevantni podatki o spremembah, vedenje o cilju
Spremenjeni podatki
Zahteva spremenjen podatke na podlagi vedenja in razrešenih konfliktov
23
Podpora drugim platformamMicrosoft Sync Framework Toolkit
Sync Framework Toolkit Client
Silverlight / WP HMTL 5
LocalStorageIsolated Storage
Sync Framework Toolkit Server
Mycrosoft Sync Framework
SQL Server
Sync Framework Toolkit Client Sync Framework Toolkit Server
Mycrosoft Sync Framework
SQL Server
Sync Toolkit Windows 8 WinRT Windows Phone 8
WinRT / WP8
SQLite
24
Programske zahteveInternet Information Services (IIS)Microsoft Sync Framework 2.1 SDKSync Toolkit Windows 8 WinRT Windows Phone 8SQLite for Windows Runtime
25
Uporaba Sync Toolkit
26
Definicija obsega<SyncConfiguration> <SyncScopes> <SyncScope Name="Win8Sync"> <SyncTables> <SyncTable Name="Priority"/> <SyncTable Name="Project"/> <SyncTable Name="Task"/> <SyncTable Name="User"/> </SyncTables> </SyncScope> </SyncScopes> <Databases> <TargetDatabase Name="Win8Sync" DbServer=".\SQL2012" DbName="NTK2014-Win8Sync.Toolkit" UseIntegratedAuth="true"/> </Databases></SyncConfiguration>
27
Podatkovna zbirkaDodatne tabele za sledenje spremembamAvtomatično generirane z orodjemSyncSvcUtil /mode:provision /scopeconfig:scope.config
28
StrežnikDodatne knjižniceNuGet SyncClient.SQLiteMicrosoft.SynchronizationMicrosoft.Synchronization.Data.ServerMicrosoft.Synchronization.Data.SqlServer
Avtomatsko generiranje kode z orodjemSyncSvcUtil /mode:codegen /target:server /scopeconfig:scope.config
Vključitev v projektPrilagoditev inicializacije storitve
29
OdjemalecDodatne knjižniceNuGet SyncClient.SQLiteSQLite for Windows RuntimeMicrosoft Visual C++ Runtime Package
Avtomatsko generiranje kode z orodjemSyncSvcUtil /mode:codegen /target:sqliteclient /scopeconfig:scope.config
Vključitev v projektKlic sinhronizacijeDostop do lokalne shrambe
30
Naslednji korakiAvtorizacijaŠifriranjeSprememba shemeSinhronizacija datotekKrožne reference
31
ZaključekLokalna hramba podatkov prinaša izziveIzbira zahtevam primerne rešitveMicrosoft Sync Framework lahko pomagaNadaljnjega razvoja ni pričakovati
32
Virihttp://bit.ly/SyncFxhttp://bit.ly/SyncFxWinRT
http://bit.ly/SQLiteExtension http://bit.ly/SQLiteNethttp://bit.ly/PrismWinRT
Q&A.
© 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.