Včera se uskutečnil online meeting na téma "Cloudové služby pro mobilní aplikace", který představil technologii Azure Mobile Services. Jedná se o službu pro podporu základních funkcí (uložení dat, autentizace uživatele, push notifikace) vyžadovaných typickými mobilními aplikacemi bez ohledu na platformu (Windows Phone, Windows Store, iOS, Android). Jejím hlavním cílem je “ulevit” typickému mobilnímu vývojáři od vývoje složitých serverových funkcí – místo toho se může soustředit na funkčnost a uživatelské rozhraní svojí mobilní aplikace. Vše je připravené, není třeba žádná složitá instalace, aktualizace, upgrade, monitorování, zálohování ani další otravné správcovské činnosti.

Zde vám přinášíme materiály k tomuto semináři:

Prezentace ke stažení

Videozáznam na MSTV.CZ

Odpovědi na otázky:

Je podporován též Windows Phone 7.5 ?
V aktuální verzi není, nemáme informace, že by se podpora chystala.

Jsou při datových operacích podporovány transakce?
Každé volání API pomocí HTTP požadavku vyvolá jednu transakci do databáze, tyto operace nelze slučovat. Pokud chcete provádět transakční operace, je možné vytvořit v databázi uložené procedury, které provádí transakční změny dat, a ty potom volat ze serverového kódu.

Mohu ten serverový kód ladit nějak lokálně? Třeba bych chtěl si to zkusit
ve Visual Studiu a odladit překlepy.

Vaší potřebě rozumím, ale bohužel to možné není. U sebe na počítači nikdy nebudete mít věrnou repliku serverového prostředí. Editor v Azure portále má ale slušnou korekci chyb (chybějící závorky, středníky, překlepy ve jménech proměnných apod.). Dále je pro ladění možné využít výpisy do logu pomocí funkce console. Přestože nejde o plnohodnotné ladění, je celková zkušenost celkem příjemná

Jsou nějaká omezení na databázi ve srovnání s SQL Azure?
Používá se standardní SQL Azure se všemi svými možnostmi. Můžete je jakkoliv využívat, jenom se nedoporučuje „plést se do cesty“ službě (používání schématu, jména tabulek, automaticky vytvořené klíče a indexy apod.)

Martin Suchan: Zde jsou odkazy, které se mohou hodit
Zdrojáky knihoven Mobile Services https://github.com/WindowsAzure/azure-mobile-services
Feature request page http://mobileservices.uservoice.com/forums/182281-feature-requests/filters/top

Lze jako databázi používat i SQLite nebo jenom SQL Azure?
Lze používat pouze SQL Azure.

Je možnost použít tyto služby v klasické webové mobilní aplikaci?
.NET knihovny mají v tuto chvíli kompilační závislosti na platformě WP8 resp. Windows Store. Push notifikace nejsou pro mobilní webovou aplikaci relevantní, autentizace by se musela dělat jiným způsobem než u tlusté aplikace (ale teoreticky by to možné bylo). Pokud jde o datové služby, můžete celkem snadno volat HTTP REST API přímo bez objektové knihovny anebo dokonce přistupovat přímo do mobilní databáze.

Mohu tedy využít i stávající SQL Azure DB určenou pro nějaké moje služby též pro Mobile Services?
Ano, celkem bez problémů. Vaše data a data služby Mobile Service budou oddělena pomocí různého jména schématu v databázi.

Mají Mobile Services něco společného se Service Bus?
Ne příliš. Nicméně ze serverových skriptů v JavaScriptu je možné volat veškeré funkce obsažené v modulu Azure SDK pro Node.js – viz oznámení zde. Například je tedy možné integrovat se s dalšími systémy pomocí zpráv předávaných prostřednictvím Azure Service Bus. Dále je též možné odesílat e-maily a SMS zprávy – v menším množství dokonce bezplatně.

Ukládám si seznam uživatelů, kterým zasílám notifikace. Může si klientská aplikace vynutit odhlášení z tohoto seznamu? Mluvil jste o odinstalování aplikace. Když ji uživatel odinstaluje, zůstane mi ale pořád v seznamu. Já se nedozvím, že ji odinstaloval a budu mu to pořád posílat.
Tak samozřejmě v aplikaci můžete volat jakoukoliv funkci, ale odinstalaci nijak nezaznamenáte, stejně jako např. ztrátu zařízení. Proto bych určitě doporučoval záznamy o předplacených notifikacích opatřit nějakým časovým razítkem a při každém startu/běhu aplikace tuto známku aktualizovat. „Mrtvá“ předplatná (např. starší než XXX dní) pak můžete mazat pomocí pravidelně spouštěné úlohy.

 

Michael