BLOGas.lt
Sukurk savo BLOGą Kitas atsitiktinis BLOGas

Įvadas į Silverlight 2.0 - 6 dalis

Parašė Sergejus | 2008-04-30 20:18

Praeitoje įvado dalyje mes atvaizdavome video klipus mūsų Silverlight puslapyje. Šiandien realizuosime paieškos galimybę. Tam mes suskaidysime pagrindinį puslapį į dvi dalis: kairėje bus atvaizduojami video klipai, o dešinėje bus realizuota klipų paieška bei pasirinkto klipo peržiūra (tai bus realizuota kitoje dalyje).


Panašiai kaip ir HTML, Grid elementas turi eilučių ir celių sąvoką. Tam kad pagrindiniame mūsų Grid komponente aprašyti vieną eilutę ir du stulpelius reikalingas žemiau pateiktas kodas:



Žvaigždutė plotyje ir aukštyje rodo, kad Grid elementas turi užimti visą prieinamą plotą. Paprastumo dėlei, paieškos komponentą aprašykime kaip įvedimo lauką ir mygtuką:



Pateiktame pavyzdyje aš išreikštinai nusakau, kad paieškos komponentas turi būti antroje celėje (numeracija prasideda nuo 0). Kitas įdomus aspektas – vietoje įprasto įvedimo laukelio naudojamas WatermarkedTextBox, jo dėka galima rodyti tekstą tuščiame įvedimo lauke.



Aprašę grafinį elementą, galima pereiti prie logikos. Norėdami atlikti video klipų paiešką video.msn.com puslapyje, reikia pasinaudoti specialiai suformuota nuoroda:



Pati paieška galėtų atrodyti taip:



kur tb – tai mūsų WatermarkedTextBox. Iki pilno funkcionalumo mums beliko aprašyti paieškos mygtuko paspaudimą:





Rezultate mes turime veikiančią Silverlight aplikaciją, kurios pagalba galima ieškoti vaizdo įrašų:



Taigi tiek šiam kartui, kitoje dalyje mes aprašysime Silverlight komponentą, skirtą video klipų peržiūrai.

Rodyk draugams

Antrasis Lietuvos .NET vartotojų grupės susitikimas

Parašė Sergejus | 2008-04-30 08:19

Sveiki,


noriu pranešti džiugią naujieną: prasidėjo registracija į antrą Lietuvos .NET vartotojų grupės susitikimą! Daugiau informacijos grupės puslapyje.

Rodyk draugams

Duomenų bazės globalizacijos projektavimo šablonas

Parašė Sergejus | 2008-04-29 18:29

Bežiūrint Rob Conery video medžiagą skirtą ASP.NET MVC aplikacijos kūrimui, buvo parodytas mano akimis labai įdomus duomenų bazės globalizacijos projektavimo šablonas. Pagrindinė jo esmė – iškelti verčiamus laukus į atskirą vaikinę lentelę:



Įdomiausia tai, kad aprašant verslo esybes laukai yra apjungiami pagal naudojamą lokalę, todėl operuojant esybėmis apie globalizaciją tenka galvoti ypač mažai.

Rodyk draugams

Įvadas į Silverlight 2.0 - 5 dalis

Parašė Sergejus | 2008-04-28 19:55

Ketvirtoje įvado dalyje mes jungiamės prie video.msn.com puslapio, parsisiuntėme XML dokumentą ir konvertavome jį į VideoSource objektų sąrašą. Šiandien mes apibrėšime lentelę, skirtą vaizdo informacijos atvaizdavimui.


Tie kas programuoja ASP.NET gerai pažįsta GridView komponentą, kurs moka automatiškai generuoti stulpelius priklausomai nuo duomenų šaltinio. Įdomu tai, kad labai panašus komponentas yra ir Silverlight ir vadinasi jis DataGrid. Norint pasinaudoti šiuo komponentu, pirma reikia pridėti nuorodą į System.Windows.Controls.Data.dll biblioteką:




Minimaliausias DataGrid aprašas atrodytų taip:



Panašiai kaip ASP.NET GridView komponentas duomenų susiejimui naudoja savybę DataSource, DataGrid turi savybę ItemSource. Tam kad atvaizduoti iš XML dokumento konvertuotą informaciją atnaujinkime metodą wc_DownloadStringCompleted:



Rezultate mes gauname pilnai funkcionuojančią lentelę su slankiojančiais stulpeliais ir redagavimo galimybe:



Panašiai kaip ir GridView atveju, DataGrid elementui mes galime aprašyti stulpelių šablonus, todėl galutinis lentelės vaizdas ribojimas tik jūsų ir dizainerio fantazija. Taip pat aš norėčiau parodyti dar vieną alternatyvią komponentų išdėstymo galimybę – StackPanel komponentą:



Atkreipkite dėmesį į paryškintas vietas. Taip XAML kalboje yra aprašomas duomenų susiejimas (šiuo atveju Binding aprašo VideoSource elemento savybę, kurios reikšmė bus atvaizduojama lentelėje). Viso šito rezultatas atrodys panašiai į pateiktą žemiau:



Tai tiek šiam kartui, kitoje įvado dalyje mes realizuosime vaizdo klipų paiešką.

Rodyk draugams

Įvadas į Silverlight 2.0 - 4 dalis

Parašė Sergejus | 2008-04-22 21:56

Praeitoje dalyje mes sukūrėme laukimo elementą WaitControl, kurį panaudojome mūsų pagrindiniame Silverlight puslapyje:



Šiandien mes prisijungsime prie catalog.video.msn.com puslapio ir pasiimsime XML dokumentą su video klipų aprašais, kurį vėliau konvertuosime į .NET objektus LINQ to XML pagalba.


Pirma apibrėžkime nuorodą, kuri grąžins atsitiktinį video klipų sąrašą:



XML duomenų gavimui apibrėžkime metodą GetVideos, kuris asinchroniškai kreipsis į resursą ir pasiims duomenis:



Kaip matyti, GetVideos naudojasi WebClient klase, kuri leidžia ypač paprastai siusti duomenis HTTP protokolu. Kadangi siuntimas vyksta asinchroniškai, tai turi būti aprašytas metodas atsakingas už rezultato apdorojimą:



Kaip matyti, pasibaigus siuntimui mes paslepiame laukimo komponentą, o testavimo tikslais, rezultatą atvaizduojame ekrane pranešimo lange (JavaScript alert analogas):



Tam tereikia iškviesti GetVideos metodą mūsų puslapio konstruktoriuje:



Kadangi XML duomenis mes jau turime, reikia apibrėžti atitinkamą C# klasę ir juos susieti:



O dabar pasinaudosime LINQ to XML pagalba ir konvertuosime XML į C# objektus:



Norėčiau atkreipti dėmesį į tai, kad XML dokumentas naudoja XML vardų sritį, todėl prie kiekvieno elemento pavadinimo tenka pridėti ir vardų sritį. Beliko atlikti du dalykus:



  • aprašyti video klipų sąrašą


  • bei atnaujinti wc_DownloadStringCompleted metodą


Voilà! Mes parsisiuntėme XML informaciją iš video.msn.com puslapio ir konvertavome ją į C# objektus.

Rodyk draugams

Pristatymas MIDI IT konferencijoje

Parašė Sergejus | 2008-04-21 22:28

Kaip ir kiekvienais metais Vilniaus universiteto matematikos ir informatikos fakultete balandžio pabaigoje vyksta MIDI (matematikų ir informatikų dienos). Jų metu vyksta IT konferencija, kurios metu įvairių firmų atstovai skaito pranešimus IT tematika. Šiais metais pirmą kartą .NET vartotojų grupės vardu aš darysiu pristatymą iš Silverlight 2.0. Taigi kviečiu visus MIFiečius į mano pranešimą balandžio 24, 17:00, 101 auditorijoje.



P.S. Ateinančio .NET vartotojų grupės susitikimo metu aš darysiu tą patį pristatymą tik žymiai detaliau.

Rodyk draugams

Įvadas į Silverlight 2.0 - 3 dalis

Parašė Sergejus | 2008-04-20 14:28

Kaip ir žadėjau, tesiu įvadą į Silverlight 2.0 su nauju, labiau praktiniu, pavyzdžiu. Šį kartą kursime Silverlight aplikaciją, kuri ims informaciją apie vaizdo medžiagą iš video.msn.com puslapio kaip XML failą, konvertuos ją į objektus LINQ to XML pagalba, įgalins naudotojus atlikti norimų klipų paiešką bei leis juos peržiūrėti.


Aplikacijos kūrimą pradėsime nuo tokio pradinio XAML failo:



Kaip matyti, mes naudojame gradientinę fono spalvą. Kadangi mes kreipsimės į video.msn.com paslaugą per tinklą – tai gali užtrukti, todėl prasminga pradėti aplikacijos kūrimą nuo laukimo elemento. Mūsų laukimo elementas suksis nuo puslapio pasikrovimo ir iki to momento, kai mes pilnai gausime XML failą. Šį elementą mes apibrėšime kaip atskirą Silverlight komponentą, o kursime jį Expression Blend 2.5 pagalba.


Pirma Visual Studio aplinkoje mes turime pridėti naują Silverlight komponentą. Suteikime jam WaitControl pavadinimą:



Atsiradusiame lange ištrinkite atributą Background, nes mums reikalingas permatomas fonas, o atributų Width ir Height reikšmes pakeiskite į 200:



Dabar pereiname į Expression Blend 2.5 ir atidarome mūsų projektą:



Matome, Expression Blend puikiausiai atpažįsta Visual Studio sprendimus bei projektus. Atidarome WaitControl.xaml failą ir paišome apskritimą:



Dabar mums reikia pakeisti tam tikrus apskritimo nustatymus, tam pereiname į kortelę Properties:



Tam kad nustatyti mūsų apskritimo fono spalvą, reikia pereiti į kortelės Properties skilti Brushes ir pakeisti žemiau nurodytus parametrus:


  


Rezultate jus turėtumėte gauti XAML kodą panašų į



Norėdami, kad pasikrovus puslapiui mūsų apskritimas suktųsi, reikia pridėti dar du blokus RenderTransform ir Triggers:



Aukščiau pateiktas kodas aprašo, kad iš karto po puslapio pasikrovimo bus keičiamas mūsų apskritimo kampas nuo 0 iki 360 laipsnių per 1 sekundę ir tai vyks amžinai.


Tam kad mūsų laukimo komponentas atrodytų įdomiau, aprašykime antrą apskritimą, nukopijuodami aukščiau pateiktą kodą keičiant tik elementų pavadinimus ir kelis atributus, atsakingus už apskritimo išsidėstymą ekrane:



Kadangi tai yra laukimo komponentas, tai mums reikės metodų, kurių pagalba galima bus sustabdyti animaciją ir paleisti ją iš naujo. Pereiname į failą WaitControl.xaml.cs ir pridedame keletą eilučių:



Dabar mūsų laukimo komponentas pilnai užbaigtas ir beliko jį panaudoti mūsų Silverlight puslapyje. Tam pirma reikia įtraukti nuorodą į mūsų komponentą bei aprašyti patį komponentą:



Rezultate mes gavome šaunų sukimosi komponentą!



Tiek šiam kartui, kitoje dalyje mes dirbsime su XML duomenų gavimu, konvertavimu ir atvaizdavimu.

Rodyk draugams

Stažuotė Microsoft

Parašė Sergejus | 2008-04-15 12:43

Ką aš galiu ir pridurti – mane pakvietė atlikti praktiką Microsoft būstinėje, Redmonde!


Viskas prasidėjo sausį, kada universitete buvo paskelbtas skelbimas, siūlantis atlikti praktiką Microsoft. CV reikėjo siųsti prodekanui, kuris savo nuožiūra turėjo pasiūlyti Microsoft Lietuva kelis studentus nuo mūsų fakulteto.  Iš pateiktų kandidatų Microsoft Lietuva išrinko jų nuomone tinkamiausius, su kuriais ir susitiko gyvai. Per susitikimą manęs klausė apie patirtį, papasakojau apie savo blogą bei tuo metu tik dar kuriamą .NET vartotojų grupę, o pabaigoje paprašė išspręsti vieną uždavinį ir parašyti jo sprendimą C kalba. Po susitikimo aš jaučiausi gana gerai ir vertinau savo šansus kaip 50/50.


Po kelių savaičių man atėjo atsakymas, kad esu atrinktas atstovauti Lietuvai tolesnėje atrankoje. Aš buvau be galo laimingas, bet būtent nuo šios vietos ir prasidėjo tikroji atranka. Kaip man atrodė, tereikėjo dar vieno pokalbio ir aš Amerikoje! Klydau… Po Lietuvos laukė Baltijos šalių atranka, todėl man teko šnekėtis telefonu su Microsoft Latvia darbuotoja. Interviu trūko 40 minučių anglų kalba ir man tai buvo pirmas tokio pobūdžio iššūkis. Po pokalbio su Microsoft Latvia atrodė, kad šiais metais man atranka tuo ir pasibaigs, bet praėjo kelios savaitės ir aš sulaukiau elektroninio laiško su teigiamu atsakymu.


Nuo tos akimirkos mano CV buvo perduotas į centrinę Microsoft būstinę. Pirma man parašė personalo darbuotoja, apgailestaujanti kad šiais metais yra ypač didelė konkurencija, todėl reikės papildomai raštu atsakyti į klausimus (jų buvo apie 12). Klausimai buvo tiek apie patirtį, tiek apie mano požiūrį į vieną ar kitą dalyką, tiek iš testavimo. Išsamiai į juos atsakęs, išsiunčiau laišką ir laukiau rezultatų. Po kelių savaičių atėjo atsakymas, kad aš praėjau atranką raštu ir dabar jie nori pasišnekėti su manimi telefonu.


Pokalbis su Microsoft USA trūko apie pusvalandį, bet per jį manęs spėjo paklausti krūvos technologinių dalykų bei užduoti loginį uždavinį, kurie pas juos yra ypač populiarūs. Sprendimą į loginį uždavinį sugalvojau jau prieš pat pabaigą, bet to užteko, kad man pasakytų taip… mes norime su tavimi susitikti gyvai. Man pasiūlė susitikti Maskvoje, atsiuntė bilietus ir po dviejų mėnesių aš jau buvau Rusijoje.


Maskvoje man reikėjo susitikti su trimis žmonėmis: su programuotoju – pas kurį reikėjo realizuoti vieną funkciją, su testavimo programuotoju – kur man reikėjo realizuoti ir ištestuoti vieną funkciją, ir galiausiai su personalo darbuotoja – kur pirma paklausė kaip aš testuočiau steką, o vėliau uždavė net 3 loginius uždavinius. Su pirmais dviem aš susidorojau sėkmingai, o paskutinį pavyko išspręsti tik jos pagalba. Viso pokalbio metu kiekvienas iš trijų žmonių bandė vienaip ar kitaip palaikyti visus kandidatus, kas buvo ypač malonu.


Po pokalbių negalvojau kad turiu daug šansų, todėl nusprendžiau bent jau pasinaudoti proga, kad esu Maskvoje J. Praėjo mėnuo ir gavau išsvajotąjį elektroninį laišką su pasiūlymu atlikti praktiką… Valio! Nuo liepos 1 aš jau Microsofte.

Rodyk draugams

Pagalbiniai Visual Studio 2008 įrankiai

Parašė Sergejus | 2008-04-13 22:14

Dirbant vis daugiau ir dagiau Visual Studio 2008 aplinkoje prisireikia įvairių pagalbinių įrankių. Šiandien norėčiau pasidalinti dviem, mano manymu šauniais, įrankiais: PowerCommands for the Visual Studio 2008 ir Resource Refactoring Tool. Kaip nebūtų keista, bet tokie paprasti dalykai, kaip nuorodų (angl. Reference) kopijavimas ar automatinis kodo formatavimas išsaugant kodą, gali sutaupyti nemažai laiko!


Jeigu jus naudojate įrankius, kuriais norėtumėte pasidalinti - rašykite komentaruose!

Rodyk draugams

Įvadas į Silverlight 2.0 - 2 dalis

Parašė Sergejus | 2008-04-11 23:20

Praeitoje dalyje mes sukūrėme paprastą Silverlight 2.0 aplikaciją. Šiandien šią aplikaciją mes praturtinsime video klipu ir paprasta animacija.


Tam kad atvaizduoti video informaciją, Silverlight 2.0 galima pasinaudoti MediaElement komponentu, kurį patalpinsime žemiau StackPanel:



Norėčiau atkreipti dėmesį į tai, kad Robots.wmv yra patalpintas į ClientBin katalogą, bet vienintelė vieta lokaliame kompiuteryje prie kurios Silverlight gali prieiti yra ClientBin katalogas, todėl jo išreikštinai nurodinėti nereikia. Kadangi mes nesame nurodę komponento dimensijų, video klipas bus rodomas per visą langą:



O dabar pasinaudokime WPF ir Silverlight 2.0 galia: padarykime šį video klipą prieš tai aprašyto įvedimo laukelio fonu. Tai padaryti labai paprasta, užtenka paslėpti video klipą ir nurodyti VideoBrush elementą kaip įvedimo laukelio foną:




Štai ir viskas, mes turime įvedimo laukelį su dinaminiu fonu!



Ženkime dar vieną žingsnį pirmyn ir pridėkime įvedimo laukeliui sukimosi animaciją. Tam pirma aprašysime sukimosi transformaciją iš karto po TextBox.Background elemento:



Suteikiame mūsų transformacijai pavadinimą rotate ir nurodome pradinį kampą bei sukimosi taško koordinates. Kadangi įvedimo laukas turi suktis iš karto po puslapio pasikrovimo, reikia apibrėžti įvykį, ties kurio prasidės animaciją bei pačią animaciją:



Rezultate mes gausime besisukantį įvedimo laukelį, kurio fone rodomas video klipas:



Taigi tiek šiam kartui, šioje dalyje mes praturtinome įprastą įvedimo laukelį video medžiaga ir animacija. Kitoje dalyje mes pradėsime kurti labiau praktišką Silverlight aplikaciją.

Rodyk draugams