primerjava razvoja aplikacij za windows phone 7 s ...comparison of development windows phone 7...

65
Andrej Cešek PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S SILVERLIGHT IN Z XNA GAME STUDIO Diplomsko delo Maribor, september 2011

Upload: others

Post on 23-Sep-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Andrej Cešek

PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S SILVERLIGHT IN Z

XNA GAME STUDIO

Diplomsko delo

Maribor, september 2011

Page 2: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

I

Diplomsko delo visokošolskega strokovnega študijskega programa

PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S

SILVERLIGHT IN Z XNA GAME STUDIO

Študent: Andrej Cešek

Študijski program: VS Informatika in tehnologije komuniciranja

Smer: Razvoj informacijskih sistemov

Mentor(ica): viš. pred. mag. Bonačić Davor

Somentor(ica): asist. Korelič Tomaţ

Maribor, september 2011

Page 3: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

II

Page 4: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

III

ZAHVALA

Zahvaljujem se mentorju, profesorju viš. pred.

mag. Davorju Bonačiću in somentorju asist.

Tomaţu Koreliču za pomoč in vodenje pri

opravljanju diplomskega dela.

Zahvaljujem se tudi staršem za podporo pri študiju.

Page 5: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

IV

PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S

SILVERLIGHT IN Z XNA GAME STUDIO

Ključne besede: Windows Phone 7, Silverlight, XNA, mobilna aplikacija

UDK: 621.395:004.43(043.2)

Povzetek

V diplomskem delu smo preučili in predstavili platformo Windows Phone 7 in tehnologiji

za razvoj Windows Phone 7 aplikacij. Ti tehnologiji sta Silverlight in XNA Game Studio. V

vsaki izmed njiju smo razvili eno aplikacijo na koncu podali primerjalno tabelo tehnologij.

Page 6: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

V

COMPARISON OF DEVELOPMENT WINDOWS PHONE 7

APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME

STUDIO

Key words: Windows Phone 7, Silverlight, XNA, mobile application

UDK: 621.395:004.43(043.2)

Abstract

In the thesis work we have examined and presented the Windows Phone 7 platform and

development of Windows Phone 7 applications. These technologies are Silverlight and

XNA Game Studio. We developed one application in each of technology. We made a

comparison table of both technologies at the end.

Page 7: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

VI

VSEBINA

1. UVOD .............................................................................................................. 1

2. PAMETNI TELEFONI – SMARTPHONES ......................................................... 2

3. PLATFORMA WINDOWS PHONE 7 ................................................................. 5

3.1. Osnovne značilnosti platforme ........................................................................................... 5

3.2. Strojne značilnosti Windows telefona ................................................................................ 6

3.3. Interakcija ........................................................................................................................... 7

4. TEHNOLOGIJE ZA RAZVOJ APLIKACIJ ....................................................... 10

4.1. Razvojno okolje................................................................................................................ 10

4.2. Programski jezik C# ......................................................................................................... 11

4.3. Silverlight ......................................................................................................................... 12

4.4. XNA Game Studio ........................................................................................................... 14

5. ZNAČILNOSTI WINDOWS PHONE 7 APLIKACIJ .......................................... 16

5.1. Isolated Storage ................................................................................................................ 16

5.2. Ţivljenjski cikel aplikacije – Lifecycle ............................................................................ 18

6. RAZVOJ APLIKACIJ ...................................................................................... 22

6.1. Projekt Silverlight ............................................................................................................ 22

6.2. XNA Game Studio projekt ............................................................................................... 27

6.3. Razvoj aplikacije s Silverlight .......................................................................................... 30

6.4. Razvoj aplikacije z XNA .................................................................................................. 39

7. PRIMERJAVA ................................................................................................ 44

8. ZAKLJUČEK .................................................................................................. 48

9. VIRI ............................................................................................................... 49

Page 8: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

VII

10. PRILOGE ........................................................................................................ 51

10.1. Seznam slik ...................................................................................................................... 51

10.2. Seznam preglednic ........................................................................................................... 52

10.3. Naslov študenta ................................................................................................................ 52

10.4. Kratek ţivljenjepis............................................................................................................ 52

Page 9: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

VIII

UPORABLJENE KRATICE

CLR – Common Language Runtime

CSS – Cascading Style Sheets

DOM – Document Object Model

DRM – Digital Rights Management

GPRS – General Packet Radio Service

GPS – Global Positioning System

GUI – Graphic User Interface

HTML – HyperText Markup Language

XHTML – Extensible HyperText Markup Language

MP3 – MPEG-1 Audio Layer 3

PC – Personal Computer

PDA – Personal Digital Assistant

RIA – Rich Internet Applications

SDK – Software Development Kit

SMS – Short Message Service

SQL – Simple Query Language

UI – User Interface

USB – Universal Serial Bus

WPF/E – Windows Presentation Foundation Everywhere

WMA – Windows Media Audio

WMV – Windows Media Video

WP7 – Windows Phone 7

WVGA – Wide Video Graphics Array

Page 10: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

IX

XAML – Extensible Application Markup Language

XML –Extensible Markup Language

XP – Extreme Programming

Page 11: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 1

1. UVOD

Razvoj informacijskih tehnologij je vedno bolj bliskovit in obseţen, tako da so dandanes

visoko tehnološke naprave in rešitve navzoče ţe na vsakem koraku povprečnega prebivalca

razvitega dela sveta. Ţe kar nekaj časa si ne znamo več predstavljati ţivljenja brez

mobilnih telefonov, ki jih imamo vedno pri sebi. Z leti se je seznam funkcionalnosti, ki jih

mobilni telefoni nudijo, vztrajno daljšal in vse pogosteje so se porajala vprašanja, kdaj

bodo naši mobilni telefoni prevzeli naloge, ki jih opravljajo osebni računalniki (v

nadaljevani PC-ji). Seveda se zadeve niso zgodile čez noč ampak so telefoni najprej začeli

prevzemali naloge nekaterih namenskih naprav, kot je npr. fotoaparat, MP3 predvajalnik,

radijski sprejemnik itd. Tako so mobilni telefoni postajali vse bolj multifunkcijski in zaradi

svoje mobilnosti nepogrešljivi. Vendar kljub temu, da so tudi njihove procesorske in

pomnilniške sposobnosti dosegale in presegale zmogljivosti prvih PC-jev niso imeli, ali pa

je bila zelo omejena, ene izmed najpomembnejših lastnosti, ki jo imajo PC-ji. To je bila

moţnost, da uporabnik sam nalaga aplikacije, ki jih potrebuje za opravljanje svojih

obveznosti ali krajšanje časa. Torej uporabnik mobilnega telefona je bil v precejšnji meri

omejen na aplikacije, ki so bile na telefon nameščene v sklopu proizvodnje ali pa so bile

integrirane v operacijski sitem mobilnega telefona, kar je mobilne telefone še vedno strogo

ločevalo od PC-jev. Manjkal je le še zadnji korak.

Tudi ta zadnji korak se je sedaj ţe zgodil in pohodu so pametni telefoni z sodobnimi

operacijskimi sistemi, ki omogočajo programerjem razvoj namenskih aplikacij,

uporabnikom pa nameščanje le-teh na njihove pametne mobilne telefone. S tem se je

dejansko zgodilo to, da so se zabrisale jasne sledi med tem, kaj je naloga PC-jev in kaj

mobilnih telefonov. Uporabnik mobilnega telefona si lahko sedaj na marketu poišče

aplikacijo, ki bo zadovoljila njegove potrebe in jo namesti na svoj telefon. V primeru, da

ne najde primerne aplikacije pa jo lahko razvije tudi sam, ali pa to za njega to naredi kašno

podjetje. V tej diplomski nalogi pa smo si pogledali ravno to, kako razviti aplikacijo za

operacijski sistem Windows Phone 7.

Page 12: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 2

2. PAMETNI TELEFONI – SMARTPHONES

Razliko pametnega telefona med od prenosnega telefona je teţko strogo določiti, ker

različni strokovnjaki postavljajo nekoliko različne definicije pametnega telefona. Prva

asociacija v povezavi z pametnim telefonom je telefon z zaslonom na dotik. Dejstvo pa je,

da telefon, ki ima zaslona občutljivega na dotik še ni nujno pameten telefon. Prav tako je

telefon brez zaslona občutljivega na dotik lahko pameten telefon, je pa res, da večina

pametnih telefonov ima tako imenovani ''touchscreen''.

Za pameten telefon torej ne obstaja neka splošno znana definicija, ki bi bila pogosto

uporabljena in lahko rečemo, da je definicij toliko kot je avtorjev. Seveda pa imajo vse

definicije skupne točke in to so glavne značilnosti pametnih telefonov. Največkrat

omenjene značilnosti pametnih telefonov so poleg osnovnih funkcij telefona še napreden

operacijski sitem, ki mogoča nalaganje in uporabo namensko razvitih aplikacij. Ko

dodamo stojne značilnosti, kot so razmeroma močan procesor, kamera visoke ločljivosti,

WiFi, GPS, kompas, zaslon občutljiv na dotik itd. se naš mobilni telefon spremeni v široko

uporabno orodje po meri uporabnika ali pametni telefon. Pametni telefoni so ţe popolnoma

prevzeli naloge, ki so jih včasih imeli dlančniki oz. PDA (Personal Digital Assistant), vse

bolj pa prevzemajo tudi naloge PC-jev.

Za opravljanje vseh teh zahtevnih nalog pa pametni telefoni potrebujejo pameten

operacijski sistem. Nekateri proizvajalci mobilnih telefonov razvijajo in uporabljajo svoj

lasten operacijski sistem za telefone. Ta način se je pri podjetju Apple zalo obnesel, saj

njihov operacijski sistem iOS odlično deluje na njihovem iPhone telefonu. Pri podjetju

Nokia pa z njihovim operacijskim sistemom Symbian na njihovih telefonih ne dosegajo

ţelenih rezultatov. Drugi proizvajalci se ukvarjajo samo z razvojem telefonov in vanje

nalagajo operacijske sistema razvite v podjetjih, ki se ukvarjajo z razvojem programske

opreme. Takšna operacijska sistema sta Windows Phone 7 proizvajalca Microsoft in

Android, ki je proizvod podjetja Google. Pred kratkim je podjetje Nokia podpisalo

pogodbo z Microsoft-om, tako naj bi Windows Phone 7 začel izpodrivati nekoliko

neuspešni Symbian. Vsak izmed omenjenih operacijskih sistemov za pametne telefone ima

svoje značilnosti, tako z vidika uporabnika telefona, kot tudi z vidika programerja, ki

Page 13: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 3

razvija aplikacije za pametne telefone. Primerjavo nekaterih značilnosti teh operacijskih

sistemov podajamo v Tabeli 1 [5].

Tabela 1: Primerjava ''smartphone'' operacijskih sistemov.

Operacijski sistem Windovs Phone 7

Android 2.2

iOS 4.1

Proizvajalec Microsoft Google Apple

Zaslon na dotik DA DA DA

''multitouch'' DA DA DA

Večopravilnost NE DA DA

Kopiraj-Prilepi NE DA DA

Trţnica Windows Marketplace Android Market App Store

Multimedijski

predvajalnik

DA DA DA

Spletni brskalnik IE based WP7

Browser

Android Browser iPhone Safari

Podpora za HTML5 NE DA DA

Zemljevidi Bing Maps Google Google

Podpora za Flash NE DA NE

Mobilna pisarna DA DA NE

SDK DA DA DA

Podpora za Javo NE DA NE

Page 14: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 4

Iz tabele primerjalne tabele lahko vidimo, da Windows Phone 7 na nekaterih področjih še

zaostaja za konkurentoma. Manjka mu npr. podpora za večopravilnost, kopiraj-prilepi,

Javo, HTML5, Flash itd. Vidimo tudi, da za nekatere storitve uporablja Microsoftove

rešitve. Tak primer so zemljevidi Bing, Microsoftova mobilna pisarna, spletni brskalnik, ki

temelji na Internet Explorerju, itd. Vendar Microsoft pripravlja novo različico Windows

Phone 7.5 ali Windows Phone Mango, ki bo dostopna v obliki nadgradnje in med drugim

prinaša večopravilnost, kopiraj-prilepi itd.

Page 15: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 5

3. PLATFORMA WINDOWS PHONE 7

Windows Phone 7 je mobilni operacijski sistem, ki ga je razvil Microsoft, in je naslednik

njihove platforme Windows Mobile, vendar je zgrajen popolnoma od začetka in ne temelji

na tehnologiji predhodnika. Za razliko od svojega predhodnika, je v prvi vrsti namenjen za

potrošniški trg, ne pa trgu podjetji. 21. oktobra 2010 so ga na trg poslali v Evropi,

Singapurju, Avstraliji in Novi Zelandiji. Kasneje 8. novembra 2010 v ZDA in Kanadi,

nato še v Mehiki in sicer 24. november 2010, v Aziji pa so ga dočakali v začetku leta

2011 [6].

3.1. Osnovne značilnosti platforme

Windows Phone 7 je nova Microsoftova platforma za pametne telefone, ki nima ničesar

skupnega z prejšnjo Microsoftovo platformo Windows Mobile. Predpisane ima strojne

zahteve, ki jih morajo telefoni dosegati, da so lahko Windows Phone 7 telefoni.

Microsoft ţeli z poponoma novo verzijo svojega operacijskega sistema za pametne

telefone in novim pristopom na trgu mobilnih tehnologij odpreti novo poglavje marketinga

mobilnih tehnologij. Tako kot se ţelijo oddaljiti od svojih predhodnih produktov za

mobilne tehnologije, ţelijo ponuditi trgu tudi nekaj drugačnega kot ponujajo drugi pametni

telefoni. Windows Phone 7 je standardizirana platforma, ki poenostavlja tako razvijanje,

kot tudi uporabo aplikacij na telefonih različnih proizvajalcev.

Windows Phone 7 vključuje večino funkcij, ki jih uporabniki danes pričakujejo na

mobilnih napravah. Med njih lahko štejemo storitve v oblaku, enostavno in varno

nameščanje aplikacij, eleganten sodoben uporabniški vmesnik (UI), ki podpira geste,

gladko animacijo itd. Nudi pa tudi napravo z zmogljivostmi kot so, GPS, kamera,

snemanje zvoka, zaznavanje več dotikov hkrati (multi-touch) itd. S tem je razvijalcem

omogočeno razvijanje sodobnih mobilnih aplikacij z visoko uporabno vrednostjo, ki nudijo

uporabniku bogato uporabniško izkušnjo in zadovoljstvo. Osnovni uporabniški vmesnik

operacijskega sistema Windows Phone 7 je zelo enostaven, saj ima samo dva osnovna

zaslona to sta Start Meni in seznam nameščenih aplikacij. V seznamu nameščenih aplikacij

Page 16: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 6

lahko dostopamo do nameščenih aplikacij, v Start Meni-ju pa lahko pripnemo bliţnjice do

aplikacij, ki jih pogosto uporabljamo. V Start Meni lahko pripnemo tudi tako imenovane

''Push notifications'', to so neke vrste obvestila, ki jih aplikacija lahko prejema od spletnih

storitev in jih lahko prikazuje v Start meniju. Slika 1 prikazuje videz Start menija.

Z vidika razvijalca aplikacij pa je ena izmed najpomembnejših značilnosti tega

operacijskega sistema to, da ni večopravilen, torej ne omogoča s tujko poimenovanega

''multitaskinga''. V praksi to pomeni, da v primeru, ko se izvaja neka aplikacija, in se med

tem začne izvajati neko drugo opravilo npr. dohodni klic ali aktivacija kamere, se mora

stanje prvotno izvajane aplikacije shraniti v trajni spomin telefona nato pa sistem to

aplikacijo zapre. Ko se drugo opravilo zaključi se zopet zaţene prva aplikacija in se iz

trajnega spomina naloţi shranjeno stanje aplikacije. Torej hkrati se lahko izvaja samo eden

uporabniški proces, zato mora razvijalec aplikacije poskrbeti, da se stanje aplikacije pri

preklapljanju shranjuje in ohranja. S tem mora poskrbeti, da ima uporabnik občutek

večopravilnosti torej, da ima občutek kot, da se hkrati izvaja več aplikacij.

3.2. Strojne značilnosti Windows telefona

Minimalne specifikacije telefona [2][6]:

Kapacitivni 4-točkovni ''multi-touch'' zaslon z resolucijo WVGA 800×480,

ARM v7 Cortex/Scorpion procesor,

Grafični pospeševalnik z vsaj DirectX9,

Vsaj 256 MB delovnega pomnilnika,

Vsaj 8GB flash pomnilnika,

Kamera z vsaj 5MP in LED bliskavico,

Accelerometer(merilnik pospeška) s kompasom,

Ţiroskop

Senzor svetlosti,

A-GPS

FM radijski sprejemnik

Šest namenskih gumbov (Back, Start, Search, Kamera, Vklop/Izklop, Glasnost +/-)

Page 17: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 7

Vsi Windows Phone 7 telefoni pa imajo tudi več moţnosti povezovanja, kot so 3G in

GPRS, Wireless(WiFi), Bluetooth, USB kabel. Zanimivo pa je, da Windows Phone 7

telefoni ne omogočajo razširitve pomnilniškega prostora z spominsko kartico, tako da smo

omejeni na kapaciteto ki jo ima sam telefon. Na Sliki 1 je podan primer Windows Phone 7

telefona [7].

Slika 1: Windows Phone 7 telefon.

3.3. Interakcija

Interakcija z operacijskim sistemom poteka v glavnem preko na dotik občutljivega zaslona

(touch-screen) in preko ţe prej omenjenih namenskih gumbov. Ko gre za interakcijo z

aplikacijo pa se uporablja v glavnem zaslon na dotik (touch-screen), senzor pospeška

(acceleometer), ţiroskop in strojni namenski gumb ''Back''. Senzor pospeška in ţiroskop

prideta pogosto prav pri interakciji z igrami. Zaslon na dotik ima ''multitouch'' funkcijo ki

Page 18: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 8

omogoča zaznavanje do štirih točk (prstov) hkrati, operacijski sistem pa ima podporo za

prepoznavanje kretenj, s katerimi lahko upravljamo naše aplikacije. Kretnje prikazuje

Tabela 2 [8]. Na zaslonu pa lahko uporabljamo tudi programsko tipkovnico (On-screen

keyboard). Programska tipkovnica lahko prikaţe različne nabore tipk, ti pa so tematsko

organizirani tako, da imamo na razpolago tiste znake, ki jih za določeno opravilo najbolj

potrebujemo. Privzeti nabor znakov tipkovnice je QWERTZ z naborom črk abecede. Če

ţelimo tipkovnico z črkami pritisnemo gumb ''&123'', ki se nahaja na tipkovnici spodaj

levo. Programsko pa jo lahko med izvajanem naše aplikacije nastavimo na Default, Text,

Digits, Web in Email Adress. Vsaka od teh moţnosti ima specifičen nabor znakov.

Tabela 2: Kretnje po zaslonu.

Naziv Kretnja Rezultat

Press/

Pritisk

Odpre ali zaţene kar

uporabnik pritisne.

Duble tap/

Dvojni pritisk

Povečava +/- izbranega

področja vsebine.

Press & hold/

Pritisni in drţi

Odpre priročni meni

(context menu).

Pan/

Premik

Pomikanje preko

zaslonov ali preko menija

z drsnikom.

Page 19: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 9

Flick/

Hiter premik

Hitro pomikanje preko

menijev ali strani.

Pinch &

stretsch/

Izberi &

raztegni

Postopna povečava +/-.

Page 20: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 10

4. TEHNOLOGIJE ZA RAZVOJ APLIKACIJ

4.1. Razvojno okolje

Razvojno okolje za razvoj Windows Phone 7 aplikacij Windows Phone SDK si lahko v

eni sami instalacijski datoteki brezplačno prenesemo iz spletne strani Microsoft Download

Center [9]. Razvojno okolje vsebuje Visual Studio 2010 Express, Emulator Windows

Phone, Silverlight 4 Tools, XNA Game Studio, Expression Blend za Windows Phone,

vzorce in dokumentacijo. Če je Visual Studio 2010 Professional ali novejši ţe nameščen na

računalniku, se v sklopu instalacije razvojnega okolja ne namesti Visaual Studio 2010

Express, ampak se v Visual Studio 2010 Profesional namestijo dodatki potrebni za razvoj

Windows Phone 7 aplikacij.

Sistemske zahteve za namestitev Windows Phone SDK [9]:

Windows 7 (razen Starter Edition) ali Windows Vista z Service Pack 2 (razen

Starter Edition),

4GB prostora na disku,

3GB pomnilnika,

Grafična kartica z DirectX 10 ali več.

Microsoft Visual Studio

Microsoft Visual Studio [10] je integrirano razvojno okolje (IDE) podjetja Microsoft.

Uporablja se za razvoj konzolnih aplikacij, okenskih aplikacij z okenskim uporabniškim

vmesnikom, Windows Phone 7 aplikacij, spletnih strani, spletnih aplikacij, spletnih storitev

itd. za vse Microsoft platforme npr. Windows, Windows Mobile, Windows Phone 7 itd.

Visual Studio vključuje urejevalnik kode, ki med drugim podpira samodejno zaključevanje

besed (IntelliSense ali autocomplete) in samodejno generiranje delov kode (code

refactoring) npr: metode, lastnosti itd. Visual Studio ima integriran razhroščevalnik za

Page 21: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 11

iskanje napak, ki deluje na ravni izvorne kode in na strojni ravni. Razhroščevalnik se

uporablja za testiranje in odpravljanje napak, na aplikacijah. Druga vgrajena orodja so

''forms designer'' za gradnjo GUI okenskih aplikacij, spletni oblikovalec, oblikovalec

razredov, in oblikovalec sheme baze. Omogočeno je dodajanje vtičnikov, ki povečujejo

funkcionalnost na skoraj vseh ravneh, vključno z dodajanjem podpore za ''source-control''

sisteme (kot sta Subversion in Visual SourceSafe), ki se uporabljajo pri delu v skupinah.

Tudi orodja za razvoj Windows Phone 7 aplikacij (Windows Phone Developer Tools) so

paket orodji, ki jih v Visual Studio namestimo naknadno.

Visual Studio vsebuje različne programske jezike, ki imajo podporo za urejevalnik kode in

razhroščevalnik. Vgrajeni jeziki so Visual C++, Visual Basic .NET, Visual C# in od

Visual Studio 2010 tudi F#. Podpira tudi druge jezike, kot so Python, Ruby in so na voljo

preko posebej nameščene jezikovne storitve. Prav tako so podprte tehnologije XML/XSLT,

HTML/XHTML, JavaScript in CSS.

Na razpolago je brezplačna izdaja ''Visual Studio 2010 Express'' pri kateri nam je na

razpolago le en jezik, izberemo pa ga ob prvem zagonu. Na razpolago imamo:Visual Basic

Express, Visual C++ Express, Visual C# Express, Visual Web Developer Express, Express

for Windows Phone. Študentje pa si lahko preko Microsoft DreamSpark programa

brezplačno prenesejo tudi ''Professional'' izdaje Visual Studia.

4.2. Programski jezik C#

Programski jezik C Sharp ali C# je jezik za pisanje programske kode pri razvoju aplikacij

za Windows Phone 7.

Programski jezik C# izhaja iz programskega jezika C, ima pa lastnosti, ki jih C nima [11].

Takšna je na primer zbiranje smeti, ki omogočajo začetnikom, da postanejo učinkoviti v

C# hitreje kot v C ali C++. Podobno kot Java, je objektno orientiran programski jezik, ima

obseţno knjiţnico razredov, podpira obravnavo izjem(exception handling), podpira

polimorfizem in ločevanje uporabniškega vmesnika od implementacije. C# je z

omenjenimi funkcijami, v povezavi z močnimi razvojnimi orodji in z ''multi-platform''

podporo ter z ''generics'' dobra izbira za razne vrste razvoja programske opreme. Primeren

je pri projektih hitrega razvoja aplikacij, pri projektih, ki jih izvajajo posamezniki, velike

Page 22: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 12

ali majhne skupine in tudi za razvoj internetnih aplikacij, in projektov s strogimi zahtevami

glede zanesljivosti. Ogrodja za testiranje, kot je NUnit omogočajo ''test-driven'' razvoj in s

tem dober programski jezik za uporabo pri ''Extreme Programing - XP'' metodologiji

razvoja. C# je ''strong typing'' programski jezik, kar pomeni, da ima vnaprej definirane

podatkovne tipe in ter moţnosti in omejitve dela z njimi. To pomaga preprečevati številne

napake v kodi, ki so pogoste pri ''weakly typed'' programskih jezikih.

C# (kot tudi ostali. NET jeziki) ima velik del funkcionalnosti iz skupnega .NET

Framework ogrodja, ki ponuja velik nabor razredov, vključno s tistimi za enkripcijo,

TCP/IP, grafiko itd. Razvijalci lahko tako napišejo del aplikacije v C# in drugi del v

katerem drugem .NET jeziku (npr. VB. NET), ogrodje .NET pa bo poskrbelo, se bo

aplikacija pravilno prevedla.

Jezik C# ima veliko podobnosti z ostalimi jeziki, ki temeljijo na jeziku C, med drugimi je

to tudi Java. Zato razvijalec, ki ima izkušnje z objektno orientiranim razvojem v jezikih kot

je C++, ne bo imel velikih teţav z strukturo in sintakso jezika C#.

4.3. Silverlight

Ena izmed dveh tehnologij za razvoj Windows Phone 7 aplikacij je Microsoft Silverlight

[12]. V osnovi je Silverlight ogrodje za razvoj in izvajanje bogatih spletnih aplikacij (RIA-

Rich Internet Aplication), ki imajo podobne značilnostmi, kot jih imajo tiste, ki so izdelane

Adobe Flash tehnologijo. Izvajalno okolje je na voljo kot vtičnik za večino spletnih

brskalnikov. Pri razvoji WP7 aplikacij se uporablja modificirana oblika tehnologije

Silverlight in sicer verzija Silverlight 3. Silverlight je od prve različice leta 2007 do danes

doţivel ţe precej posodobitev:

Silverlight 1: Razvit je bil v okviru Windows Presentation Foundation/Everywhere

(WPF/E) in je izšel leta 2007. Ogrodje je skrbelo za uporabniški vmesnik,

interaktivnost, grafiko, animacijo, predvajanje multimedijskih vsebin, DRM

(Digital Rights Managment) in DOM.

Silverlight 2: Vsebuje verzijo .NET Framework s podporo za CLR in .NET

Framework 3.0 zato lahko izvaja programe napisane v .NET jezikih.

Page 23: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 13

Silverlight 3: Izšel je leta 2009. Imel je razširjen nabor uporabniških kontrol. To je

verzija, ki se uporablja pri implementaciji WP7 aplikacij.

Silverlight 4: Izšel je leta 2010. Dodana podpora za spletni brskalnik Chrome,

spletno kamero in mikrofon, tiskanje, večja je podpora za miško. Dodane so tudi

nove kontrole, npr. ''RichTextBox'' in ''DataGrid''.

Silevrlight 5: Še v pripravi. Napovedana podpora za 3D grafiko, oddaljeni dostop,

64-bitna podpora itd.

Silverlight ima podoben grafični sistem, kot Windows Presentation Fundation in zdruţuje

multimedijo, grafiko, animacije in interaktivnost v eno tehnologijo. Uporabniški vmesnik

Silverlight aplikacije je definiran v Extensible Application Markup Leanguage (XAML),

programska logika pa je napisana v poddatotekah. XAML lahko uporabljamo tudi za zapis

vektorske grafike in animacij. Z tehnologijo Siverlight lahko naredimo tudi ''gadget'' za

Windows Visto ali Windows 7. Silverlight podpira H.246 video, Advanced Avdio Coding,

WMV, WMA, MP3 multimedijske vsebine v vseh podprtih brskalnikih brez nameščenih

vtičnikov, kot je Windows Media Player in podobni.

Sintaksa

WP7 Silverlight aplikacija je v glavnem zgrajena iz XAML, kjer je definiran uporabniški

vmesnik in iz tako imenovane ''Code-Behind'' kode v ''.cs'' datotekah,. XAML se torej

uporablja za definiranje vizualnih elementov aplikacije. ''Code Behind'' koda pa se

uporablja za upravljanje z dogodki, ki se proţijo ob interakciji preko kontrol

uporabniškega vmesnika ali pa se proţijo na podlagi procesiranja uporabniških vnosov.

Večina opravil kreiranja objekta in inicializacije v XAML se izvede v konstruktorju strani.

Na prvi pogled mogoče izgleda, da je XAML zgolj skromen del celotne aplikacije, vendar

to še zdaleč ne drţi. XAML je popolnoma regularen XML in s tem ga je omogočeno, da ga

lahko bere in pišemo programsko ali ročno.

Osnovna naloga XAML je kreiranje in inicializacija objekta, vendar ima tudi druge

lastnosti, ki zagotavljajo veliko več kot zgolj inicializacijo. Ena izmed teh lastnosti je

''data binding'', ki definira povezavo med uporabniškimi kontrolami in podatki tako, da se

podatki v kontroli samodejno posodabljajo, brez dodatnega programiranja dogodkov. Prav

Page 24: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 14

tako lahko v XAML definiramo celotne animacije. Čeprav je včasih obravnavan kot

deskriptivni programski jezik, XAML ni polni programski jezik, saj ne more dinamično

kreirati objektov.

Vsa kar naredimo v Silverlight tehnologiji je mogoče razdeliti v tri kategorije:

Stvari, ki so izvedljive tako v XAML kot v kodi,

Stvari, ki jih lahko naredimo samo v kodi (event handling in metode),

Stvari, ki jih lahko naredimo samo v XAML (predloge - templates).

V XAML in v kodi lahko definiramo razrede in strukture, ter nastavimo lastnosti njihovih

objektov. Razred ali struktura definiran v XAML, mora biti definiran kot public in mora

imeti konstruktor brez parametrov, ker XAML ob inicializaciji razreda ne more poslati

parametrov njegovemu konstruktorju. V XAML lahko posamezen dogodek poveţemo na

event handler, ta pa mora biti definiran v kodi. V XAML ni mogoče izvesti klica metode,

ker metodi ni mogoče poslati argumentov. Skoraj vse Silverlight aplikacije lahko pišemo

samo v kodi, ampak navigacija po razredih, ki izhajajo iz razreda PhoneApplicationPage,

temelji na XAML datoteki. Znotraj razreda PhoneApplicationPage definiramo predloge

(templates), ki jih uporabljamo za prikaz podatkov s pomočjo kontrol.

Za oblikovanje uporabniškega vmesnika Silverlight aplikacij lahko uporabljamo tudi

namenska dizajnerska orodja, kot je na primer Expression Blend, ki generira XAML

datoteko vmesnika, ki ga oblikujemo v grafičnem okolju. Vendar pa je dobro, da se

naučimo XAML pisati ročno, saj je za programerja zelo priročno, da zna brati XAML, ki

ga generirajo dizajnerski programi. V Visual Studiu lahko odlično eksperimentiramo z

XAML, saj se izgled v dizajnerju dinamično spreminja glede na spremembe, ki jih

naredimo v XAML. Pri nekaterih zapletenih primerih pa je potrebno aplikacijo prevesti in

zagnati, da vidimo rezultat naše spremembe v XAML.

4.4. XNA Game Studio

Microsoft XNA je nabor orodji z Microsoftovim upravljanim izvajalnim okoljem, ki

omogoča razvoj video iger. XNA nabor orodji je bil prvič omenjen leta 2004 na ''Game

Page 25: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 15

Developers Conference'' v San Jose, Kalifornija. Prva izdaja je bila marca 2006, XNA

Game Studio 2.0 je izšel decembra 2007, XNA Game Studio 3.0 oktobra 2008 in zadnja

verzija XNA Game Studio 4.0, ki je aktualna verzija je izšla septembra 2010, skupaj z

''Windows Phone 7 Development Tools''. Ime XNA izvira iz razvojnega projekta ''Xbox

New Arhitecture''.

XNA Game Studio 4.0 je razvojno okolje, ki omogoča uporabo Visual Studia za razvoj

video iger za Windows Phone 7, igralno konzolo Xbox 360, Zune predvajalnike in

Windows PC-je. XNA Game Studio vsebuje XNA Framework, ki je set upravljanih

knjiţnic oblikovanih za razvoj iger in temelji na Microsoft .NET Framework 2.0 [13].

XNA Framework ogrodje, kot je bilo rečeno, temelji na .NET Framework 2.0 in vsebuje

obseţen nabor knjiţnic z razredi, ki so specifični za razvoj iger, da bi dosegli, kar se da

pogosto ponovno uporabo kode na vseh platformah, za katere lahko razvijamo z XNA

Game Studio. Da je doseţeno upravljano izvajalno okolje, ogrodje deluje na različici CLR-

ja (Common Language Runtime), ki je optimizirana za igre. Izvajalno okolje je na voljo za

Windows XP, Windows Vista, Windows 7, Windovs Phone 7, Xbox 360 in Zune. Ker so

XNA igre napisane za izvajalno okolje, jih lahko z minimalnimi ali celo brez popravkov

igramo na katerikoli platformi, ki podpira XNA Framework. Tako, bi teoretično lahko

napisali igro v kateremkoli .NET programskem jeziku in bi igra morala delovati. Vendar v

tem primeru to ne drţi, saj je uradno podprt samo programski jezik C#. Pri kodiranju iger

poskrbi ogrodje XNA Framework za tehnične podrobnosti, ki zagotavljajo, da se igre lahko

izvajajo na različnih platformah. S tem, ko ogrodje poskrbi za nemoten prenos igre iz ene

platforme na drugo je razvijalcem prihranjenega veliko truda, ki ga lahko vloţijo v

izdelavo kvalitetne uporabniške izkušnje. XNA Framework podpira 2D in 3D igre in

omogoča delo z mnogimi orodji kot je npr. Cross-platform Audio Creation Tool (XACT).

Page 26: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 16

5. ZNAČILNOSTI WINDOWS PHONE 7 APLIKACIJ

Pri razvoju aplikacij za platformo Windows Phone 7 moramo upoštevati nekatere

pomembne lastnosti omenjene platforme. V tem poglavju bomo obdelali nekatere

najpomembnejše.

5.1. Isolated Storage

Slika 2: Isolated storage

Vsaka aplikacija, ki je nameščena na Windows Phone 7, ima dostop do lastnega mesta v

pomnilniku za trajno hranjenje podatkov, ki mu pravimo ''isolated storage'' [14]. Vsaka

aplikacija ima svoj ''isolated storage'', ki je popolnoma izoliran od ostalih aplikacij. Tako

ne morejo ostale aplikacije priti do podatkov naše aplikacije in prav tako naša aplikacija

nima dostopa do podatkov, ki so jih shranile druge aplikacije. V ''isolated sorage'' lahko

Page 27: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 17

shranjujemo tako datoteke kot mape, lahko pa izdelamo tudi hierarhično strukturo map.

Omeniti velja, da za shranjevanje podatkov lahko uporabimo tudi serializacijo. Aplikacija

dostopa do podatkov s pomočjo razredov, ki se nahajajo v imenskem prostoru ''System.IO''

in ''System.IO.IsolatedStorage''. Razrede imenskega prostora ''System.IO.IsolatedStorage''

prikazuje Tabela 3 [15]. Glede na tip podatka, ki ga ţelimo shraniti lahko ''isolated storage''

uporabimo na sledeče načine:

Settings (Nastavitve): Shranjuje pare ključ/vrednost. Za takšno shranjevanje

uporabimo razred ''IsolatedStoregeSetting''.

Files and folders (Datoteke in mape): Shranjuje datoteke in mape. Za ta takšen

način shranjevanja potrebujemo razreda ''IsolatedStorageFile '' in

''IsolatedStorageFileStream''.

Relational data (Relacijska baza): Shranjuje podatke v relacijsko podatkovno bazo z

uporabo ''LINQ to SQL''.

Tabela 3: Razredi imenskega prostora "System.IO.IsolatedStorage".

Razredi Opis

IsolatedStorageException Izjema se sproži, ko je operacija v ''Isolated Storage''

neuspešna.

IsolatedStorageFile Predstavlja ''Isolated Storge'', ki vsebuje detoteke in

mape.

IsolatedStorageFileStream Podatkovni tok za datoteke v ''Isolated Storage''.

IsolatedStorageSettings

Objekt, ki deluje kot podatkovna struktura

Dictionary(Of TKey, TValue) in shranjuje podatke v

''Isolated Storge''

Isolated Storage Explorer je orodje, ki nam omogoča, da preverimo ali so se naše datoteke

shranile na pravo mesto s pravilnimi podatki. Datoteke in mape, ki so shranjene v ''Isolated

storage'' lahko pregledujemo, kopiramo, premikam. Isolated Storage Explorer pa ne

Page 28: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 18

omogoča dostopanje do podatkov shranjenih v razredu ''IsolatedStorageSettings''.

Uporabljamo ga lahko za preverjanje podatkov na telefonu ali na emulatorju, vendar pa se

moramo zavedati, da se vsi podatki shranjeni v emulatorju izgubijo, ko emulator zapremo.

Torej je ob zagonu emulatorja njegov ''Isolated storage'' popolnoma prazen.

Med drugim pa Windows Phone 7 omogoča tudi shranjevanje strukturiranih podatkov v

lokalno podatkovno bazo. Podatkovna baza se v obliki datoteke nahaja v ''Isolated storage''.

Za definiranje sheme PB, branje podatkov iz nje in shranjevanje sprememb uporabljajo

WP7 aplikacije ''LINQ to SQL''.

5.2. Življenjski cikel aplikacije – Lifecycle

Model ţivljenja aplikacije na Windows Phone 7 zajema celoten cikel, od dogodka, ko

aplikacijo zaţenemo, pa do dogodka, ko jo ubijemo. Izvajalni model aplikacije je

oblikovan tako, da omogoča hitro odzivanje v vsakem trenutku. To je doseţeno s tem, da

operacijski sistem izvaja samo eno aplikacijo hkrati. Tako se izognemo moţnosti, da bi

naprava delovala počasi ali, da se ne bi odzivala zaradi izvajanja druge aplikacije v ozadju.

Izvajalni model lahko vidimo na Sliki 3 [16].

Slika 3: Ţivljenjski cikel Windoes Phone 7 aplikacije

''Tombstoning'' je ena izmed posebnosti izvajalnega cikla aplikacije na Windows Phone 7

platformi. ''Tombstoning'' je postopek pri katerem operacijski sistem deaktivira proces

izvajane aplikacije v primeru, ko se začne izvajati neka druga aplikacija ali opravilo.

Page 29: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 19

Operacijski sistem pri tem postopku shrani vse podatke o trenutnem stanju aplikacije.

Aplikacija je tedaj v stanju ''Tombstoned''. Ko aplikacijo ponovno aktiviramo, operacijski

sistem ponovno zaţene proces aplikacije, in aplikaciji nastavi shranjene podatke o stanju

aplikacije pred deaktivacijo.

Izvajalni cikel aplikacije zajema štiri dogodke na podlagi katerih aplikacija prehaja med

stanji:

Launching:

Aplikacijo lahko zaţenem iz seznama aplikacij, iz start zaslona ali pa iz seznama

nameščenih aplikacij. Ob vsakem od omenjenih načinov se kreira nova instanca

aplikacije in aplikacija se začne izvajati. Tedaj se sproţi dogodek ''Launching''. Znotraj

tega dogodka nastavimo aplikaciji podatke, ki jih potrebuje za izvajanje. Od trenutka,

ko se sproţi dogodek ''Launching'' pa do trenutka, ko je aplikacija aktivna in prikazana

na zaslonu se izvajajo časovno zelo potratna opravila, kot je dostopanje do podatkov

shranjenih v ''Isolated storage''. Takšna opravila lahko močno pokvarijo uporabniško

izkušnjo, če občutno podaljšajo čas zagona aplikacije, zato se je dobro ob dogodku

''Launching'' takšna opravila omejiti na minimalno raven.

Closing:

Dogodek ''Closing'' se sproţi v primeru, ko uporabnik se uporabnik nahaja na začetni

strani aplikacije in pritisne strojni gumb naprave Back. Takrat mora aplikacija svoje

trajne podatke shraniti v ''Isoalted storage''. Običajno pa ob tem dogodku ne shranjuje

svojih trenutnih podatkov ali podatkov pripadajočih samo aktualni instanci aplikacije,

ker se po dogodku ''Closing'', ob ponovnem zagonu aplikacije proţi dogodek

''Launching'', ta pa kreira popolnoma novo instanco naše aplikacije.

Deactivating:

Ko se naša aplikacija izvaja in jo nadomesti neka druga, se na prvi aplikaciji sproţi

dogodek ''deactivating''. Obstaja več načinov, kako se ta dogodek sproţi. Lahko se

sproţimo s tem, da pritisnemo tipko Start ali pa se sproţi, ko se zaradi neaktivnosti

uporabnika zaslon zaklene. Aplikacijo se lahko deaktivira tako imenovani ''Louncher''

ali ''Chooser''. To so privzete aplikacije, ki uporabniku omogočajo izvajanje osnovnih

Page 30: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 20

opravil, kot je klicanje, fotografiranje ali pošiljanje elektronske pošte. To so primeri,

ko se sproţi dogodek za deaktiviranje naše aplikacije, ko se aplikacija zapre na način,

da preide v stanje ''Tombstoned''. Torej je aplikacija zaprta, vendar je operacijski

sistem shranil vse podatke o stanju aplikacije. Zelo pogosto je, da se uporabniki vrnejo

v aplikacijo, in takrat so sproţi dogodek ''activating''.

Pri deaktivaciji mora aplikacija shraniti podatke o svojem trenutnem stanju v razred

''PhoneApplicationService'', natančneje v lastnost ''State''. Podatki shranjeni v lastnosti

''State'' so organizirani v strukturi ''Dictionary'' in omogočajo, da se aplikacija ob

aktivaciji povrne v stanje pred deaktivacijo. Seveda pa ni nobene garancije, da bo

deaktivirana aplikacija, ki je v stanju ''Tumbstoned'' sploh kdaj ativirana, zato mora

aplikacija shraniti podatke tudi v ''Isolated storage''. Ves postopek deaktivacije pa

mora biti končan v 10 sekundah, sicer operacijski sitem v trenutku ubije proces

aplikacije. Zato je dobro, da aplikacije, ki shranjujejo večje količine podatkov,

opravljajo postopek shranjevanja ţe med samim izvajanjem aplikacije.

Seznam nekaerih opravil, ki povzročijo deaktivacijo aplikacije:

WebBrowserTask: Omogoča aplikaciji, da zaţene spletni brskalnik.

MarketplaceDetailTask: Omogoča aplikaciji, da prikaţe podrobne podatke

za izbrani produkt na ''Windows Phone Marketplace''.

MarketplaceHubTask: Omogoča aplikaciji, da zaţene aplikacijo ''Windows

Phone Marketplace client''.

SaveEmailAdressTask: Omogoča aplikaciji, da shrani naslov elektronske

pošte v obstoječi ali nov kontakt.

SavePhoneNumberTask: Omogoča aplikaciji, da shrani telefonsko številko

v obstoječi ali nov kontakt.

SearchTask: Omogoča aplikaciji, da zaţene aplikacijo ''Web Search''.

SmsComposeTask: Zaţene aplikacijo za pošiljanje SMS sporočil.

Page 31: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 21

PhotoChooserTask: Omogoča aplikaciji, da zaţene aplikacijo ''Photo

Chooser'', ki omogoča izbiro shranjene slike.

CameraCaptureTask: Omogoča aplikaciji, da zaţene aplikacijo ''Camera'', ki

omogoča, da posnamemo novo sliko.

MediaPlayerLauncer: Omogoča aplikaciji, da zaţene multimedijski

predvajalnik.

EmailAdrdressChooserTask: Omogoča aplikaciji, da zaţene aplikacijo

''Contacts'', ki omogoča, izberemo naslov elektronske pošte shranjenega

kontakta.

PhoneNumberChooserTask: Omogoča aplikaciji, da zaţene aplikacijo

''Contacts'', ki omogoča, izberemo telefonsko številko shranjenega kontakta.

Itd.

Activating:

Ko je aplikacija deaktivirana in se nahaja v stanju ''Tombstoned'' se pogosto zgodi, da

je ponovno aktivirana. Aplikacijo lahko ponovno aktiviramo tako, da jo izberemo iz

zaslona start ali iz seznama aplikacij, kot da jo zaganjamo prvič. Ko je za deaktivacijo

aplikacije odgovoren ''Launcher'' ali ''Chooser'' se po končanem izvajanju ''Launcherja''

ali ''Choserja'' ponovno vrnemo v našo aplikacijo, ki je tedaj v stanju ''Tombstoned''.

Ko se zgodi ta situacija, se aplikacija ponovno aktivira, torej se sproţi dogodek

''activated''. Ob tem dogodku se mora aplikacija povrniti v stanje pred deaktivacijo.

Podatke o stanju prenese iz razreda ''PhoneApplicationSevice''. Pri postopku aktivacije

je dobro, da aplikacija ne dostopa do podatkov v ''Isolated storage'' ali pa vsaj

minimalno, ker to lahko upočasni proces aktivacije.

Poznavanje zakonitosti izvajalnega modela je nujno za zagotavljanje doslednega izvajanja

naših aplikacij in za zagotavljanje dobre uporabniške izkušnje.

Page 32: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 22

6. RAZVOJ APLIKACIJ

V sklopu diplomskega dela smo razvili dve aplikaciji za Windows Phone 7. Prvo smo

razvili s tehnologijo Silverlight, drugo pa s tehnologijo XNA Game studio. Sprva je bila

ideja, da bi v obeh tehnologijah razvili enako aplikacijo, saj bi tako najbolje zadostili

besedi ''primerjava'' vendar, bi s tem zgrešili bistvo obstoja dveh tehnologij za razvoj

Windows Phone 7 aplikacij. Vsaka izmed omenjenih tehnologij pokriva svoj segment

aplikacij, kar pomeni, da je tipično Silverlight aplikacijo praktično nemogoče (ali pa z

neprimerljivo več dela in programske kode) razviti v XNA tehnologiji in obratno. Zato

smo se odločili, da ni smiselno razvijati neke aplikacije s tehnologijo, ki v praksi ne bi bila

uporabljena za njen razvoj. S Silverlight tehnologijo se razvijajo klasične aplikacije, z

tehnologijo XNA pa predvsem igre. Tako smo razvili dve različni aplikaciji, eno tipično za

tehnologijo Silverlight in drugo tipično za tehnologijo XNA Game Studio. Le na tak način

smo lahko zajeli bistvo tega, kar nam ponuja vsaka izmed dveh tehnologij.

V nadaljevanju bomo najprej predstavili, kako izgledata in kaj vsebujeta projekta obeh

tehnologij, ki ju za nas izdela razvojno okolje Visual Studio 2010. Nato bomo predstavili

naši dve aplikaciji in skozi njun razvoj podrobneje predstavili obe tehnologiji.

6.1. Projekt Silverlight

Ko kreiramo nov projekt ''Silverlight for Windows Phone'', imamo na izbiro pet različnih

predlog, ki se v glavnem razlikujejo glede na izgled in funkcionalnost prve strani naše

aplikacije. Moţne izbire smo prikazali na Sliki 4 in so naslednje:

Windows Phone Application: Izdela nam nov projekt z prazno prvo stranjo.

Windows Phone Data Bound Application: Izdela nam nov projekt, ki vsebuje in

stran z ''ListBox'' kontrolo, ki vsebuje elemente za navigacijo na nove strani in je

primerna za glavni meni.

Windows Phone Class Library: Nima uporabniškega vmesnika, z njim lahko

izdelamo lastno knjiţnico in jo uporabimo v ostalih aplikacijah.

Page 33: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 23

Windows Phone Panorama Application: Je projekt, ki ima prvo stran z ''Panorama''

kontrolo.

Windows Phone Pivot Application: Je projekt, ki ima prvo stran z ''Pivot'' kontrolo.

Slika 4: Predloge pri kreiranju novega Silverlight projekta.

Če smo za novi projekt izbrali predlogo ''Windows Phone Application'' nam razvojno

okolje izdela nov projekt, njegovo zgradbo pa prikazuje ''Solution Explorer'' na Sliki 5.

Slika 5: Solution Explorer Silverlight aplikacijie generirane iz predloge.

Page 34: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 24

Kot prikazuje Slika 5 je osnovni projekt pri razvoju Silverlight aplikacij sestavljen iz:

Properties\AppManifest.xml: Datoteka, je potrebna za izdelavo app paketa.

Properties\AssemblyInfo.cs: Vsebuje metapodatke o verziji in imenu za assembly.

Properties\WMAppManifest.xml: Vsebuje metapodatke o aplikaciji npr: ime,

ikona, itd

References: Seznam knjiţnic, ki jih aplikacija uporablja za delovanje.

App.xaml / App.xaml.cs: Definira vstopno točko aplikacije, inicializira vire,

prikaţe uporabniški vmesnik.

MainPage.xaml / MainPage.xaml.cs: Definira stran z njenim uporabniškim

vmesnikom.

ApplicationIcon.png: Ikona, ki prikazuje aplikacijo v seznamu aplikacij na telefonu.

Background.png: Ikona, ki prikazuje aplikacijo na start zaslonu na telefonu.

SplashScreenImage.jpg: To je slika, ki se prikaţe na zaslonu, ko se aplikacija

zaganja. Uporabniku da vedeti, da je aplikacijo zagnal in da se nalaga.

App.xaml datoteka vsebuje korensko značko ''Application'' znotraj nje pa se nahaja

''Application.Resources'' v kateri lahko določimo vire, ki jih aplikacija uporablja npr.

barve, stili, itd. V App.xaml datoteki je inicalizirana tudi lastnost

''ApplicationLifetimeObjects'', ki vsebuje ''PhoneApplicationService''. Razred

''PhoneApplicationService'' pa omogoča, dostop do ţivljenjskega cikla aplikacije. To

prinaša moţnost upravljanja obnašanja aplikacije, ko le ta prehaja med stanji npr. aktivna,

neaktivna. App.xaml prikazuje Slika 6.

App.xaml.cs je datoteka, ki vsebuje ''code-behind'' datoteke App.xaml. V tej datoteki se

nahaja konstruktor razreda ''App'', vidimo tudi, da razred ''App'' deduje od razreda

''Application''. Razred ţe v konstruktorju definira ''handler'' za dogodek

''UnhandledException''. Znotraj tega razreda so definirane tudi metode, ki se izvedejo ob

Page 35: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 25

prehajanju aplikacije iz enega stanja v drugega. Ti dogodki so ''Launching'', ''Closing'',

''Activated'' in ''Deactivated''. V znotraj teh metod torej poskrbimo, da se naši podatki ob

zapiranju ali deaktiviranju aplikacije shranijo in ob zaganjanju ali aktivaciji ponovno

naloţijo. Omenjene metode so prikazane spodaj.

private void Application_Launching(object sender, LaunchingEventArgs e) { } private void Application_Activated(object sender, ActivatedEventArgs e) { } private void Application_Deactivated(object sender, DeactivatedEventArgs e) { } private void Application_Closing(object sender, ClosingEventArgs e) { }

Slika 6: Datoteka App.xaml.

MainPage.xaml datoteka definira uporabniški vmesnik prve strani aplikacije. Okolje samo

generira osnovni uporabniški vmesnik ostale elemente pa moramo dodati sami z pisanjem

kode ali pa z načinom povleci in spusti iz ''ToolBox''. Pri oblikovanju uporabniškega

vmesnika imamo na razpolago tri poglede, ki nam omogočajo, da lahko vidimo samo

XAML kodo, samo grafični izgled ali pa kombiniran pogled. Uporabniški vmesnik lahko

urejamo, tako z pisanjem XAML kode, kot tudi z spreminjanjem v grafičnem pogledu. Če

Page 36: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 26

spreminjamo kodo, se sproti samodejno spreminja grafični prikaz. Če spreminjamo

grafični prikaz pa se sproti aţurira XAML koda tako, da sta oba pogleda vedno aţurirana.

Ko gradimo uporabniški vmesnik, se elementi gnezdijo drug v drugega in moramo skrbeti,

da ohranjamo lepo ''xml'' strukturo. Torej, da so vsi elementi zaključeni, sicer se nam

projekt ne bo prevedel. Na značke elementov dodajamo oblikovne lastnosti npr. barva,

dimenzije itd. in dogodke s katerimi nato definiramo obnašanje naše aplikacije. Metode, ki

se izvedejo ob dogodkih definiranih na elementih uporabniškega vmesnika, zapišemo v

''MainPage.xaml.cs''. Na koncu datoteke, pred zaključkom korenskega elementa lahko

vidimo pripravljeno kodo orodne vrstice, ki je zavita v komentar, vendar jo lahko

aktiviramo zgolj s tem, da jo od-komentiramo. Predlogo orodne vrstice prikazuje Slika 7.

Slika 7: Pripravljena orodna vrstica

MainPage.xaml.cs datoteka definira razred MainPage in skrbi za obnašanje in logiko

našega uporabniškega vmesnika, definiranega v ''MainPage.xaml''. Ko nam okolje naredi

novi projekt je v tem razredu edina metoda konstruktor, ker na elementih uporabniškega

vmesnika še ni definiranih nobenih dogodkov. Ko pa definiramo dogodke na elementih

uporabniškega vmesnika, se metode za upravljanje s temi dogodki dodajajo v razred

''MainPage''. V datoteki ''MainPage.xaml.cs'' lahko vidimo, da razred ''MainPage'' deduje

od razreda ''PhoneApplicationPage''.

Page 37: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 27

6.2. XNA Game Studio projekt

Ko kreiramo nov projekt XNA Game Studio 4.0 imamo na izbiro več različnih

predlog(Slika 8), vendar za WP7 pridejo v obzir zgolj dve:

Windows Phone Game (4.0): Izdela nam XNA Faramework projekt za Windows

Phone igro.

Windows Phone Game Library (4.0): Izdela nam projekt za izdelavo lastne

knjiţnice razredov, ki jo lahko uporabimo pri svojih igrah. Projekt ne vsebuje

razreda z metodo za risanje na zaslon.

Slika 8: Predlogi pri kreiranju novega projekta XNA Game Studio

Če ţelimo izdelati delujočo igro za WP7 moramo izbrati predlogo ''Windows Phone Game

(4.0)'' in razvojno okolje nam za razliko od Silverlight projekta, izdela dva nova projekta.

To sta ''WindowsPhoneGame1'' in ''WindowsPhoneGame1Content'', ki spadata v skupni

''Solution''. Celotno strukturo prikazuje ''Solution Explorer'' na Sliki 9.

Page 38: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 28

Slika 9: Solution Explorer XNA aplikacijie generirane iz predloge.

Projekt ''WindowsPhoneGame1'' je stavljen iz:

Properties\AppManifest.xml: Datoteka, je potrebna za izdelavo app paketa. Enako

kot pri Silverlight.

Properties\AssemblyInfo.cs: Ima enako vlogo kot pri Silverlight projektu, da

vsebuje metapodatke o verziji in imenu za assembly.

Properties\WMAppManifest.xml: Tudi ta datoteka ima enak namen kot pri

Silverlight, torej vsebuje metapodatke o aplikaciji npr: ime, ikona, itd.

References: Seznam knjiţnic, ki jih aplikacija uporablja za delovanje. Enaka vloga

kot pri Silverlight, le nabor knjiţnic se nekoliko razlikuje.

Background.png: Ikona, ki prikazuje aplikacijo na start zaslonu na telefonu. Enako

kot pri Silverlight.

Game.ico: Ikona za ''.exe'' datoteko v primeru, da bi izdelali Windows kopijo igre.

Game1.cs: Vsebuje definicijo razreda ''Game1'', ki vsebuje vse metode za izvajanje

igre.

Page 39: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 29

GameThumbnail.png: Ikona, ki prikazuje aplikacijo v seznamu aplikacij na

telefonu. Pri Silverlight ima enako vlogo ApplicationIcon.png.

Program.cs: Definira vstopno točko aplikacije. V Silveright je vstopna točka drugje.

Projekt ''WindowsPhoneGame1Content'' [17] je vsebuje sredstva npr. modeli, teksture,

zvoki itd. katera uporablja projekt ''WindowsPhoneGame1''. Solution lahko vsebuje več

''Content'' projektov in en ''Game'' projekt. Sredstva v ''Content'' projekt dodajamo kot ''Add

New Item'' ali kot ''Add Existing Item'' v ''Solution Explorerju''.

Game1.cs datoteka v projektu ''Game'' je srce igre. V njej je definiran razred ''Game1'', ki

deduje od razreda ''Game''. Razred game pa vsebuje vse metode, ki so potrebne za

izvajanje igre. Njihov potek pa prikazuje Slika 10.

Slika 10: Ţivljenjski cikel objekta ''Game''.

Initialize(): Je metoda, ki se kliče za konstruktorjem razreda in zagotavlja, da so vsi

objekti, ki jih igra uporablja narejeni in inicializirani.

LoadContent(): Je metoda, ki se kliče za metodo ''Initialize()'' in ima nalogo, da iz

projekta ''Content'' naloţi vsebine potrebne za delovanje igre. Te vsebine so npr.

zvoki, teksture, modeli, itd.

Update(): Je metoda, ki se vedno kliče pred metodo ''Draw()'' in se uporablja za

osveţitev stanja igre. Znotraj te metode napišemo logiko naše igre. Torej napišemo,

Page 40: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 30

kako se igra in objekti v igri obnašajo ob trčenjih v 2D ali 3D prostoru, kakšen je

odziv na ukaze uporabnika itd.

Draw(): Je metoda, ki se kliče za ''Update()''. Znotraj nje je koda, ki sceno igre

nariše na zaslon.

UnloadContent(): Je metoda, ki se kliče ob izhodu iz igre in skrbi, da se sredstva

naše igre pravilno odstranijo. To je neke vrste destruktor razreda.

Metodi Update() in Draw() skupaj tvorita zanko igre. To je neskončna zanka, ki skrbi, da

igra ves čas teče in se osveţuje. Privzeta nastavitev XNA je 60 ponovitev zanke v eni

sekundi, kar pomeni, da igra teče s 60 slikami na sekundo. Lahko pa nastavitve

spremenimo tako, da se frekvenca zanke prilagaja glede na čas, ki je potreben za en cikel.

6.3. Razvoj aplikacije s Silverlight

Pri razvoju aplikacije s tehnologijo Silverlight, smo se odločili za izdelavo aplikacije, ki je

namenjena hranjenju podatkov o naših prijateljih, znancih itd., ki smo jih poimenovali

''Kontakti''. Aplikacija omogoča neposredno uporabo podatkov kontakta npr. telefonske

številke za klicanje ali pošiljanje sporočila ali uporabo elektronskega naslova za pošiljanje

elektronske pošte. Namen aplikacije je, da bi lahko shranjevala, širok nabor podatkov o teh

kontaktih, ker pa smo bili omejeni s časom smo z našo aplikacijo pokrili le osnovne

podatke. Kljub manjšemu naboru podatkov o kontaktih, smo zajeli glavne značilnosti

tehnologije Silverlight, kar je tudi namen diplomskega dela. Tudi, če bi implementirali

večje število hranjenih podatkov, s tem ne bi pokrili bistveno več značilnosti Silverlight

tehnologije. Ker je ogrodje aplikacije izdelano, ne bi bilo teţav z nadaljnjim razvojem

aplikacije v smeri širjenja nabora podatkov o kontaktih.

Aplikacija je sestavljena iz štirih strani, kar prikazuje Slika 11. Prva stran aplikacije je

''Prikaz kontaktov'', potem pa imamo še ''Dodajanje kontakta'', ''Ogled kontakta'' in

''Urejanje kontakta''.

Page 41: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 31

Slika 11: Struktura UI aplikacije

Implementacija neuporabniškega dela aplikacije

Za hranjenje podatkov o posameznem kontaktu smo izdelali razred ''Kontakt''. Aplikacija

hrani objekte razreda ''Kontakt'' v generičnem seznamu ''List<Kontakt>''. Seznam

''List<Kontakt>'' omogoča sortiranje vsebovanih objektov, ki imajo implementiran

vmesnik ''IComperable''. V naši aplikaciji smo ţeleli sortirati kontakte po priimku, zato

Page 42: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 32

smo v razredu ''Kontakt'' implementirali vmesnik ''IComperable'' na način, da se objekti

tega razreda med seboj primerjajo po lastnosti ''Priimek''.

Ko se aplikacija zapre, moramo naš generični seznam kontaktov shraniti v ''Isolated

Storage'' in ko se aplikacija ponovno zaţene moramo seznam prebrati iz ''Isolated Storage''

Da lahko seznam trajno shranjujemo v ''Isolated Storage'' mora naš razred ''Kontakt''

podpirati serializacijo, kar smo dosegli s tem, da smo razredu dodali atribut

''[DataContract]'' in lastnostim razreda atribut ''[DataMember]''. Med podatki o kontaktu

imamo tudi sliko kontakta, katere objekta nismo mogli serializirati, zato v objektu razreda

''Kontakt'' hranimo sliko v obliki zapisa ''byte[]''. Za pretvarjanje zapisa slik smo naredili

novi razred ''PretvornikSlik'', ki ima dve statični metodi. Eno za pretvarjanje slike iz

''BitmapImage'' v ''byte[]'' zapis in drugo za pretvarjanje ''byte[]'' zapisa' v ''BitmapImage''.

Tako se v objektu razreda ''Kontakt'' nahaja slika v obliki ''byte[]'' zapisa, za pretvarjanje

med zapisoma ''byte[]'' in ''BitmapImage'' pa uporabljemo statični metodi razreda

''PretvornikSlik'', ki smo ju prikazali na Sliki 12.

Slika 12: Pretvornik slik

Page 43: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 33

V datoteki ''App.xaml.cs'' se nahajajo štiri metode, ki jih proţijo dogodki, ko naša

aplikacija prehaja med fazami ţivljenjskega cikla, kar je prikazano na Sliki 3. Tu smo v

metodi ''Applicaton_Launching'' poskrbeli, da se ob prvem zagonu aplikacije izdela novi

seznam ''List<Kontakt>'', ob vsakem naslednjem zagonu aplikacije pa se znam naloţimo iz

''Isolated Storage''. Ne glede ali smo naredili novi seznam ali pa smo ga dobili iz ''Isolated

Storage'', damo seznam v ''PhoneApplicationService.Current.State'', kjer ga alikacija

uporablja med svojim delovanjem. V metodah ''Applicaton_Deactivated'' in

''Applicaton_Closing'' trajno shranimo seznam, ki se nahaja v

''PhoneApplicationService.Current.State'' v ''Isolated Storage''. V metodi

''Applicaton_Activated'' ne naredimo ničesar saj je še od prej seznam v

''PhoneApplicationService.Current.State''. Kodo prikazuje Slika 14.

Slika 13: Koda pri prehodih aplikacije med stanji

Page 44: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 34

Za trajno hranjenje seznama v ''Isolated Storage'' smo uporabili razred

''IsolatedStorageSettings.ApplicationSettings'', ki je v bistvu razred ''Dictionary(Of TKey,

TValue)''. Med izvajanjem aplikacije uporabljamo za hranjenje seznama in ostalih

podatkov razred ''PhoneApplicationService.Current.State'', ki je ravno tako razred

''Dictionary(Of TKey, TValue)'' in je hitrejši od

''IsolatedStorageSettings.ApplicationSettings'' vendar ne omogoča trajnega hranjenja

podatkov, saj se podatki ob izklopu aparata izgubijo. Oba uporabljena razreda za hranjenje

podatkov lahko uporabljamo tudi pri XNA igrah.

Implementacija uporabniškega dela aplikacije

Prva stran naše aplikacije je namenjena prikazu seznama vseh kontaktov, ki jih imamo

shranjene v naši aplikaciji. Vidimo jo lahko na Sliki 11. Ko pritisnemo na kontakt, nas

aplikacija navigira na stran za prikaz kontakta. Na dnu zaslona imamo orodno vrstico z

gumbom, ki nas navigira na stran za dodajanje novega kontakta. Za izpis kontaktov smo

uporabili ''ListBox'', vsak kontakt pa je predstavljen z gumbom na katerem je izpisano ime

in priimek kontakta, gumbi pa si vrstijo vertikalno. Tu smo uporabili ''data binding'', kar

pomeni, da smo povezali seznam (List<kontakt>) in ''ListBox'' tako, da aplikacija sama

izdela gumb za vsak kontakt iz seznama in nam ni treba ročno implementirati metode, ki

gre skozi celoten seznam in izdelala gumb za vsak kontakt posebej. ''Data binding'' je

prikazan na Sliki 14 in Sliki 15.

Slika 14: ''Data binding'' v MainPage.xaml.cs.

Page 45: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 35

Slika 15: ''Data binding'' v MainPage.xaml

Prikaz kontakta je stran namenjena prikazu vseh podatkov o izbranem kontaktu, vidimo

jo na Sliki 11. V orodni vrstici imamo izbiri ''uredi'' in ''izbrisi'', prva nas navigira na stran

za urejanje podatkov kontakta, druga pa kontakt izbriše iz seznama. Za prikaz podatkov o

kontaktu smo uporabili element ''Panorama'', ki spominja na horizontalno platno, po

katerem se lahko premikamo levo in desno. Podatki pa so zdruţeni po tematiki in prikazani

v stolpcih. Element ''Panorama'' prikazuje Slika 16 [18].

Page 46: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 36

Slika 16: Panorama

Na strani za prikaz kontakta smo ob kliku na e-poštni naslov implementirali zagon

urejevalnika elektronske pošte, z namenom pošiljanja elektronske pošte prikazanemu

kontaktu. Za to smo uporabili razred ''EmailComposeTask'' in dodali njegov imenski

prostor ''Microsoft.Phone.Tasks''.

Ob kliku na telefonsko številko kontakta smo implementirali prikaz kontekstnega menija,

ki nam ponudi ''Klici'' ali ''Poslji SMS''. Za uporabo kontekstnega menija smo morali

naloţiti ''Silverlight Toolkit'' iz spletne strani ''http://silverlight.codeplex.com'', ki vsebuje

dodatne elemente za uporabniški vmesnik, med drugim tudi kontekstni meni

''ContextMenu''. Ko smo ''Silverlight Toolkit'' namestili na računalnik, smo morali v

projekt dodati referenco ''Microsoft.Phone.Controls.Toolkit'' in pa v datoteko

uporabniškega vmesnika dodati imenski prostor xmlns:toolkit="clr-

namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit". Z

Page 47: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 37

izbiro v kontekstnem miniju sproţimo klicanje ali pošiljanje SMS sporočila. Uporabimo

torej ali razred ''PhoneCallTask'' ali razred ''SmsComposeTask'', ki sta oba iz ţe prej

dodanega imenskega prostora ''Microsoft.Phone.Tasks'' tako, da je imenski prostor ţe

dodan.

Silverlight Toolkit je knjiţnica, ki vsebuje veliko dodatnih razredov, ki omogočajo gradnjo

bogatejših in uporabnejših uporabniških vmesnikov.

Slika 17: Implementacija klicanja in pošiljanja SMS ter e-pošte.

Urejanje kontakta je stran, ki je namenjena urejanju podatkov kontakta, vidimo jo na

Sliki 11. Na to stran pridemo, če na strani za prikaz kontakta izberemo ''uredi''. V orodni

vrstici imamo izbiri ''shrani'' in ''opusti'', da lahko spremenjene podatke shranimo ali pa tudi

ne. Tokrat smo za prikaz podatkov uporabili element ''Pivot'', ki je podoben ''Panorami'' le,

da ima ta element tematsko zdruţene podatke po zavihkih. ''Pivot'' je prikazan na Sliki 18

[19]. Ob nalaganju strani se podatki o kontaktu naloţijo v vnosna polja tako, da podatke

Page 48: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 38

vidimo in jih spremenimo, če to ţelimo. Vnosna polja imajo tudi svojemu tipu podatkov

prirejeno tipkovnico, ki se prikaţe na zaslonu. Torej če ţelimo v vnosno polje telefonske

številke vnesti podatke, se nam prikaţe tipkovnica s številkami. V primeru vnosnega polja

za ime se prikaţe tipkovnica s črkami.

Slika 18: Pivot

Na tej strani smo implementirali tudi zajem slike z kamero, ki predstavlja sliko kontakta.

Za zajem slike smo uporabili razred ''CameraCaptureTask'', za uporabo le tega pa smo

morali dodati imenski prostor ''Microsoft.Phone.Tasks''. Implementacija zajema slike je

prikazana na Sliki 19.

Page 49: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 39

Slika 19: Zajem slike

Dodajanje kontakta je stran namenjena dodajanju novih kontaktov, vidimo jo na Sliki 11.

Do nje pridemo, če na prvi strani izberemo ''dodaj''. Uporabniški vmesnik je enak, kot pri

strani za urejanje kontakta. V primeru, da v orodni vrstici izberemo ''shrani'' se izdela novi

objekt razreda ''Kontakt'' in se shrani v seznam. Nato pa nas aplikacija navigira na prvo

stran.

6.4. Razvoj aplikacije z XNA

Pri razvoju razvoju aplikacije-igre z XNA Game Studio smo se odločili, da bomo izdelali

preprost primer tenisa (Slika 20), kjer se ţogica odbija med dvema ploščicama na vsaki

strani zaslona. Igralec premika ploščico vertikalno po zaslonu in mora z njo odbiti ţogico,

oz. ţogica ne sme pasti mimo ploščice, saj je to točka za nasprotnega igralca. Igralec

premika ploščico z dotikom zaslona nad ali pod ploščico. Rezultat se resetira z strojnim

gumbom telefona ''Back'', če ta gumb pritisnemo še enkrat zapustimo igro. Uporabnik

lahko za ozadje igre posname fotografijo s pomočjo kamere, kar stori z gesto ''Pritisni in

drţi'' (''Press & hold'') kjerkoli na zaslonu. Z gesto ''Horizontalni premik''

(''HorizontalDrag'') pa nastavimo privzeto ozadje. Igro začnemo s klikom na ţogico. Ob

doseţeni točki se sproţi zvočni efekt, ki ponazarja aplavz. Ob dotiku ţogice in loparja se

sproţi zvočni efekt, ki ponazarja odboj ţogice.

Za prikaz igre smo uporabili:

Dve ploščici, ki simbolizirata dva igralca. Ploščici sta objekta razreda ''Rectangle''.

Page 50: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 40

Ţogo, ki je tudi objekt razreda ''Recatngle''.

Ozadje igre, ki predstavlja igrišče in je tudi razreda ''Rectangle''.

Izpis rezultata,

In zvočna efekta ob odboju ţoge od igralca in ob doseţeni točki sta razreda

''SoundEffect''.

Slika 20: Igra Tenis

V metodi ''Initialize()'' smo objektom igrišče, ţoga in igralca določili dimenzije in začetne

pozicije na zaslonu. Koda je prikazana na Sliki 21.

Page 51: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 41

Slika 21: Metoda Initialize()

V metodi ''LoadContent()'' smo implementirali nalaganje tekstur, ki jih med igro

uporabljamo za barvanje igralcev, ţoge in igrišča. Naloţili smo tudi zvoke za zvočne

efekte med igranjem igre in pa pisavo za izpis rezultata. Vse, kar smo naloţili v metodi

''LoadContent()'', smo naloţili iz ''Content'' projekta, tja pa smo ţe predhodno dodali z

''Solution Explorerjem''. Nalaganje v metodi ''LoadContent()'' je prikazano na Sliki 22.

Slika 22: Metoda ''LoadContent()''

V XNA Game Studio so pisave poseben primer [1]. XNA Game Studio, za razliko od

Silverlight, nima vgrajenih nobenih pisav, zato jih moramo v projekt uvoziti iz zunanjega

vira, ali pa s pomočjo Visual Studia kreiramo novo ''.spritefont'' datoteko, v kateri je v xml

Page 52: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 42

zapisu zapisano, katero izmed pisav, ki jih je izdelal Microsoft bomo uporabili. Microsoft

je za nas izdelal naslednje pisave: Kootenay, Lindsey, Miramonte, Pescadero, Miramonte

Bold, Pescadero Bold, Pericles, Segoe UI Mono, Pericles Light, Segoe UI Mono Bold [1].

V metodi ''Draw()'' narišemo elemente igrišče, igralca, ţogo in rezultat na zaslon.

Prikazano na Sliki 23.

Slika 23: Metoda ''Draw()''

Za dogodke ob prehajanju igre med stanji ţivljenjskega kroga Windows Phone igre smo

morali poskrbeti v konstruktorju razreda ''Game1'', kar prikazuje Slika 24. Metode ki jih ti

dogodki proţijo pa smo implementirali znotraj razreda.

Slika 24: Ţivljenjski krog

Premikanje ţoge je implementirano tako, da se ob vsaki osveţitvi pozicija ţoge spremeni

za velikost hitrosti ţogice. Ko ţoga doseţe skrajne koordinate zaslona po Y osi, se ji

zamenja predznak hitrosti Y smeri. To pomeni, da se odbije od stene. Ko ţogica doseţe

skrajne koordinate zaslona po X, se spremeni rezultat igre in se ţogica postavi na sredino

igrišča. To pomeni, da eden od igralcev ni odbil ţogice. Slika 15 prikazuje logiko ţogice.

Page 53: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 43

Slika 25: Logika ţogice

Za shranjevanje podatkov o igri v razred ''PhoneApplicationService.Current.State'' smo,

enako kot pri Silverlight, morali dodati imenski prostor ''Microsoft.Phone.Shell''. Pri XNA

pa je bilo potrebno dodati v projekt še referenci ''Microsoft.Phone '' in '' System.Windows''.

Za shranjevanje v ''IsolatedStorage'', pa so moral enako kot pri Silverlight, dodati imenska

prostora ''System.IO'' in '' System.IO.IsolatedStorage''.

Page 54: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 44

7. PRIMERJAVA

Tehnologiji Silverlight in XNA Game Studio sta popolnoma različni tehnologiji, ki sta

namenjena razvoju popolnoma različnih aplikacij. Pri razvoju aplikacij za platformo

Windows Phone 7, pokriva tehnologija Silverlight področje klasičnih aplikacij, med tem

ko pokriva tehnologija XNA Game Studio razvoj iger. Razvoj iger je s tehnologijo

Silverlight nemogoč, razen redkih primerov npr. igra pari. Klasične aplikacije, pa so z

XNA tudi večinoma neizvedljive. Značilnosti obeh tehnologij smo zajeli tudi v tabeli 4.

Skupne točke teh dveh tehnologij so uporaba istih knjiţnic za uporabo strojnih komponent

telefona. To so senzorji npr. zaslon na dotik, ţiroskop, merilec pospeška itd. Enaka je tudi

knjiţnica ''System.IO.IsolatedStorage'' za uporabo shranjevanja v ''Isolated Storage'' in

knjiţnica ''Microsoft.Phone.Shell'' za uporabo shranjevanja v ''State'' objekt razreda

''PhoneApplicationService''. Obe tehnologiji uporabljata knjiţnico

''Microsoft.Phone.Tasks'' za do dostop uporabo kamere, klicanja itd. Tehnologijama je

skupno tudi to, da se pri obeh za razvoj uporablja Visual Studio 2010 in da se programska

koda piše v jeziku C#. Enak je tudi ţivljenjski cikel in dogodki ob prehajanju med stanji

aplikacije. V Tabeli 5 smo za razrede in imenske prostore, ki smo jih uporabili sami,

prikazali njihovo dostopnost v vsaki izmed tehnologij.

Specifične lastnosti tehnologije Silverlight so, da je Aplikacija sestavljena iz več strani

med katerimi se pomikamo, ko uporabljamo aplikacijo. Vsaka stran je objekt, ki pa je

definiran v dveh datotekah. Ena ima končnico .xaml in vsebuje podatke o uporabniškem

vmesniku strani, zapisane z načinom xml. Druga datoteka pa ima končnico .cs, v njej je v

zapisana logika strani jeziku C#. V .xaml datoteki so za elemente uporabniškega vmesnika

zapisani dogodki, ki sproţijo metode, zapisane v .cs datoteki. Stran je tako definirana v

dveh datotekah, obnaša pa se kot en objekt. Celotno izvajanje aplikacije temelji na

dogodkih, ki jih večinoma proţi uporabnik na uporabniškem vmesniku.

Specifične lastnosti tehnologije XNA Game Studio so, da delovanje aplikacije ne temelji

na dogodkih, ampak se ve čas ponavlja zanka dveh metod ''Update() - Draw()''. V igri

imamo objekte ali modele, ki jih postavimo na določene 2D ali 3D koordinate. Potem pa

vsakič, ko se izvede metoda ''Update()'' objektom spremenimo koordinate glede na njihovo

Page 55: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 45

hitrost in uporabnikove ukaze. Preverimo, če je kakšen objekt trčil ob katerega drugega, da

mu npr. spremenimo smer, spustimo zvočni efekt itd. Nato pa se zopet izvede metoda

''Draw()'', ki nariše novo stanje objektov.

Tabela 4: Primerjava značilnosti

Razvoj aplikacij tipa Klasične aplikacije Igre

Podjetje Microsoft Microsoft

Razvojno okolje Microsoft Visual Studio Microsoft Visual Studio

Programski jezik C# C#

Ločevanje UI od kode DA NE

Jezik zapisa UI XAML (XML) C#

Minimalni st. projektov znotraj

''Solution'' 1 2

Izvajanje aplikacije temelji na Dogodkih Zanki ''Update() –

Draw()''

Uporaba aplikacije na drugih

platformah NE

PC(Windows),

Xbox360, Zune Player

Pisava Vključena Potreben uvoz pisave

Privzeta orientacija Pokončna Leţeča

Page 56: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 46

Tabela 5: Dostopnost razredov in imenskih prostorov.

Razredi

PhoneApplicationService DA DA

IsolatedStorageSettings DA DA

IsolatedStorageFile DA DA

IsolatedStorageFileStream DA DA

Pivot DA NE

Panorama DA NE

TextBlock DA NE

StackPanel DA NE

Grid DA NE

ApplicationBar DA NE

PhoneApplicationPage DA NE

CameraCaptureTask DA DA

List<T> DA DA

ListBox DA NE

Button DA NE

ContextMenu DA NE

Page 57: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 47

GraphicsDeviceManager NE DA

SpriteBatch NE DA

Texture2D NE DA

SoundEffect NE DA

Rectangle NE DA

Vector2 NE DA

SpriteFont NE DA

GamePad NE DA

PlayerIndex NE DA

ButtonState NE DA

TouchCollection NE DA

TouchPanel NE DA

GestureSample NE DA

GestureType NE DA

Imenski prostori

Microsoft.Phone.Shell DA DA

System.IO.IsolatedStorage DA DA

Microsoft.Phone.Tasks DA DA

Microsoft.Phone.Controls DA NE

Microsoft.Phone.Controls.Toolkit DA NE

Microsoft.Xna.Framework NE DA

Page 58: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 48

8. ZAKLJUČEK

Namen diplomskega dela je bil preučili značilnosti tehnologije Silverlight in tehnologije

XNA Game Studio za razvoj aplikacij za platformo Windows Phone 7. Predhodno pa smo

morali preučiti tudi lastnosti same platforme Windows Phone 7. Skladno s cilji

diplomskega dela smo z vsako od proučevanih tehnologij razvili eno aplikacijo, skozi

katero smo naredili primerjavo tehnologij in primerjavo razvoja aplikacij z omenjenima

tehnologijama.

Namen je bil, da skozi razvoj aplikacij najdemo tudi dobre in slabe in dobre lastnosti vsake

izmed tehnologij. Opredeliti dobre in slabe lastnosti omenjenih tehnologij je malce teţje,

niti se nam ne zdi smiselno, ker smo skozi diplomsko delo ugotovili, da vsaka izmed

tehnologij pokriva popolnoma svoje področje Windows Phone 7 aplikacij. Takšna

opredelitev, bi bila primerna, če bi imeli dve tehnologiji, ki bi pokrivali isto področje.

Menimo, da sta obe tehnologiji dobri in primerni za razvoj kvalitetnih, funkcionalnih in

uporabniško bogatih aplikacij. Poiskali in ponazorili pa smo lastnosti, ki so tehnologijama

skupne in lastnosti, ki so tehnologijama različne.

Neuradno bo 15. Septembra 2011 (uradnega podatka ni mogoče najti) Microsoft na trţišče

poslal novo različico operacijskega sistema Windows Phone 7. Nova različica se imenuje

Windows Phone 7.5 ali Windows Phone 7 Mango. Z novo različico prihaja tudi nov paket

orodji za razvoj aplikacij. Nova različica bo omogočala večopravilnost (Multitasking) in

prinesla še mnogo novosti npr. Internet Explorer 9 s podporo za HTML5. Kljub novostim,

pa ne bo ničesar starega odvzeto tako, da bodo vse aplikacije, razvite za predhodno verzijo

Windows Phone 7, delovale tudi na novi različici. Razvoj aplikacij naj ne bi bil drugačen,

prinesel pa naj bi veliko dodatnih moţnosti. Nova verzija bo nekakšna nadgradnja sedanje

različice, ki bo ohranila zakonitosti predhodne [20].

Page 59: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 49

9. VIRI

[1] Charles Petzold, Programming Windows Phone 7, Microsoft Press, 2011

[2] Chris G. Williams, George W. Clingerman, Windows Phone 7 Game Development,

John Wiley & Sons, 2011

[3] Puja Pramudya, Silverlight for Windows Phone, Microsoft, 2011

[4] Microsoft, UI Design and Interaction Guide for Windows Phone 7, Microsoft, 2010

[5] Windows Phone 7 vs. Android 2.2 vs. iOS 4.1 – Features Comparison, Tech

Exclusive, avgust 2011, http://www.tech-exclusive.com/windows-phone-7-android-

2-2-ios-4-1/

[6] Windows Phone, Wikipedia, avgust 2011,

http://en.wikipedia.org/wiki/Windows_Phone_7

[7] Fascinating New Windows Phone 7 Device, MobilePhones, avgust 2011:

http://www.mobilephones-news.com/wp-content/uploads/2010/09/Fascinating-

New-Windows-Phone-7-Device.jpg

[8] Windows Phone 7 Touch Gestures Explained, The Windows Club, avgust 2011,

http://www.thewindowsclub.com/windows-phone-7-touch-gestures-explained

[9] Windows Phone Developer Tools RTW, Microsoft Download Center, avgust 2011,

http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=13890

[10] Nick Randolph, David Gardner, Profesional Visual Studio 2010, Wiley Publishing,

2010

[11] Rod a. Smith, Jonas Nordlund, C# Programming, Wikibooks contributors, 2004

[12] SilverLight Overview, MSDN, avgust 2011, http://msdn.microsoft.com/en-

us/library/bb404700%28v=vs.95%29.aspx

[13] XNA Game Studio 4.0, MSDN, september 2011 http://msdn.microsoft.com/en-

us/library/bb200104.aspx

[14] Isolated Storage Overview for Windows Phone, MSDN, avgust 2011,

http://msdn.microsoft.com/en-us/library/ff402541%28v=vs.92%29.aspx

[15] System.IO.IsolatedStorage Namespace, MSDN, avgust 2011,

http://msdn.microsoft.com/en-us/library/system.io.isolatedstorage.aspx

Page 60: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 50

[16] Ian Field, Windows Phone 7 Application Lifecycle, avgust 2011, http://blog.ian-

field.co.uk/2010/10/windows-phone-7-application-lifecycle.html

[17] Game Content Project, MSDN, september 2011, http://msdn.microsoft.com/en-

us/library/bb976064.aspx

[18] Windows Phone 7 Panorama Control sample, MSDN, september 2011,

http://blogs.msdn.com/b/stephanc/archive/2010/04/04/windows-phone-7-panorama-

control-sample.aspx

[19] Windows Phone 7 Pivot Control sample, MSDN, september 2011,

http://blogs.msdn.com/b/stephanc/archive/2010/05/09/windows-phone-7-pivot-

control-sample.aspx

[20] Windows Phone “Mango” – Released to Manufacturing, Windows Phone,

Windows Phone Blog, september 2011,

http://windowsteamblog.com/windows_phone/b/windowsphone/archive/2011/07/2

6/windows-phone-mango-released-to-manufacturing.aspx

Page 61: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 51

10. PRILOGE

10.1. Seznam slik

Slika 1: Windows Phone 7 telefon. ............................................................................. 7

Slika 2: Isolated storage ........................................................................................... 16

Slika 3: Ţivljenjski cikel Windoes Phone 7 aplikacije ................................................. 18

Slika 4: Predloge pri kreiranju novega Silverlight projekta. ......................................... 23

Slika 5: Solution Explorer Silverlight aplikacijie generirane iz predloge. ...................... 23

Slika 6: Datoteka App.xaml. .................................................................................... 25

Slika 7: Pripravljena orodna vrstica ........................................................................... 26

Slika 8: Predlogi pri kreiranju novega projekta XNA Game Studio .............................. 27

Slika 9: Solution Explorer XNA aplikacijie generirane iz predloge. .............................. 28

Slika 10: Ţivljenjski cikel objekta ''Game''. ................................................................ 29

Slika 11: Struktura UI aplikacije ............................................................................... 31

Slika 12: Pretvornik slik .......................................................................................... 32

Slika 13: Koda pri prehodih aplikacije med stanji ....................................................... 33

Slika 14: ''Data binding'' v MainPage.xaml.cs............................................................. 34

Slika 15: ''Data binding'' v MainPage.xaml ................................................................ 35

Slika 16: Panorama ................................................................................................. 36

Slika 17: Implementacija klicanja in pošiljanja SMS ter e-pošte. .................................. 37

Slika 18: Pivot ........................................................................................................ 38

Slika 19: Zajem slike ............................................................................................... 39

Slika 20: Igra Tenis ................................................................................................. 40

Slika 21: Metoda Initialize() ..................................................................................... 41

Slika 22: Metoda ''LoadContent()'' ............................................................................ 41

Page 62: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 52

Slika 23: Metoda ''Draw()'' ....................................................................................... 42

Slika 24: Ţivljenjski krog ......................................................................................... 42

Slika 25: Logika ţogice ........................................................................................... 43

10.2. Seznam preglednic

Tabela 1: Primerjava ''smartphone'' operacijskih sistemov. ............................................ 3

Tabela 2: Kretnje po zaslonu. ..................................................................................... 8

Tabela 3: Razredi imenskega prostora "System.IO.IsolatedStorage". ............................ 17

Tabela 4: Primerjava značilnosti ............................................................................... 45

Tabela 5: Dostopnost razredov in imenskih prostorov. ............................................... 46

10.3. Naslov študenta

Andrej Cešek

Kompolje 1a

8294 Boštanj

10.4. Kratek življenjepis

Rojen: 11.8.2011 v Breţice

Šolanje: 1994 – 2002 Osnovna šola Boštanj

2002 – 2006 Srednja poklicna in strokovna šola Krško

Page 63: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 53

Page 64: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 54

Page 65: PRIMERJAVA RAZVOJA APLIKACIJ ZA WINDOWS PHONE 7 S ...COMPARISON OF DEVELOPMENT WINDOWS PHONE 7 APPLICATIONS WITH SILVERLIGHT AND WITH XNA GAME STUDIO Key words: Windows Phone 7, Silverlight,

Primerjava razvoja aplikacij za WP7 s Silverlight in z XNA Game Studio Stran 55