Hirdetés

WP7 blog: Fejlesztői alapozó

A mai bejegyzés rendhagyó lesz, ugyanis nem a rendszer felhasználói oldalával foglalkozunk, hanem a fejlesztők szemszögéből nézzük meg a Windows Phone 7-et. Egy amolyan kedvcsináló cikkről van szó, amely a rendszer sajátosságait és a fejlesztőeszközöket hivatott bemutatni.
A fejlesztés két vonalon futhat: az XNA keretrendszer loop alapú játékok és Xbox Live kompatibilis programok készítésére, a Silverlight pedig eseményvezérelt, leíró nyelv alapú felhasználói felülettel rendelkező alkalmazások írására használható. Érdekességként megjegyzem, hogy kis hazánkban rengetegen utaznak Silverlight-ban, a penetráció 74%-os, amely kiemelkedően magasnak mondható. Mindenesetre bármelyiket választjuk, a Microsoft felhőszolgáltatásai elérhetőek lesznek (mint a már említett Xbox Live, az Azure, valamint a pozíció- és értesítés-szolgáltatások), de külső, REST vagy WCF alapú webszolgáltatásokat is használhatunk. A mai kedvcsinálóban elsősorban a Silverlighttal foglalkozunk, az XNA-t csak említés szintjén kezeljük.

Silverlight

A Silverlight eredetileg böngészőben futó alkalmazások fejlesztéséhez készült (hasonlóan a Flash-hez), majd később kvázi a Windows Presentation Foundation csökkentett funkcionalitású keretrendszerévé avanzsálódott. Míg WPF-fel asztali alkalmazásokat fejleszthetünk Windowsra, a Silverlight egy multiplatform környezet, mivel az alkalmazásoknak többfajta böngészőben is futniuk kell. Emellett több kisebb és nagyobb eltérés is van a két platform között, a legfőbb, hogy Silverlight alatt a .NET-es CLR helyett egy úgynevezett CoreCLR runtime fordít gépi kóddá futási időben (ez a JIT, az az a Just In Time fordítás).
A Windows Phone 7 programok fejlesztésekor tisztában kell lennünk több speciális, a platformra jellemző tulajdonsággal. Az alkalmazások egy úgynevezett sandboxban futnak: egyrészt nem férnek hozzá a rendszer erőforrásaihoz, csak a Silverlight API által kiajánlott szolgáltatásokat érik el. Másrészt egy saját, Isolated Storage névre hallgató tárral rendelkeznek, amely az alkalmazás helyi beállításait, és a futás során használt fájlokat és könyvtárakat tartalmazza. Ezek védettek a többi program elől, és ugyanígy a mi alkalmazásunk sem érheti el a telefonunkon található szoftverek isolated storage-ét.

A felhasználói felületeket XAML (eXtensible Application Markup Language) nyelvben definiálhatjuk, amely egy XML-szerű deklaratív nyelv, melyben animációkat is viszonylag egyszerűen, úgynevezett forgatókönyvek segítségével definiálhatunk, a grafikai elemek pedig vektor alapon kerülnek tárolásra, így a későbbiekben nem lesz nagy munka eltérő felbontásra portolni a már létező alkalmazásunkat. Az így definiált felhasználói felületek viselkedését egy mögöttes fájlban írhatjuk le, ide már C# kód kerül, ez az úgynevezett code behind file.
A third party alkalmazások számára is elérhető a Microsoft Push Notification Service, így ahelyett, hogy a telefonunk bizonyos időnként lekérdezné a szervert, hogy van-e valamilyen új üzenet számunkra, a szerver értesíti a telefont egy aszinkron hívással, amely egyrészt csökkenti az adatforgalmat, másrészt az akkumulátort is kíméli. Az így kapott üzeneteket három módon kezelhetjük le: használhatunk élő csempéket a főoldalon (live tile), toast értesítéseket (felugró sáv a képernyő tetején), valamint saját módszert is alkalmazhatunk a felhasználó értesítésére, ekkor nyers (raw) típusról beszélünk.

Az alkalmazások életciklusa
Az alkalmazások életciklusa

Fejlesztőeszközök

A fő eszköz a Visual Studio, melynek egy ingyenes változata is létezik, ez a Visual Studio 2010 Express for Windows Phone. Egy teljes körű C# fejlesztőkörnyezetről van szó (esetünkben legalábbis, a Visual Studio ugyanis több további nyelvet is támogat), amely mellé kapunk egy grafikus UI editort, amellyel a felhasználói felületet szerkeszthetjük, de természetesen az XAML kódba is belenyúlhatunk (sőt, inkább ez javallott). Az elkészített programjainkat a Phone Emulatoron próbálhatjuk ki, amely a számítógépünkön emulálja a telefont, de persze saját készüléken is futtathatjuk az alkalmazásainkat.Ehhez viszont egy App Hub Account szükséges, ami évi 99 dollárba kerül, nélküle viszont nem is tölthetjük fel a Marketplace-re a szoftvereinket.

Az Expression Blend kimondottan felhasználói felületek tervezésére készült, segítségével . Érdekessége, hogy nem igényel programozói tudást, azaz a grafikus beállítottságúak is simán rárepülhetnek a UI gyártásra anélkül, hogy akár egy sor kódot kellene írniuk. A programmal készített munkáinkat elmenthetjük XAML formátumban, így azokat később a Visual Studióba is beimportálhatjuk.

XNA

Az XNA egy játékfejlesztéshez használható keretrendszer, amely a .NET Compact Framework 2.0-ra épül. Négy platformra elérhető, egyaránt használhatjuk Windows, Windows Phone 7, Xbox 360 és Zune HD platformokon futó játékok fejlesztéséhez is. Segítségével 2D-s és 3D-s programokat készíthetünk, shaderekkel megfűszerezve. A fejlesztés az XNA Game Studio nevű környezetben folyik, egy Visual Studio kiegészítésről van szó; az Express verzió itt is ingyenesen elérhető.
dr. Kind

Azóta történt

Előzmények

  • Minden a Windows Phone 7-ről

    Megérkezett szerkesztőségünkbe az első két Windows Phone 7-es telefon. Mindent átfogó bemutató az új operációs rendszerről.