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 ?

– 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

Šiuo metu veikia Windows ir Mac operacinėse sistemose. Be to, yra pranešta apie bendradarbiavimą su Novell, leisiantį vykdymą Linux operacinėse sistemose ir paremtą Moonlight projektu.

aplikacijos kūrimas susideda iš dviejų dalių: grafinio interfeiso apibrėžimo ir logikos programavimo. Šiam momentui egzistuoja dvi versijos: 1.0 ir 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.). 1.1 naudoja specialiai interneto aplikacijoms adaptuotą .NET Framework 3.5 versiją, todėl programavimas yra intuityvus visiems .NET programuotojams. Toliau kalbėdamas apie turėsiu omeny 1.1 Alpha.

Programavimo aplinkos paruošimas darbui su

Norint pradėti programuoti aplikacijas, pirma reikia tinkamai paruošti programavimo aplinką. Žemiau aprašysiu visus mums reikalingus įrankius:

Pirmoji programa

Tradiciškai pirmoji programa yra „Hello World!“ programa. Mes nenukrypsime nuo tradicijų ir sukursime savo „Hello World!“ aplikaciją.

Taigi atidarome Visual Studio 2008 Beta2 programavimo aplinką, pasirenkame File → New Project. Kategorijoje Visual C# randame subkategoriją :
Silverlight screenshot 1

Kaip matyti, yra prieinami du šablonų variantai: projektas yra skirtas aplikacijų kūrimui; bei klasės biblioteka - skirta įvairių komponentų kūrimui. Pasirinkus pirmąjį variantą, mūsų projekto struktūra atrodys taip:
Silverlight screenshot 2

Page.xaml failas aprašo mūsų aplikacijos grafinį interfeisą, o Page.xaml.cs – logiką. .js JavaScript failas atsako už objekto sukūrimą ir neturi būti modifikuojamas. TestPage.html, kaip ir seka iš pavadinimo, skirtas mūsų aplikacijos testavimui. Pasižiūrėjus į puslapio išeities kodą matyti, kaip įterpiamas objektas į egzistuojantį puslapį:
Silverlight screenshot 3

Kaip galima pastebėti, pagrindinį darbą atlieka JavaScript funkcija createSilverlight(), kuri atsako už aplikacijos inicializavimą.
Silverlight screenshot 4

Dabar mus domina Page.xaml failas, kurio turinys atrodo taip:
Silverlight screenshot 5

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 objekto pasikrovimo metu.
Įterpkime į Canvas TextBlock elementą kaip parodyta žemiau ir mes turėsime savo pirmąją „Hello World!“ aplikaciją!
Silverlight screenshot 6

Pasileidžiame aplikaciją ir…
Silverlight screenshot 6

Įpusėjus…

Pirmoje įvado dalyje aš norėjau, kad skaitytojams susidarytų bendras vaizdas apie technologiją. “Hello World!” aplikacija neparodo 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ą.

Panašūs straipsniai


“Įvadas į Microsoft Silverlight (1 dalis)” komentarų: 22

  1. Emilis

    OMG WTF LOL ROFL :D

    Pradžiuginot šiuo straipsniu, tiesiai sakau. Microsoft is dead indeed.

  2. noTime

    Greitai kiekvienas atviras standartas, protokolas ar programavimo kalba turės savo komercinį “Microsoft” prototipą. Bent jau link to jie suka.

  3. Juozas Kaziukėnas

    Hello World programa tokio ilgio?! :)

  4. Sergejus

    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.

  5. jungle

    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

  6. jungle

    noTime> o kuo pagristum sita savo teigini ? ;)

  7. Giedrius

    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.

  8. Sergejus

    @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.

  9. Juozas Kaziukėnas

    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 :)

  10. Sergejus

    @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’ą

  11. Juozas Kaziukėnas

    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 :)

  12. Emilis

    Giedrius>

    ——–joke————>

    O
    /|\

  13. noTime

    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ą.

  14. Giedrius

    nemoakamas suris tik spastuose. irgi aksioma

  15. Sergejus

    @Juozas Kaziukėnas
    Jeigu tau tikrai įdomu, tai galiu patarti nueiti į http://silverlight.net. Ten pirmame puslapyje yra pateiktos nuorodos į veikiančias Silverlight aplikacijas.

  16. Juozas Kaziukėnas

    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 :(

  17. Sergejus

    @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.

  18. Juozas Kaziukėnas

    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.

  19. Sergejus

    Silverlight buvo pristatytas tik šių metų birželį (praėjo vos pusė metų) ir tai, turim tik Silverlight 1.1 Alpha.

  20. noTime

    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”.

  21. Įvadas į Microsoft Silverlight (2 dalis) » Pixel.lt

    […] 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. […]

  22. Vilius

    “Silverlight – tai nepriklausantis nuo platformos ir naršyklės įskiepis” deja kol kas Opera yra Silverlight’o ignoravimo saraše.

Rašyti komentarą

Jūs privalote prisijungti jeigu norite rašyti komentarą.