Silverlight este platforma de dezvoltarea in Windows Phone 7 pentru scrierea aplicatiilor sau utilitarelor. Aceste programe sunt construite dintr-o combinatie de markup si cod managed.
Silverlight aduce in Windows Phone Rich Internet Applications (RIA), incluzand media si Web. Silverlight in Windows Phone inseamna o versiune a Silverlight 3 plus alte imbunatatiri, excluzand functionalitati care nu adresate telefonului. Toate diferentele sunt expuse in acest articol de pe msdn, Differences Between Silverlight and Silverlight for Windows Phone.
Arhitectura aplicatiei in Silverlight
Toate programele scrise pentru Windows Phone sunt in cod .Net managed, fie C#, fie Visual Basic .Net.
In arhitectura aplicatiei Silverlight pentru Windows Phone se regaseste conceptul de separarea sarcinilor: programatorul va scrie cod pentru comportamentul aplicatiei iar designer-ul se va ocupa de “look and feel” cu ajutorul Expression Blend, aplicatie care se instaleaza din SDK – ul pentru Windows Phone.
Un alt concept folosit in arhitectura aplicatiilor Silverlight pentru Windows Phone este Object Oriented Design, un mijloc eficient de administrare a proiectelor complexe.
Arhitectura Object Oriented consta in planificarea unui sistem de interactiune a obiectelor pentru rezolvarea unei probleme.
Programele care vor fi dezvoltate pentru Windows Phone trebuie sa respecte stilul Metro. Specificatiile pot fi consultate in documentul UI Design and and Interaction Guide for Windows Phone.
XAML
Extensible Application Markup Language (Xaml) este un limbaj inventat de Microsoft pentru a stoca informatii despre design-ul interfetei utilizator. Xaml este folosit pentru a separa rolul designer-ului de rolul programatorului. Un designer nu trebuie sa vada obiectele care interactioneaza in cod si nici programatorul nu trebuie sa se ocupe cu design-ul aplicatiei.
<TextBox Height="72" HorizontalAlignment="Left" Margin="8,19,0,0" Name="firstNumberTextBox" Text="0" VerticalAlignment="Top" Width="460" TextAlignment="Center" />
Codul reprezinta descrierea pentru un control Textbox. Contine campuri despre pozitie, marime, alinierea textului.
XAML este un limbaj declarativ. El doar descrie obiecte, nu si ceea ce pot face sau cum pot face obiectele respective.
La rularea programului Silverlight, fisierele XAML sunt compilate si transformate intr-un set de instructiuni low level care sunt prelucrate de runtime-ul Silverlight.
Formatul XAML se bazeaza pe XML.
O aplicatie Silverlight este construita dintr-un numar de “pagini”. Fiecare pagina este reprezentata de un singur fisier XAML.
Prima aplicatie cu Silverlight
Construim un proiect de tip Windows Phone Application pe care il denumim Calculator.

In Solution Explorer se gasesc fisierele standard pentru crearea unei aplicatii.
Se observa doua perechi de fisiere (xaml si C#): App.xaml si App.xaml.cs si MainPage.xaml si MainPage.xaml.cs.
App.xaml – este folosit pentru stocarea resurselor folosite in aplicatie (scheme de culori, stiluri, etc). Fisierul “code-behind” corespunzator este App.xaml.cs, o clasa partiala. In timpul compilarii este generat un fisier App.g.c, care contine codul parsat din App.xaml.cs si o metoda InitializeComponent care este apelata de constructorul din Appl.xaml.cs. Se recomanda sa nu se modifice codul generat din App.g.cs. Oricum, fisierul va fi recreat la un nou build.
MainPage.xaml – este prima pagina a aplicatiei. Fisierul “code-behind” corespunzator, MainPage.xaml.cs are o structura simpla. Clasa partiala MainPage mosteneste PhoneApplicationPage. La compilare se genereaza un fisier MainPage.g.cs. Ca si in cazul App.xaml, fisierul generat este folosit doar de compilator si nu se recomanda editarea lui.

AppManifest.xml – fisier manifest folosit pentru generearea fisierului XAP.
AssemblyInfo.cs – fisier de configurare…
ApplicationIcon – imaginea ce reprezinta aplicatia.
Background – imaginea aplicatiei din ecranul de Start.
SplashScreenImage – imaginea afisata in timpul incarcarii aplicatiei.
WMAppManifest.xml – contine metadate despre titlu, locatie icon, ..
XAP
In folderul Debug al proiectului se gaseste fisierul XAP care va fi descarca in telefon sau in emulator.
Un fisier XAP este un pachet de alte fisiere, in formatul compresiei ZIP. Daca se schimba extensia XAP in ZIP, se poate vedea continutul arhivei.
In spatele fiecarui fisier XAML este un fisier C# (in cazul nostru) care contine comportamentul pentru pagina corespunzatoare. Se pot adauga metode pentru sporirea functionalitatii paginii.
In urmatorul articol vom continua dezvoltarea primei noastra aplicatii in Silverlight pentru Windows Phone 7.