Kaks kommuuniüritust Silverlight fännidele

Tere sõbrad, annan teada, et sel ja järgmisel nädalal ootan kõiki Silverlight kommuuniõhtule. 2. detsembril, see on juba sel neljapäeval toimub Silverlight Firestarter ülekande ühisvaatamine ning järgmisel nädalal 8. detsembril on ENETA kommuuniõhtu, kus ma räägin sellest, kuidas Silverlightist andmetega ümber käia.

Silverlight Firestarteri ühisvaatamine

Oled Silverlight fänn? Sulle jäi hinge kripeldama PDC10, kus räägiti muudkui HTML5-st ja Silverlighti ei mainitud poole sõnagagi?

Siis oled Sa just see, kes võiks ühineda teiste Silverlight huvilistega Eestis ning kogu maailmas, et jälgida Silverlight Firestarter keynote ettekannet. Esineb Scott Guthrie, kes tutvustab Silverlighti tulevikku.

Ühine meiega Microsoft Eesti kontoris Rävala pst. 5, neljapäeva õhtul 2. detsembril kell 19-21.00, kus toimub mõnusas seltskonnas Firestarteri ühisvaatamine ning arutelu. Kes teab ehk asutame sel õhtul mõne uue kasutajategrupigi :)

Registreerumiseks logi end Eneta portaali sisse. Tule ainult kohale, videopilt ja snäkid on juba meie poolt.

Regamise link: http://www.eneta.ee/sundmused/Lehed/silverlight-firestarteri-uhisvaatamine.aspx

ja ENETA kommuuniõhtu:

Eneta kommuuniõhtu: Silverlight andmete sidumine ja püsivus

Räägime Silverlightis andmetega ümberkäimisest, kuidas jagada andmeid üle rakenduse, kuidas käib töö testandmetega ning kuidas säilitada rakenduste seisu läbi mitmete käivituste.

Loengus õpitud põhitõdede abil on andmetega töötamine edaspidi lihtne ja loogiline. Valmis saab ka üks tore ja kasulik näidisrakendus. Lektoriks on Jaana Metsamaa(MVP).

Logi end Eneta portaali sisse, et registreeruda IT Kolledžis toimuvale loengule 6. detsembriks või pane end kirja veebipõhisele Live Meetingule.

Virtuaalsele loengule registreerunutele edastame liitumise lingi toimumispäeval. Tõmba endale Live Meeting 2007 klientrakendus http://bit.ly/lm2007

Regamise link: http://www.eneta.ee/sundmused/Lehed/eneta-kommuuniohtu-silverlight-andmete-sidumine-ja-pusivus.aspx

pildikast – rakendus samm-sammult

Järgnev postitus räägib pildikasti rakenduse ehitamisest ning seda samm-sammult. Eesmärgiks on tutvustada Silverlight 4 RC võimalusi :)

Lõpptulemus

Lõpptulemuseks on rakendus, mis näitab suurelt kasutaja veebikaamerast videopilti, kui vajutada Klõps! nuppu tehakse foto, mis jäädvustatakse paremasse nimekirja. Kui sealt nimekirjast seejärel üks pilt valida, on võimalik pilt arvutisse salvestada. Selleks, et asi liiga keeruline ei oleks, on võimalik alumisest listist valida erinevate effektide vahel, mis siis oma pildile lisada.

pildikast thumb pildikast – rakendus samm sammult

Kasutajaliides

Kasutajaliidese põhjaks on Grid – kolme rea ja kahe tulbaga, mis tüüpi objektidega täpselt tegemist on, näeb järgneval pildil.

wireframe comments thumb pildikast – rakendus samm sammult

Esialgu näeb seda kasutajaliidest defineeriv XAML välja väga lihtne (kliki, et suuremalt näha). Aga olgem ausad, ma seda ise ei kirjutanud, lihtsam oli Blendis asjad paika lohistada :) Soovitan seda ka lugejale ;) .

image thumb pildikast – rakendus samm sammult

using

Selleks, et kogu demo kenasti töötaks vaata, et MainPage.xaml.cs faili alguses oleks vähemat järgmised using read:

image thumb1 pildikast – rakendus samm sammult

Kas ma võin su kaamerat kasutada?

Kõigepealt on peame küsima kasutajalt luba, kas võib kaamerat kasutada. Selleks lisame nupu, mille kliki peale teeme hulga algseadistusi:

image thumb2 pildikast – rakendus samm sammult

captureSource muutujast võiksime mõelda justkui tunnelist meie rakenduse ja veebikaamera vahel, mis meile pilti toob ja see ei ole null, sest tegelikult MainPage konstruktoris me inistialiseerisime selle. Lisaks seome fotonimekirja ning massiivi, kus tehtud pilte hoiame.

image thumb3 pildikast – rakendus samm sammult

Liikudes startButton sündmusehalduris edasi on näha, et tehakse hetke kaamerapildist videopintsel ning seejärel värvitakse selle pintsliga kõik vajalikud ristkülikud. Seda viimast tehakse tegelikult küll alles siis, kui kasutaja annab luba tema kaamerapilti kasutada (viimane if).

Lisame stardinupule veel ka kaks Behaviorit ChangePropertyAction (see käib analoogselt efektide lisamisele, mida on näha järgmisel pildil). Ühes behavioris seame nii, et kui startButton-it vajutatakse peidetakse see nupp ära – Visibility = Collapsed ja teiseks seame Klõps! nupu kasutatavaks (isEnabled = true).

image thumb4 pildikast – rakendus samm sammult image thumb5 pildikast – rakendus samm sammult

Efektide lisamine

All reas on meil esialgu 5 identset ristkülikut, selleks et need oleks ristkülikud, mis näitavad kaamerapilti koos eriefektiga lohistame iga ristküliku peale Assets=>Effects aknast endale sobiva efekti.

image thumb6 pildikast – rakendus samm sammult 

Järgmiseks tuleks igale efekti ristkülikule lisada ka MouseLeftButtonUp sündmusehaldur, kus teeme sellise triki, et see efekt, mis on hetkel valitud ristkülikul lisatakse ka suurele kaamerapildi ristkülikule.

image thumb7 pildikast – rakendus samm sammult

Pildi tegemine

Pildi tegemise all ma mõtlen seda (eeldusel, et meil on tunnel kaamerast rakenduseni) , et teeme nupuvajutuse peale klõpsu (esimene rida peale if-i) ja lisame selle paremal olevasse ListBoxi näitamiseks ( teine rida ). Kuna snapShots massiiv on meil tüüpi ObservableCollection, siis ei pea me ListBoxiga eraldi midagi tegema, tema sisu uueneb automaatselt siis kui uueneb see konkreetne massiiv.

image thumb8 pildikast – rakendus samm sammult 

Pildi salvestamine kettale

See on nüüd pisut keerulisem osa, kuid õnneks on armas Silverlight kommuun kogu selle keerukuse meie eest ära lahendanud ning salvestamisel on meil abiks kaks juba valmisolevat klassi EditableImage.cs ja PngEncoder.cs, mille algallikas on Silverlight guru Shawn Wildermuth blogist. http://wildermuth.com/

image thumb9 pildikast – rakendus samm sammult

Kõigepealt taas eraldame ekraanilt need pikslid, mis meid huvitavad ning seejärel kutsume välja SaveBitmap meetodi, mis avab esmalt failisalvestamise dialoogi ning seejärel faili ka kettale kirjutab.

image thumb10 pildikast – rakendus samm sammult

Kindlasti peavad projekti olema lisatud need kaks klassi EditableImage.cs ja PngEncoder.cs ning ära unusta seal see namespace nime muutmast enda projekti nimeks :) .

Veebirakendusest päris rakendus

Viimaseks võib rakenduse muuta töölauale paigaldatavaks (OOB) rakenduseks (töpsem õpetus), selleks tuleb valida Project->Silverlight project Settings-> Enable Application Outside Browser. Seejärel on nii, et kui kasutaja teeb rakenduse peal paremkliki saab ta valida Install ning rakendus paigaldatakse tema arvutisse koos vajalike Start menüü ja Desktop shortcutidega :) .

Demo: http://dl.dropbox.com/u/3219952/ENETA/ENETAPhotoBooth/ENETAPhotoBoothSite/Default.html

Source:

http://dl.dropbox.com/u/3219952/ENETA/ENETAPhotoBooth.rar

Edu ja have fun :)

Kutse Eneta kommuuniõhtule: Silverlight 4

image001 Kutse Eneta kommuuniõhtule: Silverlight 4

24. märtsil tutvustab Jaana Metsamaa (see olen mina :) ) arendajatele Silverlight 4 imelist maailma ja selle võimalusi kasutades Expression Studio tööriistu. Fookuses on eelkõige uue versiooniga kaasnev funktsionaalsus.
Kas sa teadsid, et Silverlight ei tähenda alati kitsas liivakastiga piiritletud veebirakendusi vaid on paigaldatavad ka töölauarakendustena nagu Office või Windows Live Messenger? Mida lõbusat annab teha veebikaameraga peale tavalise video? Tule kohale või osale üle Live Meetingu ja saadki teada :) Eneta kommuuniõhtu on kõigile tasuta!

  • 24. märts, kolmapäev
  • kell 18:00 – 19:45
  • IT Kolledž, Raja 4c, r 316 (kaart) + Live Meeting
  • lektor: Jaana Metsamaa
  • sihtgrupp: arendajad, disainerid
  • tehniline tase: 200-300 (selgitus)
  • slaidid vs. demo: 20/80

Registreeru IT Kolledžis toimuvale loengule hiljemalt 22. märtsiks lehelhttp://bit.ly/eneta_silverlight4

Registreeru Live Meeting veebipõhisele loengule siin lehel http://bit.ly/eneta_silverlight4_lm. Virtuaalselt osalejatele edastame liitumise lingi 24. märtsil.

Esita küsimusi ja osale Silverlight arutelus Eneta foorumis. Registreeru Eneta kasutajaks ja saad tellida tulevaste kommuunisündmuste teavituse mugavalt e-postile.