Daniel Vittek

Vývojářský blog - Daniel Vittek

Podle kategorie

Azure mobile services backend, díl 2.

Daniel Vittek       23. 10. 2015             2977 zobrazení

V dnešním dílu naší mini-série se budeme věnovat a obeznámíme se s problematikou tzv. ‘‘soft delete‘‘, offline synchronizace a řešení konfliktů. Kromě toho co vůbec Azure M.S. je a k čemu se dá využít. V příštím díle se již dostaneme k ukázce kódu a k řešení problematiky Azure M.S. v praxi.

Azure M.S. má velkou škálu možností, které nabízí a víceméně záleží jen na programátorovi, jak se k dostupným technologiím postaví a využije je. V oficiálních tutoriálech se využívá jako názorný příklad tzv. ‘‘ToDo List‘‘, což je vhodně zvolený příklad k vysvětlení a obeznámení se základními principy. Tam to ale ovšem nekončí, Azure M.S. se dá využít i ke komplexnímu aplikačnímu backendu.

Řekněme, že programujete jednoduchý poznámkovač s cloudovým backendem. Pravděpodobně se nespokojíte s tím, že vaše aplikace běží jen s funkčním připojením k internetu. V tuto chvíli přichází na řadu offline synchronizace. No a jak to už bývá, nic není tak jednoduché a při implementaci offline synchronizace si začnete uvědomovat, že budete potřebovat více. V tu chvíli přichází na řadu tzv. ‘‘soft delete‘‘ a řešení konfliktů.

Offline synchronizace se v našem případě řeší implementací lokální databáze. Synchronizace se posléze řeší pushem a pullem (ukážeme si v příštím díle). Při takovém chování aplikace, ale samozřejmě může nastat problém se synchronizací a je potřeba vyřešit konflikty.

Představte si, že jedna aplikace se pokusí nahrát změnu nějakého zaznámu a ve stejný okamžik se o to samé, ale nyní již se zastaralou verzí záznamu pokusí aplikace druhá. V tuto chvíli nám aplikace díky Azure knihovnám vyhodí výjimku a je na nás, jak ji vyřešíme. Samozřejmě to nemusíme řešit celé sami od piky. Jednoduše vytvoříme třídu, která nám to bude řešit, podědíme IMobileServiceSyncHandler, implementujeme nezbytné třídy a doupravíme si kód, podle vlastních představ.

Další problém nastává v mazání záznamů z aplikace, tedy v pozadí z databáze. K tomu nám slouží již zmínění ‘‘soft delete‘‘. Je to volitelný sloupeček v naší databázi. Funguje to tak, že pokud potom smaži záznam, fyzicky se smazání neprovede, jen se nastaví hodnota _deleted sloupečku na true a já se pak můžu při vytahování dat z databáze rozhodnout, jestli chci zahrnout i takové záznamy. V případě že ne, se záznamy z lokální databáze smažou a zůstanou jen v té na Azure. Takové záznamy nám můžou sloužit k jednoduchému zotavení v případě mylného, či neúmyslného smazání uživatelem. Je ale potřeba mysle také na to, že nám zabírají místo v databázi a měli bychom je občas pročistit.

Toť pro dnešní díl vše. Jak jsem již říkal, do příštího dílu vám slibuji praktické ukázky, takže se posuneme od úvodní omáčky k hlavnímu chodu.

Budu se těšit a jako vždy přeji hodně štěstí a málo bugů! :)

 

hodnocení článku

0       Hodnotit mohou jen registrované uživatelé.

 

Nový příspěvek

 

Příspěvky zaslané pod tento článek se neobjeví hned, ale až po schválení administrátorem.

                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.

Nyní zakládáte pod článkem nové diskusní vlákno.
Pokud chcete reagovat na jiný příspěvek, klikněte na tlačítko "Odpovědět" u některého diskusního příspěvku.

Nyní odpovídáte na příspěvek pod článkem. Nebo chcete raději založit nové vlákno?

 

  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

Příspěvky zaslané pod tento článek se neobjeví hned, ale až po schválení administrátorem.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:  
Heslo:  

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback