Sunteți pe pagina 1din 28

Prezentare platforma

Mobila Windows Phone

Elevi: Palaga Cosmin


Pavel VictorCristian
Stoian Stefan
432A

Cuprins

I. Prezentarea Sistemului de Operare Windows


Phone
- Magazin Windows Phone Stoian Stefan
- Caracteristici ale Windows Phone 8 din
punct de vedere al nucleului
-Pavel Victor
- Mediul de dezvoltare si limbajul Visual C# Pavel Victor
- Arhitectura Windows Phone Palaga Cosmin
- Tipurile de Aplicatii -Palaga Cosmin
- Prelucrarea in fundal -Stoian Stefan
- Servicii de sistem de fundal -Stoian Stefan
- Nucleu comun -Stoian Stefan
- Windows runtime -Stoian Stefan
II.Programarea unei aplicatii de tip "Hello World"
Pavel Victor
III. Aplicatie Demo -Palaga Cosmin

I. Prezentarea Sistemului de Operare


Windows Phone
Windows Phone este un sistem de operare pentru
dispozitive mobile dezvoltat de Microsoft, iar in momentul
actual versiunea cea mai noua versiune de pe piata este
Windows Phone 8, lansat in Octombrie 2012, in aprilie 2014
fiinnd anuntat oficial si Windows Phone 8.1,care aduce o serie
de imbunatatiri versiunii precedente insa fara modificari majore
din punct de vedere al structurii acestuia .

Magazinul Windows Phone


Magazinul Windows Phone (anterior Windows Phone
Marketplace) este o platforma de distributie digitala dezvoltata
de Microsoft pentru platforma Windows Phone, care permite
utilizatorilor sa caute si sa descarce aplicatii care au fost
dezvoltate de parti terte. Asemanator celor mai noi produse
Windows, aceasta are interfata grafica Metro UI, interfata ce
este prezentata intr-o vedere panoramica, unde utilizatorul
poate cauta printe categorii si tile-uri, poate sa vada elementele
prezentate si poate obtine detalii, pareri, specificatii, capturi de
ecran si informatii de pret despre aplicatii.
Dezvoltatorii trebuie sa plateasca o taxa de abonament de
99 de dolari pentru a deveni membru App Hub si sa poata
prezenta aplicatii catre Magazinul Windows Phone. Nu exista
nici o limita pentru inregistrarea aplicatiilor cu plata. Exista, in
schimb, o limita de 100 de inregistrari de aplicatii fara plata, de
aceea, exista o taxa de 19,99 dolari per inregistrare de aplicatie
gratuita.
Dezvoltarea de aplicatii in Windows Phone 7 se bazeaza pe
Silverlight, XNA, si NET Compact Framework. Instrumentele

principale folosite pentru dezvoltarea aplicatiilor sunt Microsoft


Visual Studio 2010 si Expression Blend. Cu exceptia
dispozitivelor deblocate ale dezvoltatorilor, pe Windows Phone 7
pot rula doar aplicatii care au fost aprobate mai intai de
Microsoft si sunt disponibile numai prin Windows Phone
Marketplace. Dezvoltatorii vor castiga in mod normal 70 % din
veniturile realizate de catre aplicatii si pot include un model de
publicitate in acestea, cu toate ca, in unele tari, ponderea este
de doar 56,1 %. Studentii pot inregistra aplicatii in mod gratuit,
prin programul DreamSpark de la Microsoft.
Dezvoltarea de aplicatii in Windows Phone 8 se poate
realiza cu ajutorul Visual C#, Visual Basic si Visual C++.La
lansarea sdk-ului de Windows Phone 8, Microsoft a oprit
dezvoltarea XNA in Februarie 2013, permitand dezvoltatorilor sa
programeze jocuri inntr-un limbaj .Net Framework. XNA
framework (un invelis in jurul lui DirectX) a fost intrerupt in
favoarea DirectX pentru Windows Runtime si aplicatiile de
Windows Phone, fortand astfel dezvoltatorii sa foloseasca coduri
native pentru a construi jocuri. Exista terte parti alea XNA, cum
ar fi MonoGame, care permite dezvoltatorilor sa utilizeze in
continuare XNA in Windows Runtime, Windwos Phone 8 si in alte
platforme. Emulatorul a fost schimbat pentru a folosi Hyper-V ca
hypervisor si acum necesita Windows 8 Pro sau Windows Server
2012 64 biti si un sistem care suporta hardware de vizualizare
asistata pentru a rula. Windows Phone 8 accepta un subset de
obiecte pentru reutilizarea codului sursa intre Windows 8 si
Windows Phone 8. Supportul pentru codul nativ a fost adaugat
in Windows Phone 8 dar acesta poate fi folosit pentru a construi
jocuri DirectX sau componente pentru Windows Runtime.
Aplicatiile care utilizeaza XAML trebuie sa fie in continuare
construite cu .NET Framework. Un suport limitat de subseturi de
API-uri ale Win32 au fost adaugate in Windows Phone SDK.
Dezvoltatorii vor putea in continuare sa construiasca aplicatii
pentru Windows Phone 7 care vor fi disponibile in Windows
Phone 8.

Caracteristici ale Windows Phone 8 din punct de


vedere al nucleului
Windows Phone 8 sprijina procesoarele multi-core pana la
cele cu 64 de nuclee, rezolutiile de 1280 x 720 (720p) sau 1280
x 768 (WXGA) fata de Windows Phone 7 care suporta nativ doar
rezolutia de 800 x 480 (WVGA) si este primul sistem de operare
mobil de la Microsoft care utilizeaza un kernel bazat pe
Windows NR, care este acelai nucleu pe care ruleaza si
Windows 8. Sistemului mobil de operare i se adaug si sistemul
de fiiere mbunatatit, drivere, stive de retea, componente de
securitate, suport mass-media si motor grafic (DirectX).

Mediul de dezvoltare si limbajul Visual C#


Mediul de dezvoltare al aplicatiilor pus la dispozitia
programatorilor de catre cei de la Microsoft este Microsoft Visual
Studio, cea mai recenta versiune a acestuia fiind Microsoft
Visual Studio 2013 iar limbajul de programare utilizat pentru
programarea aplicatiilor in acest IDE este Visual C#, o
implementare proprie Microsoft a limbajului C#.
Sintaxa limbajului este similara limbajului C++ sau Java ,
toate cele 3 fiind limbaje de programare orientate pe obiect.
Cele mai importante parti ale aceste sintaxe sunt variabilele iar
Visual C# utilizeaza operatori pentru a modifica valorile
variabilelor, pentru a crea clase si metode si pentru a trimite
date catre aceste metode.

Arhitectura Windows Phone


Diagrama de mai sus reprezinta arhitectura aplicatiilor din
cadrul Windows Phone.
In fruntea diagramei se afla cele doua modele distincte de
aplicatii. Cea din stanga, TaskHost reprezentand modelul
XAML, care a si fost modelul principal inca de la lansarea
Windows Phone. In partea dreapta se afla CoreApplication, un
nou model pentru aplicatii, care deriva din modelul pentru
Windows 8. De la lansarea Windows Phone 8, acest model de
aplicatii suporta doar aplicatiile native ce folosesc Direct3D
pentru interfata vizuala.

Desi Win32/COM API apare in diagrama in sectiunea


CoreApplication, ele sunt apelabile de catre aplicatiile de
gestionare atat timp cat fac parte dintr-o componenta Windows
Runtime.
Cele doua modele de aplicatii se bazeaza pe un set de servicii
principale ale platformei.
Packet Manager este responsabil pentru
instalarea/dezinstalarea aplicatiilor si mentinerea datelor
aplicatiei pe tot parcursul vietii acesteia. Nu tine cont doar de

aplicatiile instalate si licentiate, ci tine informatii despre oricare


tile al aplicatiei pe care userul le pune pe ecranul de start.
Execution Manager controleaza toate operatiile logice
asociate unei aplicatii. Creeaza procesul de hosting pentru ca
aplicatia sa ruleze si declanseaza evenimentele asociate
aplicatiei in materie de startup, shutdown sau dezactivare. De
asemenea, realizeaza sarcini similare pentru procesele din
background.
Navigation Server se ocupa de toate mutarile dintre
aplicatiile foreground din telefon. Cand apesi pe un tile al
aplicatiei, navighezi din ecranul de start catre aplicatia pe
care ai selectat-o, iar Navigation Server este responsabil de
adresarea acestei sarcini catre Execution Manager astfel incat
aplicatia aleasa sa fie pornita. In aceeasi masura, cand tinem
apasat lung pe butonul de back, Navigation Server se ocupa
si reactivarea aplicatiilor.
Resource Manager se asigura ca telefonul este mereu rapid
si fluent in comenzi, monitorizand utilizarea resurselor (in
special procesorul si memoria) de catre toate procesele active
si fortand un set de limitari asupra lor. Daca o aplicatie sau un
proces din background depaseste resursele care ii sunt
alocate, este terminat automant pentru a mentine o rulare
optima a telefonului.
Toate acestea sunt construite pe un nucleu comun de
Windows (Windows 8 si Windows 8.1)

Tipurile de Aplicatii
XAML cel mai cunoscut tip pentru aplicatiile dezvoltate sub
Windows Phone 7.x; acestea sunt scrise exclusiv in XAML.
Suporta limbajele C# si Visual Basic, API-urile Microsoft .NET,

Windows Phone API, Windows Runtime API, framework-ul fiind


XAML
Mixed Mode folosesc structura XAML dar permit si includerea
de cod nativ impachetat intr-o componenta Windows Runtime.
Este potrivita pentru aplicatiile in care se doreste reutilizarea
unor librarii native fara a rescrie codul. Este utila si in cazurile in
care se doreste scrierea exclusiva in cod, dar este nevoie si de
accesul catre frameworkul XAML si de unele instrumente care
sunt disponibile doar in XAML, cum ar fi editarea tileurilor din
start screen. Suporta limbajele C#, Visual Basic, C/C++, APIurile Windows Phone API, Windows Runtime API, Win32/COM API
si framworkurile XAML si Direct3D
Direct3D cea mai buna alegere pentru dezvoltarea de jocuri,
Direct3D ofera optiunea de a folosi cat mai mult din hardware-ul
pus la dispozitie de catre dispozitiv. Suporta limbajul C++ si
API-urile Windows Runtime API, Win32/COM API.

Prelucrarea in fundal
Cand vine vorba de executie de fundal pe un dispozitiv
mobil, utilizatorii au de multe ori obiective conflictuale. Pe de o
parte, ei doresc ca aplicaiile lor sa ofere date chiar daca
utilizatorul nu interacioneaz direct cu ele-streaming de muzic
de pe Internet, actualizarea tile-ului Live cu cele mai noi date
meteorologice, sau furnizarea de instruciuni de navigare. Pe
de alta parte, ei doresc ca bateriile dispozitivelor sa tina pana
la sfarsitul zilei si aplicatiile pe care le ruleaza sa nu fie
incetinite de aplicatiile de fundal care folosesc o mica parte din
puterea de calcul.
Windows Phone ncearc s echilibreze aceste cerine
contradictorii si se foloseste de un scenariu concentrat pe
prelucrarea de fundal. In loc sa permita aplicatiilor sa ruleze in
mod arbitrar, platforma ofera un set de reguli de rulare a
aplicatiilor in asa fel incat sa acopere toate cazurile posibile.
Datorita acestor constrangeri, telefonul va rezista la utilizarea

pe parcursul unei zile intregi si nu va incetini celelalte procese


care ruleaza in paralel.

Servicii de sistem de fundal


Windows Phone ofer un set de servicii de fundal care pot
efectua sarcini uzuale n numele altor aplicaii.

Serviciul de transfer de fundal


Serviciul de transfer de fundal (BTS) face posibile pentru
aplicatii transferurile HTTP, utilizand aceeasi infrastructura pe
care sistemul de operare o foloseste pentru a efectua operatiuni
ca descarcarea de muzica. BTS se asigura ca descarcarile nu se
opresc atunci cand dispozitivul se restarteaza si ca nu are
impact asupra traficului de retea folosit de celelalte aplicatii.

Alarme
Cu API-ul Alarme, aplicaiile pot crea memento-uri specifice care
se pot adapta cerintelor utilizatorului. Spre exemplu, o aplicatie
de retete ar putea oferi posibilitatea de a adauga o alarma care
se va inchide atunci cand mancarea trebuie scoasa din cuptor.
S-ar putea oferi, de asemenea, un link care odata apasat, te va
duce catre urmatorul pas al retetei.

Sarcinile programate
Exist dou tipuri de sarcini planificate pe care o aplicatie le
poate crea, fiecare dintre acestea fiind programate i gestionate
de sistemul de operare, n funcie de anumite condiii:
sarcini periodice ruleaza o perioada scurta de timp in
interiorul unui interval configuratia curenta este de 25 de
secunde la fiecare 30 de minute( atat timp cat telefonul nu se

afla in modul de Economisre energie). Acestea ajuta aplticatiile


mici care sunt folosite foarte des: o aplicatie de vreme are
nevoie de actualizari cat mai dese pentru a afisa in timp real
prognoza.
sarcini consumatoare de resurse - pot rula o perioada lunga
de timp, dar nu dupa un program prestabilit. Deoarece ele pot
avea un impact mai mare asupra performantelor dispozitivului,
ruleaza numai atunci cand dispozitivul este pus la incarcat, cu
bateria aproape plina, numai pe WI-fi si nu in utilizare activa.
Aceste sarcini sunt destinate operatiunilor solicitante cum ar fi
sincronizarea unei baze de date cu un server la distanta.

Nucleu comun
De

departe cea mai semnificativ schimbare de arhitectura din


Windows Phone 8 este adoptarea unui nucleu comun cu
Windows. Dar ai putea sa va ntrebai ce nseamn de fapt un
"nucleu comun"? In esenta, acesta contine doua componente
distincte. In partea de jos este Windows Core System, functiile
de baza ale sistemului de operare Windows, incluzand (printe
altele), nucleul (kernel) NT, sistemul de fisiere NT(NTFS), si
stiva de retea. Structura redusa a nucleului este rezultatul
multor ani de rafinament arhitectural, a carui scop a fost de a
oferi o baza comuna care ar putea alimenta mai multe
dispozitive, incluzand smartphone-uri. Deasupra lui Core
System este Mobile Core. Avem un set de functii care nu fac
parte din Core System dar sunt totusi necesare unui
smartphone. Acestea includ componente cum ar fi: multimedia,
Core CLR si Trident, motorul de randare pentru Internet
Explorer.

Figura de mai sus ilusteaza unele componente pe care Windows


si Windows Phone se bazeaza. Este de retinut faptul ca Mobile
Core este doar o entitate arhitecturala distincta in Windows
Phone. Windows contine aceleasi componente ca Mobile Core,
dar ele sunt doar o parte din numeroasele functii. Acest lucru
este reprezentat printr-o linie punctata in jurul componentelor
Mobile Core in partea de tabel pentru Windows 8.

Sistemele Core si Mobil Core reprezinta doar partile in care


Windows si Windows 8 executa exact acelasi cod. Exista un
numar foarte mare de zone diferite in care API-urile si functiile
sunt comune, desi cu cateva diferente de implementare pentru
fiecare mediu in parte. De exemplu, API-ul de locatie in
Windows Phone incorporeaza in mod automat date provenind
de la releele de telefonie mobila si retelele de Wi-fi pentru a
imbunatati acuratetea localizarilor, optimizare care nu face
parte din conceptele de baza ale Windows 8.

Windows runtime
Pentru utilizatori, modificarea majora cu care vine Windows
Phone este noua interfata grafica cu utilizatorii (GUI) . Pentru
dezoltatorii de aplicatii,pe de alta parte, modificarea tine de
noul model de programare si noul set de API-uri, care impreuna
sunt cunoscute sub numele de Windows Runtime. In ciuda
faptului ca Microsoft a oferit de-a lungul anilor o varietate destul
de mare de medii de dezolvare (cea mai notabila fiind .NET ),
nucleul modelului de programare pe Windows nu s-a schimbat
prea mult de-a lungul timpului. Windows Runtime nu reprezinta
doar un set nou caracteristici si capabilitati, ci o modalitate
fundamental diferita de a contrui aplicatii si componente.
Platforma Windows Runtime are la baza o versiune de
Component Object Model (COM) la care se adauga metadate ce
descriu fiecare componenta in parte. Aceste metadate fac
posibila proiectarea tipurilor si metodelor din Windows Runtime
in diverse medii de programare ce ruleaza deasupra acestuia. In
Windows Phone, sunt doua astfel de medii de dezvoltare: o
versiune CoreCLR bazata pe .NET (C# sau Visual Basic) sau cod
nativ pur (C/C++) .
Desi arhitectura nucleului Windows Runtime si majoritatea
API-urior sunt aceleasi pentru Windows si Windows Phone, ce
doua platforme oferta versiuni diferite ale API Framework ce
stau deasupra acestui nucleu. De exemplu , in WIndows Phone
nu este implementata clasa Windows.System.RemoteDesktop
insa exista cateva clase specifice telefonului precum
Windows.Phone. Networking.Voip. Termenul Windows Phone
Runtime este destul de des folosit in documentatie si in
proiectele de Visual Studio pentru a accentua aceste diferente.

II.Programarea unei aplicatii de tip "Hello World"

Odata ce am instalat in calatorul pe care dorim sa


programam aplicatia mediul de dezvoltare al celor de la
Microsoft: Microsoft Visual Studio si SDK-ul pentru windows
phone 8.0 suntem gata sa incepem programarea aplicatiei
"Hello World".
Mai intai creem un nou proiect in Microsoft Windows Visual
Studio 2013,asa cum avem in poza de mai jos:

Apoi selectam versiunea sistemului de operare al


telefonului pentru care vrem sa programam aplicatia. Avand in
vedere ca in cadrul acestei teme , ne-am axat pe Windows
Phone 8.0, vom programa aplicatia pentru acest SO:

In momentul in care selectam sistemul de operare, mediul


de dezvoltare generaza automat un template de proiect destul
de complex, cu o multime de elemente pentru a ajuta
programatorul. De asemenea, prin intermediul interfetei
grafice, Microsoft face posibila programarea unei mari parti din
aplicatie prin intermediul aplicatiei grafice care genereaza
automat codul.
In poza de mai jos putem vedea
structura template-ului generat automat de mediul de
dezvoltare :

Vom lua fiecare dintre aceste elemente pe rand si le vom


explica:
- The Reference : acest folder contine, asa cum ii spune si
numele, referintele tuturor asambloarelor utilizate in cadrul
proiectului.
-The Assets : acest folder contine toate imaginile utilizate in
cadrul proiectului. La crearea unui nou proiect, sunt generate
automat cateva imagini : 5 imagini cu Tiles,specifice Windows
Phone,un grid de aliniere si o iconita default a aplicatiei.
* ApplicationIcon este o imagine de dimensiunile 100x100
pixeli ce reprezinta imaginea pe care utilizatorii o vad pe
telefoanele lor atunci cand vor sa acceseze aplicatia
programata de noi. Aceasta imagine se poate inlocui cu orice
imagine reprezentativa pentru aplicatie.
*AlignmentGrid ,asa cum ii spune si numele, este un Grid
folosit pentru alinierea perfecta a obiectelor in interiorul displayului. In mod implicit codul pentru introducerea acestui Grid este
comentat in interiorul fisierului MainPage.xaml . Daca lasam
codul necomentat, vom putea observa si grid-ul in interfata
grafica, asa cum putea vedea in imaginea de mai jos:

-Assemblyinfo.cs este un fisier ce contine informatia legata


de asamblare de care are nevoie proiectul precum
AssemblyVersion, AssemblyCopyright, AssemblyTitle etc. ce
reprezinta practic toata informatia publica utilizata in cadrul
asamblarii acestei aplicatii.
-WMAppManifest este cel mai important fisier din cadrul
acestei aplicatii. El contine toate setarile de configurare si
proprietatile aplicatiei. Totodata defineste culoarea backgroundului , modul de orientare, si toate drepturile pe care aplicatia le
are asupra diverselor functii ale telefonului : senzori, bluetooth
etc.

-AppManifest.xaml este un fisier al carui scop este de a


genera Application Package (XAP)
-App.xaml este primul fisier incarcat in momentul in care
aplicatia noastra in Windows Phone este deschisa si contine
informatia legat de resurse si setari la nivelul aplicatiei.
-App.xalm.cs este fisierul cod din spatele fisierului App.xaml.
Contine toate metodele difinite la la pornirea aplicatiei precum
Application_Launching(), Application_Deactivated() etc.
-MainPage.xaml.cs este fisierul care se comporta precum un
"home page" al aplicatiei noastre, aceasta fiind pagina care
este afisata prima data utilizatorului atunci cand se deschide
aplicatia. Putem personaliza aceasta pagina in functie de
nevoile proprii sau de scopul aplicatiei.
-Mainpage.xalm.cs este fisierul cod din spatele fisierului
MainPage.xaml si contine metodele pentru controlul
evenimentelor precum Button_Click.

Vom modifica in fisierul MainPage.xaml interfata grafica


a aplicatiei noastre (GUI= Graphical User Interface). Noi am
adaugat un textbox, un buton si un textblock pentru afisarea
mesajului iar codul pentru acest GUI este afisat mai jos.
Deasemenea putem adauga toate aceste detalii in GUI prin
intermediul prin modulul grafic pus la dispozitie de Microsoft
Visual Studio cu ajutorul principiului "Drag & Drop" .
1.

<!--TitlePanel contains the name of the application and page title-->

2.

<StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">

3.

<TextBlock Text="Windows Phone Apps Tutorial" Style="{StaticResource


PhoneTextNormalStyle}" Margin="12,0"/>

4.

<TextBlock Text="Welcome !!" Margin="9,-7,0,0" Style="{StaticResource


PhoneTextTitle1Style}"/>

5.

</StackPanel>

6.
7.

<!--ContentPanel - place additional content here-->

8.

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="10,0,10,0">

9.
10.
<TextBox x:Name="nameInput" Width="265" HorizontalAlignment="Left"
FontSize="24" Margin="0,10,0,533" RenderTransformOrigin="0.487,-3.674"/>
11.

<Button Content="Say "Hello"" Click="Button_Click" FontSize="16"


Margin="270,10,58,533"/>

12.

<TextBlock x:Name="namemsg" Style="{StaticResource

Apoi trebuie sa creen un Event Handler pentru a gestiona


momentul in care se apasa pe buton. Atunci cand este apasat
butonul, se citeste textul din textbox si apoi se afiseaza "Hello,
text". Codul pentru acest event handler este :

1.

private void Button_Click(object sender, RoutedEventArgs e)

2.

3.

namemsg.Text = "Hello, " + nameInput.Text + "!";

4.

Aplicatia noastra este gata acum si o putem testa cu


ajutorul unui emulator, pus la dispozitia programatorilor in
cadrul mediului de dezoltare.

Odata ce este lansat emulatorul, telefonul se deschide cu


"Home Page" -ul aplicatiei noastre. Tastam numele nostru si
apoi apasam pe buton. Rezultatul poate fi vazul in imaginea din
dreapta a simulatorului. Observam ca programul functioneaza
exact asa cum ne dorim:

III Aplicatie Demo - Calculator


Am dezvoltat un calculator simplu ce aduna numerele introduse
si afiseaza rezultatul alaturi de cateva mesaje de intampinare
sau eroare (cand este cazul)

Programul este realizat in Visual Studio Express 2012 for


Windows Phone si are doua componente principale:
componenta grafica, MainPage.xaml si componenta de
handlere, MainPage.xaml.cs.
In fisierul MainPage.xaml se gaseste codul sursa pentru
definirea functiilor folosite de aplicatie, a orientarii si culoarea
fundalului. Totodata aici vom defini interfata grafica vazuta
utilizator, compusa din butoanele calculatorului si afisajul
acestuia.
Codul pentru definirea interfetei grafice a unui buton este :
<Button Content="1"
Grid.Column="0"
HorizontalAlignment="Stretch"
Grid.Row="1"
VerticalAlignment="Stretch"
Click="Button_Click_1"/>

Iar pentru textbox-ul in care este afisat rezultatul avem:


<TextBox Grid.ColumnSpan="2"
x:Name="comms"
Grid.Column="1" HorizontalAlignment="Stretch" Grid.Row="5"
TextWrapping="Wrap"
Text=""
VerticalAlignment="Stretch"
IsEnabled="False"/>

Codul pentru definirea coloanelor si liniilor in care sunt


afisate butoanele este :
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="38*"/>
<ColumnDefinition Width="45*"/>
<ColumnDefinition Width="38*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="107*"/>
<RowDefinition Height="86*"/>
<RowDefinition Height="86*"/>
<RowDefinition Height="86*"/>
<RowDefinition Height="86*"/>
<RowDefinition Height="88*"/>
<RowDefinition Height="68*"/>
</Grid.RowDefinitions>

Restul codului sursa din fisierul MainPage.xml este generat


automat de catre Visual Studio pe baza optiunilor selectate de
noi in dezvoltarea aplicatiei.

Interfata grafica a aplicatiei noastre va arata astfel :

Dupa ce realizam interfata grafica a aplicatiei noastre,


trebuie sa realizam si partea de handlere care sa gestioneze
situatia in care un anumit buton este apasat si sa afiseze
rezultatul calculului dorit.
Codul pentru apasarea unui buton specific unui numar din
interfata grafica a aplicatiei este:
private void Button_Click_1(object sender, RoutedEventArgs e)
{
result.Text += "1";
}

Iar pentru realizarea calcului propriu-zis avem codul pentru


tastarea primului numar pentru calcul :
private void Button_Click_s(object sender, RoutedEventArgs e)
{

if (result.Text.Length < 1)
comms.Text = "Tasteaza un numar!";
else {
first = int.Parse(result.Text);
second = second + first;
comms.Text = "Bravo! Tasteaza iar!";
result.Text = "";

}
}

Iar pentru tastarea celui de-al 2-lea numar si afisarea


rezultatului codul este :
private void Button_Click(object sender, RoutedEventArgs e)
{

first = int.Parse(result.Text);
second = second + first;
result.Text = "Bravo!";
comms.Text = "Rezultatul este: " + second.ToString(); ;
first = 0;
second = 0;

Codul sursa complet al aplicatiei poate fi gasit in Anexa 1 a


proiectului nostru.

Procesul de compilare si instalare al aplicatiei noastre:


De fiecare data cand rulam aplicatia din Visual Studio
apasand tasta F5 sau buton de Run din Toolbar, Visual Studio
creeaza o versiune pentru Debug a aplicatiei noastre. Astfel
creeaza un folder Bin/Debug unde pune fisierul .NET de
asamblare precum si alte fisiere aditionale de care aplicatia are
nevoie pentru a rula. In poza urmatoare putem vedea continutul
folderului Bin/Debug pentru aplicatia noastra:

Obervam aici fisierul .NET ( SimpleCalculator.dll). Deasemenea


gasim aici un fisier AppManifest.xaml si SimpleCalculator.xap.
Fisierul .xap este destul de mare ca dimensiune si este un
fisier ce contine pachetul de rulare al aplicatiei, adica toate
configuratiile si fisierele necesare aplicatiei pentru a putea rula
pe Windows Phone 8. Am descoperit ca putem accesa
continutul fisierul .xap folosind un trick destul de simplu.
Modificam extensia fisierului din .xap in .zip. Windows ne
avertizeaza ca aceasta schimba ar putea modifica fisierul, iar
noi acceptam. Avem acum un fisier .zip pe care il putem
deschide cu orice program care poate gestiona arhivele. In
imaginea de mai jos observam continutul arhivei .zip :

Prin urmare, formatul .xap este de fapt doar un .zip ceva mai
special ce contine tot ceea ce avem in folderul Bin/Debug al
proiectului nostru, inclusiv folderele si continutul acestora.
Acum vom accesa fisierul WMAppManifest.xml pentru a vedea
ce gasim in interiorul acestuia.Deschidem fisierul cu Notepad si
observam ca acesta este fisierul XML la care ne asteptam, insa
cu mult mai mult cod decat in Visual Studio. Visual Studio
ascunde complexitatea acestui fisier prin interfata sa axata mai
mult de design si restrictioneaza astfel modificarile pe care le
putem face in acest fisier.In imaginea urmatoare vedem
continutul fisierului WMAppManifet.xml:

Scopul acestui fisier WMAppManifest.xml este acela de a


introduce aplicatia noastra telefonului pe care ruleaza. Practic
acest fisier ii spune dispozitivului ce imagini sa foloseasca
pentru Tiles-uri in meniu acestuia, ii spune la ce functii ale
dispozitivului are acces , ce rezolutii suporta si ce limbi sunt
disponibile in cadrul aplicatiei. Integrarea aplicatiei noastre in
Sistemul de Operare al dispozitivului mobil se face prin
intermediul acestui fisier.

Instalarea aplicatiei noastre pe un dispozitiv mobil:


Pentru a putea trimite aplicatia noastra in telefonul mobil
si a incerca sa o rulam pe acesta avem nevoie de un cont de
dezvoltator de aplicatii de la Microsoft. Din pacate
achizitionarea unui astfel de cont de dezvoltator este singurul
mod prin care putem testa aplicatia noastra pe un dispozitiv
fizic. Pretul unui astfel de cont este de 99$/an si, de asemenea,
este neaparata nevoie si de varianta Windows 8 Pro sau
Windows 8.1 Pro, in alte conditii contul de developer nu poate fi
activat.

Bibliografie

1) Brix, Todd. "Microsoft extends Windows Phone Dev


Center $19 fee so you can get your app published".
Microsoft.
2) "App Hub - Windows Phone and Xbox 360".
Microsoft.
3)"Windows Phone Marketplace - Content
policies". Microsoft.
4)http://chimera.labs.oreilly.com/books/12340000018
53/ch01.html
5)http://channel9.msdn.com/Series/Windows-Phone8-Development-for-Absolute-Beginners/Part-8Understanding-Compilation-and-Deployment
6)http://j4ni.com/blog/?p=107

Nota: Avand in vedere actualitatea sistemului de operare, ne este greu sa


atasam aici materiale stiintifice cu un autor exact, acest sistem de operare fiind
dezvoltat de cei de la Microsoft.

S-ar putea să vă placă și