Synchronizace se SkyDrive - kdy nejlépe provést v kódu?

Vše okolo vývoje aplikací pro platformy Windows Phone a Windows 10 Mobile
Odpovědět
Petrroll
přispěvatel
přispěvatel
Příspěvky: 92
Registrován: sob bře 06, 2010 15:24
Zařízení: Samsung galaxy S

Synchronizace se SkyDrive - kdy nejlépe provést v kódu?

Příspěvek od Petrroll »

Zdravím,
snažím se do své aplikace implemtnovat možnost automatické synchronizace na SkyDrive. Ta aktuálně funguje tak, že se data uloží do .xml a odešlou skrze LiveSDK na server.

Problém je, kdy data odesílat / kdy je přijímat. Vzhledem tomu, že asynchroní odesílání chivlku trvá, tak nemůžu data uložit a odeslat při odchycení 'closing' a 'deactivated' v App.

Kvůli nedostatečnej inicializaci ostatních částí také nemohu data načíst v 'launching' a 'resume' (nebo jak to je). U MainPage_loaded mi zas s načítáním přijde trochu pozdě. Otázka je tedy, kdy je to podle Vás nejlepší.

//případně ještě jak elegantně vyřešit aby se vzala lokální data, když se stáhnou nějaká špatná.
Igor Kulman
častý přispěvatel
častý přispěvatel
Příspěvky: 228
Registrován: stř bře 28, 2012 12:46
Zařízení: ano

Synchronizace se SkyDrive - kdy nejlépe provést v kódu?

Příspěvek od Igor Kulman »

Pri inicializácií ViewModelu načítaj XML z IsoStore a inicializuje sťahovanie zo SkyDrive. Keď ti dorazí XML zo SkyDrive tak zisti, či sú v ňom nejaké zmeny oproti načitanému a ak áno, ponúkni používateľovi aktualizáciu.

Ukladanie by bolo ideálne priebežne, ak to XML nie je nejaké obrovské, ale ukladať ho môžeš samozrejme zazipované, tým výrazne znížiš traffic.
Petrroll
přispěvatel
přispěvatel
Příspěvky: 92
Registrován: sob bře 06, 2010 15:24
Zařízení: Samsung galaxy S

Synchronizace se SkyDrive - kdy nejlépe provést v kódu?

Příspěvek od Petrroll »

Ok, tak nějak jsem se to pokoušel implemtnovat a trochu jsem narazil.

Můj systém zálohy funguje víceméně tak, že serializuji data do .xml na IsolatedStorage a ten pak uploaduji na server. Problém je, že v aplikaci může nastat více změn poměrně rychle po sobě a je tak velká šance, že nová změna nastane, zatímco se ta první odesílá, což následně shodí aplikaci (nemůžu zapisovat do souboru jehož stream se odesílá).

Odbobný problém mám při aktualizaci ze SkyDrive, načtení (ačkoliv malého xml) trvá poměrně dlouho (1-2sekundy) za kterou uživatel v pohodě může stihnout něco změnit -> což může znovu vyvolat error.
Igor Kulman
častý přispěvatel
častý přispěvatel
Příspěvky: 228
Registrován: stř bře 28, 2012 12:46
Zařízení: ano

Synchronizace se SkyDrive - kdy nejlépe provést v kódu?

Příspěvek od Igor Kulman »

Nechápem, to vážne načítavaš a odosielaš tú istú štruktúru, do ktorej ti používateľ zapisuje? Teda rovnakú štruktúru ti zapisuje používateľ aj kód, ktorý ťahá dáta zo SkyDrive? To je choré. Immutabilia je skvelá vec, nebráň sa jej :)

Ppp->Skydrive
vytvor si kópiu dát, ktoré chceš odoslať, serializuj do XML a zaraď do fronty na odosielanie na SkyDrive.

Skydrive->App
Načítaj XML zo SkyDrive, deserializuj a porovnaj výslednú štruktúru s tou v aplikácií. Jednoduché.
Petrroll
přispěvatel
přispěvatel
Příspěvky: 92
Registrován: sob bře 06, 2010 15:24
Zařízení: Samsung galaxy S

Synchronizace se SkyDrive - kdy nejlépe provést v kódu?

Příspěvek od Petrroll »

Pravda, nebyl to zrovna nejrobustnější návrch, ale zas asi nejjednošušší a z hlediska kódu nejkratší. Chvíli jsem se snažil o serializaci do streamu, který rovnou odešlu (tj. jsem se chtěl zbavit nutnosti první ukládat to ISstorage), bohužel jsem se zasekl na problémech se Streamy (moc jsem s nimi zatím nepracoval).
Nicméně podívám se na to a upravím to.
Petrroll
přispěvatel
přispěvatel
Příspěvky: 92
Registrován: sob bře 06, 2010 15:24
Zařízení: Samsung galaxy S

Synchronizace se SkyDrive - kdy nejlépe provést v kódu?

Příspěvek od Petrroll »

Ok, tak už na tom pracuju a narazil jsem na drobný problém. Více informací zde:
http://stackoverflow.com/questions/1151 ... ory-stream" onclick="window.open(this.href);return false;

//prosím odpovězte tam, přeci jen na to třeba někdo také narazí.
///A odhlédněte od úrovně angličtiny, nepsal jsem to s důrazem na gramatiku.
Odpovědět

Zpět na „Programování a vývoj“

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 3 hosti