Paskutiniu metu interneto puslapiuose atsiranda vis daugiau interaktyvumo. Viena iš priežasčių, tai jau daugeliui žinoma AJAX technologija. Dar vieną žingsnį ta kryptimi daro nauja Microsoft technologija – Silverlight, kuri buvo anonsuota MIX07 konferencijos metu. Taigi kas yra Silverlight?
Silverlight – tai nepriklausantis nuo platformos ir naršyklės įskiepis, leidžiantis web-programuotojams ir dizaineriams kurti šiuolaikines dinamines web-aplikacijas .NET aplinkoje (iš dalies technologija panaši į Flash, bet yra pagrįsta .NET platforma).
Apie Silverlight
Šiuo metu Silverlight veikia Windows ir Mac operacinėse sistemose. Be to, yra pranešta apie bendradarbiavimą su Novell, leisiantį Silverlight vykdymą Linux operacinėse sistemose ir paremtą Moonlight projektu.
Silverlight aplikacijos kūrimas susideda iš dviejų dalių: grafinio interfeiso apibrėžimo ir logikos programavimo. Šiam momentui egzistuoja dvi Silverlight versijos: Silverlight 1.0 ir Silverlight 1.1 Alpha. Abiejose versijose interfeisas apibrėžiamas XAML (eXtensible Application Markup Language) kalba, kuri yra naudojama ir Windows Presentation Foundation aplikacijose. Logika 1.0 versijoje aprašoma JavaScript kalba, o 1.1 versijoje – papildomai ir bet kuria .NET kalba (C#, VisualBasic ir pan.), įskaitant naujas dinamines .NET kalbas (IronRuby, IronPython ir pan.). Silverlight 1.1 naudoja specialiai interneto aplikacijoms adaptuotą .NET Framework 3.5 versiją, todėl Silverlight programavimas yra intuityvus visiems .NET programuotojams. Toliau kalbėdamas apie Silverlight turėsiu omeny Silverlight 1.1 Alpha.
Programavimo aplinkos paruošimas darbui su Silverlight
Norint pradėti programuoti Silverlight aplikacijas, pirma reikia tinkamai paruošti programavimo aplinką. Žemiau aprašysiu visus mums reikalingus įrankius:
- Silverlight 1.1 Alpha Refresh – pati Silverlight technologija;
- Visual Studio 2008 Beta2 – programavimo aplinka;
- Silverlight Tools Alpha for Visual Studio – instaliuoja Silverlight projektų šablonus ir užtikrina Silverlight integravimąsi su Visual Studio;
- Expression Blend 2 September Preview – Microsoft įrankis, leidžiantis vizualiai kurti Silverlight grafinį interfeisą.
Pirmoji Silverlight programa
Tradiciškai pirmoji programa yra „Hello World!“ programa. Mes nenukrypsime nuo tradicijų ir sukursime savo Silverlight „Hello World!“ aplikaciją.
Taigi atidarome Visual Studio 2008 Beta2 programavimo aplinką, pasirenkame File → New Project. Kategorijoje Visual C# randame subkategoriją Silverlight:
![]()
Kaip matyti, yra prieinami du šablonų variantai: Silverlight projektas yra skirtas Silverlight aplikacijų kūrimui; bei Silverlight klasės biblioteka - skirta įvairių Silverlight komponentų kūrimui. Pasirinkus pirmąjį variantą, mūsų projekto struktūra atrodys taip:
![]()
Page.xaml failas aprašo mūsų Silverlight aplikacijos grafinį interfeisą, o Page.xaml.cs – logiką. Silverlight.js JavaScript failas atsako už Silverlight objekto sukūrimą ir neturi būti modifikuojamas. TestPage.html, kaip ir seka iš pavadinimo, skirtas mūsų Silverlight aplikacijos testavimui. Pasižiūrėjus į puslapio išeities kodą matyti, kaip įterpiamas Silverlight objektas į egzistuojantį puslapį:
![]()
Kaip galima pastebėti, pagrindinį darbą atlieka JavaScript funkcija createSilverlight(), kuri atsako už Silverlight aplikacijos inicializavimą.
![]()
Dabar mus domina Page.xaml failas, kurio turinys atrodo taip:
![]()
Canvas – tai tėvinis XAML failo elementas. Jame nurodomas elemento vardas (x:Name); klasės, kurios grafinį interfeisą aprašome, pavadinimas (x:Class); elemento aukštis (Height), plotis (Width) bei fono spalva (Background). Ten pat nurodomas ir metodas (Loaded=”Page_Loaded”), kuris bus vykdomas Silverlight objekto pasikrovimo metu.
Įterpkime į Canvas TextBlock elementą kaip parodyta žemiau ir mes turėsime savo pirmąją Silverlight „Hello World!“ aplikaciją!
![]()
Įpusėjus…
Pirmoje įvado dalyje aš norėjau, kad skaitytojams susidarytų bendras vaizdas apie Silverlight technologiją. “Hello World!” aplikacija neparodo Silverlight galimybių, bet jos dėka pakankamai neblogai galima įsivaizduoti veikimo principus bei naudojamas technologijas.
Kitame straipsnyje aš pateiksiu sudėtingesnį “Hello world!” pavyzdį, apimantį tiek reakciją į vartotojo veiksmus, tiek animaciją.
2007-10-20 | 1:23
OMG WTF LOL ROFL :D
Pradžiuginot šiuo straipsniu, tiesiai sakau. Microsoft is dead indeed.
2007-10-20 | 17:03
Greitai kiekvienas atviras standartas, protokolas ar programavimo kalba turės savo komercinį “Microsoft” prototipą. Bent jau link to jie suka.
2007-10-21 | 13:03
Hello World programa tokio ilgio?! :)
2007-10-22 | 7:45
Pati “Hello World!” programa iš esmės tik XAML failas, bet man norėjosi skaitytojams parodyti ir tipinią Silverlight projekto struktūrą, kadangi 2 dalyje bus nagrinėjami “gudresni” aspektai.
2007-10-22 | 14:55
as irgi myzhau del silverlight belekaip is laimes :) bet jis turi tokiu keleta ziauriu, neatidirbtu dalikeliu :) pvz. tokie kaip threadingo ir socketu nepalaikymas :) aisku, tai gal jau ir atsiras 1.1FR, bet kolkas nelabai zinau ka su juo galima veikti :) apart va tokiu hello world :) ai, dar 1: kolkas dar neturi UI komponentu, ir reikia pirkti ir naudoti 3dr party produktus :D
2007-10-22 | 14:56
noTime> o kuo pagristum sita savo teigini ? ;)
2007-10-22 | 15:49
emilis> bloge rasai, kad tau 28uoneri, is komentaro daugiau 14 neduociau :)
noTime> kaip sako apie naujas technologijas, “you can use it now or you can wait till microsoft will make it right”.
Juozas Kaziukenas>sunku ka ir pridurti prie tokio komentaro, juolab kad didzioji dalis kodo buvo sugeneruota visual studio, o ne rasyta rankomis
Sergejus>maladiec, ziuresim ka antroje dalyje parasysi, tikiuosi nebus visur nuvalkiotas silverlight video player pavyzdys.
2007-10-22 | 19:27
@Giedrius
Ne, antroje dalyje bus nuvalkiotas teksto dydžio keitimo pavyzdis :) Taip yra tiesiog dėl to, kad didžiąją dalį straipsnio užima Expression Blend interfeiso aptarimas.
2007-10-22 | 22:37
Giedrius> Taip Visual Studio sugeneravo didžiąją dalį šio kodo, bet faktas - kodo yra daug. Mano nuomone, kaip tokiam paprastam dalykui kodo yra per daug - galbūt čia net kiek nevykęs technologijos reprezentavimo pavyzdys ar net nevykusi pirmoji straipsnių ciklo dalis. Na, nesvarbu, kad man Microsoft ne ypač imponuoja, tačiau straipsnis, kuriame rašoma apie technologiją nuo nulio, t.y. paaiškinama pati pradžia, galėtų turėti tokias dalis, kaip - kam tas silvernight skirtas, kuo jis geresnis už X, kur/kieno naudojamas ir pan. Nes dabar aš matau Hellow World programą, kuri yra ilga, o kas iš to Silvernight taip ir neaišku :)
2007-10-23 | 8:52
@Juozas Kaziukėnas
“matau Hellow World programą, kuri yra ilga” -> Jeigu pateikčiau vien XAML failą su “Hello World” programa, daugelis pasakytų “so what?”, nes čia nėra marketinginis straipsnis, o straipsnis skirtas programuotojams, kuriems įdomu kaip kas dirba.
“kuo jis geresnis už X” -> “Silverlight 1.1 naudoja specialiai interneto aplikacijoms adaptuotą .NET Framework 3.5 versiją, todėl Silverlight programavimas yra intuityvus visiems .NET programuotojams.”
“kur/kieno naudojamas” -> daug kas :), negu kas vardija kur/kas naudoja Flash?
“man Microsoft ne ypač imponuoja” -> tikriausiai tuo viskas ir pasakyta ;)
P.S.
Juozai, bet kuriuo atveju ačiū už feedback’ą
2007-10-23 | 12:24
Sergejau, aš ir esu programuotojas, todėl man šis straipsnis ir nėra įdomus, nes be pavyzdžio Hello World (kurio dydžio geriau nebenagrinėkim) daugiau informacijos.
O kur konkrečiai naudojama Silvernight, kokie jau projektai yra, daug kas ne atsakymas :)
2007-10-23 | 13:23
Giedrius>
——–joke————>
O
/|\
2007-10-23 | 13:31
jungle, čia yra aksioma. Nieko įrodinėti nereikia. :)
Giedriau, kaip sako lietuviai - “po**ui kad geresnis, aš vistiek naudosiu nemokamą”. Turiu pripažinti, ši logika mums visiems į naudą.
2007-10-23 | 17:35
nemoakamas suris tik spastuose. irgi aksioma
2007-10-23 | 21:06
@Juozas Kaziukėnas
Jeigu tau tikrai įdomu, tai galiu patarti nueiti į http://silverlight.net. Ten pirmame puslapyje yra pateiktos nuorodos į veikiančias Silverlight aplikacijas.
2007-10-23 | 22:41
Pasižiūrėjau ir nieko nepamačiau nes viskas vedė į http://www.microsoft.com/silverlight/install.aspx , o ten Install Now jau siūlė silvernighht-X.exe. Su kuo aš tą exe paleisiu jei naudojuosi Linux sistema? :)
Išvada - kol Silvernightas neveiks su Linux, tol jo net nebus kaip išbandyti :(
2007-10-24 | 15:19
@Juozas Kaziukėnas
Kaip aš rašiau, Microsoft paskalbė apie bendradarbiavimą su Novel, kas įgalins Silverlight vykdymą Linux aplinkoje. Detaliau apie tą projektą: http://www.mono-project.com/Moonlight.
2007-10-24 | 16:40
Kai įgalins tai ir žiūrėsim :) Jau prieš metus, o gal net seniau, Silverlight atsirado Windows sistemoms, Moonlight bus tik šių metų gale, na tai… Teks man dar palaukt.
2007-10-24 | 19:19
Silverlight buvo pristatytas tik šių metų birželį (praėjo vos pusė metų) ir tai, turim tik Silverlight 1.1 Alpha.
2007-10-24 | 21:55
Giedriau, faktas - jei į “spąstus” pakliūni nusipirkęs šlamštą, vadinasi praradai ne tik laiką bet ir šūsnį pinigų. Beje, komercijoje žodis “nemokamas” praktiškai neegzistuoja; tiesiog yra arba “mokamas”, arba “atviras”.
2007-10-25 | 13:59
[…] Pirmoje įvado į Silverlight dalyje aš aptariau tipinę Silverlight projekto struktūrą bei parodžiau “Hello World!” programos pavyzdį. Šioje dalyje aptarsime kaip galima reaguoti į vartotojo veiksmus bei kurti dinaminius vaizdus. […]
2007-12-04 | 1:08
“Silverlight – tai nepriklausantis nuo platformos ir naršyklės įskiepis” deja kol kas Opera yra Silverlight’o ignoravimo saraše.