Mobilní služby na MS Azure nejsou žádnou novinkou. Do nedávné doby bylo možné zakládat standardní “Mobile Service”, která následně poskytovala tři cenné pilíře pro vývoj mobilních aplikací. Jednak aplikační rozhraní pracující s daty uloženými v relační databázi MS SQL (typicky), poskytovatele pro práci s identitami (MS account, FB, Twitter, Google) a v neposlední řadě bylo možné mobile services použít k odesílání push notifikací. Nově Azure nabízí vytvoření Mobile Service typu .NET backend.
Původní DATA + API
Původní řešení Mobile services zpřístupňovalo v rozhraní MS Azure dvě záložky: DATA a API. Princip původních služeb byl tedy takový, že jste si založili novou tabulku v sekci data. Tato tabulka neobsahovala nic než primární klíč typu bigint a pomocí různých cest bylo možné tuto tabulku rozšířit o další sloupce (například přes SQL Management Studio). S daty v takové tabulce se následně dalo manipulovat pomocí různých API. Tato API byla definována node js scriptem, který obsluhoval všechny potřebné metody (post, put, get…). Klient pak s aplikačním rozhraním komunikoval pohodlně pomocí SDK, resp. bylo možné pracovat přímo s daty. Celé toto řešení mělo ale z mého pohledu celou řadu nevýhod (což mě také nutí psát o data+api v minulém čase):
- byť úprava js je možná i ve VS přes server explorer, skripty byly přímo v rozhraní MS Azure = nemožnost týmové práce, kooperace, verzování
- node js znamenal pro .NET vývojáře “technologickou vrstvu” navíc
- node js není všemocný a API je použitelné jen pro triviální aplikace (většinou CRUD nad vlastními daty)
V konečném důsledku se tak celé řešení hodilo jen pro vývoj menších aplikací, které operovali pouze s vlastními daty bez potřeby provádět nějakou logiku.
DOT NET BACKEND
Novinka .NET Backend ve své podstatě funguje tak, že vytvoříte plnohodnotnou webovou službu. V hantýrce šablon Visual Studia se jedná o Windows Azure Mobile Service template, která je dostupná ve VS 2013 Update 2. Šablona automaticky založí projekt typu Web API (podobný MVC aplikaci) s určitými atypickými rysy pro standardní webové aplikace. Takto založený projekt má celou řadu výhod:
- je autonomní, můžete ho provozovat kdekoliv mimo MS Azure (nebo to může být např.: MS Azure Cloud Service)
- může využívat jakékoliv datové zdroje, relační databáze, přístupy k datům
- je to ASP.NET aplikace (rozšiřitelnost, testovatelnost, atd..)
- standardní výhody běžných projektů (týmová práce)
Hotová služba se publikuje běžným způsobem přímo z Visual Studia. Po volbě subscription se nabídne v záložce Windows Azure Mobile Services seznam všech služeb, které jsou typu .NET Backend (případně je možné vytvořit novou). Po publikaci do MS Azure je služba dostupná na vybrané url adrese http://{something}.azure-mobile.net a není problém službu dále škálovat.
I v případě .NET Backend jsou dostupné 3 varianty plánu:
- free (zdarma) – zahrnuje 10 mobilních služeb a 20 MB databázi MS SQL, omezení na 0,5 mil. volání API (per všech 10 služeb)
- basic (25 USD) – 1,5 mil. volání API
- standard (199 USD) – 15 mil. volání API
V případě basic/standard plánů se platí za tzv. jednotky (units). Pokud například bude služba vytížena cca 6 miliony volání API, je ideální disponovat se 4 basic jednotkami (100 USD) spíše než s jednou standard jednotkou, která by byla nevyužitá a stála by 199 USD.
Závěr
Zásadní výhodou Mobile Services typu .NET Backend je samotný princip, kterým je psaní plnohodnotné služby formou Web API (MVC projektu). To, co vlastně MS Azure nově nabízí je možnost deploye takového projektu do samostatně škálovatelné “služby”. U této služby mě nezajímá nic jiného než traffic v podobě počtu volání. Geniální je, že pokud se nedotknu hranice 0,5 mil, mohu celou tuto službu používat zdarma.
Zdroje: