35
Damir Arh, Adacta d.o.o. Arhitekt programske opreme MVP – Visual C# @DamirArh, damirscorner.com Sinhronizacija podatkov – praktični vodič za izgradnjo pametnih Windows 8 aplikacij

Sinhronizacija podatkov - praktični vodič za izgradnjo pametnih Windows 8 aplikacij

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

Page 1: Sinhronizacija podatkov - praktični vodič za izgradnjo pametnih Windows 8 aplikacij

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

Page 2: Sinhronizacija podatkov - praktični vodič za izgradnjo pametnih Windows 8 aplikacij

2

Agenda(Občasno) povezane aplikacijeBranje podatkovUrejanje podatkovMicrosoft Sync Framework

Page 3: Sinhronizacija podatkov - praktični vodič za izgradnjo pametnih Windows 8 aplikacij

(Občasno) povezane aplikacije

Page 4: Sinhronizacija podatkov - praktični vodič za izgradnjo pametnih Windows 8 aplikacij

4

Današnje aplikacije

Page 5: Sinhronizacija podatkov - praktični vodič za izgradnjo pametnih Windows 8 aplikacij

5

Izzivi vedno povezanih aplikacijStalni dostop do omrežnih virovHitrost podatkovnega prenosaKritična točka odpovedi (SPOF)Obremenitev strežnikov

Page 6: Sinhronizacija podatkov - praktični vodič za izgradnjo pametnih Windows 8 aplikacij

6

Občasno povezane aplikacije

Aplikacija

Omrežni vir

Page 7: Sinhronizacija podatkov - praktični vodič za izgradnjo pametnih Windows 8 aplikacij

7

Lokalna hramba podatkovNestrukturiranaSettings LocalSettings RoamingSettingsFolder LocalFolder RoamingFolder TemporaryFolder

StrukturiranaC++: Extensible Storage EngineJS: IndexedDB.NET: SQLite

Page 8: Sinhronizacija podatkov - praktični vodič za izgradnjo pametnih Windows 8 aplikacij

Branje podatkov

Page 9: Sinhronizacija podatkov - praktični vodič za izgradnjo pametnih Windows 8 aplikacij

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

Page 10: Sinhronizacija podatkov - praktični vodič za izgradnjo pametnih Windows 8 aplikacij

10

Sledenje spremembamPrenos podatkov po potrebiInformacija o zadnji spremembiVpliv granularnosti

Page 11: Sinhronizacija podatkov - praktični vodič za izgradnjo pametnih Windows 8 aplikacij

11

Sinhronizacija glede na datum zadnje spremembe

Page 12: Sinhronizacija podatkov - praktični vodič za izgradnjo pametnih Windows 8 aplikacij

12

Brisanje zapisovUporaba nagrobnikovInformacija o času izbrisaKako dolgo hraniti te podatke?

Page 13: Sinhronizacija podatkov - praktični vodič za izgradnjo pametnih Windows 8 aplikacij

Urejanje podatkov

Page 14: Sinhronizacija podatkov - praktični vodič za izgradnjo pametnih Windows 8 aplikacij

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

Page 15: Sinhronizacija podatkov - praktični vodič za izgradnjo pametnih Windows 8 aplikacij

15

Reševanje konfliktovPrevlada strežnik / prviPrevlada odjemalec / zadnjiZabeleženje konfliktaOdloženo reševanje

Page 16: Sinhronizacija podatkov - praktični vodič za izgradnjo pametnih Windows 8 aplikacij

16

Izogibanje konfliktomSpreminjanje zgolj v povezanem načinuKreiranje novih zapisovZaklepanje zapisov pred spreminjanjem

Page 17: Sinhronizacija podatkov - praktični vodič za izgradnjo pametnih Windows 8 aplikacij

17

Preprečevanje konfliktov s predhodnim zaklepanjem

Page 18: Sinhronizacija podatkov - praktični vodič za izgradnjo pametnih Windows 8 aplikacij

18

Preostali izziviKljuč zaklepanjaTrajanje zaklepanjaAdministrativno odklepanjeZavrnjene spremembe

Page 19: Sinhronizacija podatkov - praktični vodič za izgradnjo pametnih Windows 8 aplikacij

Microsoft Sync Framework

Page 20: Sinhronizacija podatkov - praktični vodič za izgradnjo pametnih Windows 8 aplikacij

20

Osnovni gradnikiAplikacij

a

Provider Provider

Sync Framework

Sync Framework

Sync Framework

Spremembe

Shramba ShrambaSpremembe

Page 21: Sinhronizacija podatkov - praktični vodič za izgradnjo pametnih Windows 8 aplikacij

21

Spremljanje spremembIdentifikator shrambeŠtevec spremembVerzija zapisovEvidenca izbrisanih zapisovZavedanje drugih shrambIzvedba osveževanjaSprotiPeriodično

Page 22: Sinhronizacija podatkov - praktični vodič za izgradnjo pametnih Windows 8 aplikacij

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

Page 23: Sinhronizacija podatkov - praktični vodič za izgradnjo pametnih Windows 8 aplikacij

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

Page 24: Sinhronizacija podatkov - praktični vodič za izgradnjo pametnih Windows 8 aplikacij

24

Programske zahteveInternet Information Services (IIS)Microsoft Sync Framework 2.1 SDKSync Toolkit Windows 8 WinRT Windows Phone 8SQLite for Windows Runtime

Page 25: Sinhronizacija podatkov - praktični vodič za izgradnjo pametnih Windows 8 aplikacij

25

Uporaba Sync Toolkit

Page 26: Sinhronizacija podatkov - praktični vodič za izgradnjo pametnih Windows 8 aplikacij

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>

Page 27: Sinhronizacija podatkov - praktični vodič za izgradnjo pametnih Windows 8 aplikacij

27

Podatkovna zbirkaDodatne tabele za sledenje spremembamAvtomatično generirane z orodjemSyncSvcUtil /mode:provision /scopeconfig:scope.config

Page 28: Sinhronizacija podatkov - praktični vodič za izgradnjo pametnih Windows 8 aplikacij

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

Page 29: Sinhronizacija podatkov - praktični vodič za izgradnjo pametnih Windows 8 aplikacij

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

Page 30: Sinhronizacija podatkov - praktični vodič za izgradnjo pametnih Windows 8 aplikacij

30

Naslednji korakiAvtorizacijaŠifriranjeSprememba shemeSinhronizacija datotekKrožne reference

Page 31: Sinhronizacija podatkov - praktični vodič za izgradnjo pametnih Windows 8 aplikacij

31

ZaključekLokalna hramba podatkov prinaša izziveIzbira zahtevam primerne rešitveMicrosoft Sync Framework lahko pomagaNadaljnjega razvoja ni pričakovati

Page 33: Sinhronizacija podatkov - praktični vodič za izgradnjo pametnih Windows 8 aplikacij

Q&A.

Page 34: Sinhronizacija podatkov - praktični vodič za izgradnjo pametnih Windows 8 aplikacij

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

Page 35: Sinhronizacija podatkov - praktični vodič za izgradnjo pametnih Windows 8 aplikacij