Co si nainstalovat?

Pokud chcete začít testovat vývoj aplikací pro Windows Phone Mango, budete potřebovat Visual Studio 2010 SP1 (to je jen dočasná situace, pro verzi 7 existuje Visual Studio 2010 Express for Windows Phone, která je zdarma a obdobná bude pro Mango) do kterého si doinstalujete Windows Phone SDK 7.1 Beta2, , které je zdarma ke stažení zde (http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=26648). Toto SDK vám umožní vyvíjet aplikace pro Windows Phone 7.

clip_image001

Pokud máte nainstalovaný i Microsoft Expression Blend 4, tak se SDK integruje i do tohoto nástroje. Microsoft Expression Blend SDK Preview for Windows Phone 7.1 obsahuje některé ovládací prvky, které nejsou dostupné ve Windows Phone SDK 7.1 Assemblies.

clip_image002

Jak vypadají nainstalované nástroje, se můžete podívat v tomto videu.

Co se naučit?

Aplikace pro Windows Phone (7.0 i Mango) můžete programovat pomocí jazyka C# nebo Visual Basic s využitím technologie Silverlight nebo XNA. Silverlight se typicky využívá pro vytvoření běžných typů aplikací, kdežto technologie XNA je primárně určena pro vývoj her a styl programování se výrazně liší od programování aplikací pomocí technologie Silverlight. Dále se budeme zabývat pouze technologií Silverlight. Pokud vás zajímá spíše XNA, doporučuji se podívat na sérii webcastů od Tomáše Slavíčka.

Každý programátor, který se učí nový jazyk nebo platformu, musí začít aplikací Hello, World! nebo se můžete ve videu podívat na trochu složitější aplikaci. Pokud se raději učíte z knížek, tak je asi nejjednodušší začít knížkou Programming Windows Phone 7. Tato kniha sice popisuje verzi 7, ale jako výchozí bod učení je velmi dobrá a navíc je v elektronické podobě k dispozici zdarma včetně ukázkových příkladů.

Windows Phone 7 Training Course je ucelený výukový kurz, který je k dispozici i v off-line podobě. V době psaní článku popisuje verzi 7, ale je samozřejmě vhodný i pro Mango. Na stránkách Windows Phone Development QuickStarts najdete několik samostatných lekcí, které se zabývají těmi nejběžnějšími úkoly, které budete pro vývoj Windows Phone aplikací potřebovat.

Materiály, které jsem zatím popsal, se věnují verzi 7.

Kde najdu informace o novinkách v Mangu?

Stránka, kterou bych osobně začal, je What's New in the Windows Phone SDK. Pokud se raději učíte na konkrétních příkladech a ukázkách kódu, tak je dobré začít na stránce Code Samples for Windows Phone, kde najdete několik desítek okomentovaných příkladu.

Na co si dát pozor?

Windows Phone nemá multitasking, tak jak ho znáte

Pokud uživatel přejde do jiné aplikace, tak aplikace, kterou opustil, přejde do režimu Dormant. V tomto režimu je aplikace stále v paměti, ale jsou zastavena všechna její vlákna. Pokud docházejí systémové zdroje, tak se aplikace dostane do režimu Tombstoned, kdy je aplikace zcela uvolněna z paměti a zachovávají se jen informace, které jste uložili do IsolatedStorage nebo State (http://msdn.microsoft.com/en-us/library/microsoft.phone.shell.phoneapplicationservice.state.aspx). Pokud se uživatel do aplikace vrátí, záleží její chování na stavu, ze kterého se vrací. Pokud jde o režim Dormant, tak nemáte jako programátor, v podstatě žádnou práci. Vlákna se rozeběhnou a uživatel pokračuje, kde skončil. Návrat z režimu Tombstoned v podstatě znamená nové spuštění aplikace a je na vás, jak si poradíte s navrácením aplikace do stavu, v kterém ji uživatel opustil. Více informací najdete na stránkách Execution Model Overview for Windows Phone. Pochopení tohoto chování, je naprosto nutné pro další práci.

Pokud potřebujete uživateli posílat informace, např. o nové zprávě, i v době, kdy není aplikace spuštěna, tak musíte využívat systém Push Notifications. Push Notifications využívají webovou službu provozovanou společností Microsoft k zasílání zpráv na zařízení s Windows Phone. Aplikace, která chce zprávy přijímat, se zaregistruje u této služby. Služba vygeneruje unikátní URL, na které se pak zprávy posílají. Takto poslaná zpráva je doručena na příslušné zařízení a odesílatel je informován o stavu doručení. Podrobný popis najdete na stránkách Push Notifications Overview for Windows Phone.

Pro některé úlohy, které mají běžet na pozadí, např. opakované upozornění uživatele v určitý čas, jsou k dispozici systémové služby. Popis těchto služeb najdete na stránce Multitasking for Windows Phone.

Vše je podřízeno prostředí internetu

Co je tím myšleno? V internetu vám nikdo nezaručí dobu odezvy od serveru. Aby aplikace „nezatuhla“ v době, kdy komunikuje se serverem, tak je možné se serverem komunikovat pouze asynchronně. Pokud nejste obeznámeni s asynchronním programováním, tak je třeba, abyste se to naučili.

Může se vám to zdát divné, ale připojení 24/7 je v České republice stále trochu Sci-fi. Pokud patříte k části populace, která neopustí velká měst jak je rok dlouhý, tak problém mít nebudete. Stačí ale jet v Praze metrem, Pendolinem do Ostravy nebo se vydat do méně obydlených oblastí jako je kokořínsko a o permanentním připojení k internetu si můžete nechat jen zdát. Vaše aplikace by měla být schopna fungovat, i když v omezené míře, i případě, kdy je problém s připojením k internetu.

Webový prohlížeč v Mangu odpovídá Internet Explorer 9. Pokud chcete dostat svou aplikaci, která využívá HTML5, na Marketplace, tak nejjednodušší cesta je vytvořit nativní aplikaci, která obsahuje WebBrowser Control.

Co říct na závěr?

Zkuste to.

Štěpán