BLOGas.lt
Sukurk savo BLOGą Kitas atsitiktinis BLOGas

Išleistas Silverlight 1.1 Tools Alpha for Visual Studio 2008

Parašė Sergejus | 2007-11-27 22:49

Šiandien pasirodė Silverlight 1.1 Tools Alpha for Visual Studio 2008, dabar galima pilnai pereiti prie Visual Studio 2008 kaip pagrindinės kūrimo aplinkos (asmeniškai aš tai padariau pirmadienį).

Rodyk draugams

Abipusis duomenų susiejimas ASP.NET

Parašė Sergejus | 2007-11-26 23:13

Atsiprašau už beveik savaitės pertrauką, vis tik gimtadienis reikalauja nemažai jėgų bei sveikatos :)

Abipusis duomenų susiejimas (two-way databinding) yra labai patogi, bet retai naudojama (iš dalies dėl savo ribotumo) ASP.NET galimybė. Jos dėka galima ne tik automatiškai užpildyti komponentus duomenimis iš verslo objekto, bet ir nuskaityti pasikeitusias reikšmes atgal į verslo objektą. Deja, bet abipusis duomenų susiejimas prieinamas tik GridView, FormView ir DetailsView komponentuose. Kadangi šiuo metu aš dirbu prie projekto, kuriame bandau kiek galima daugiau supaprastinti operavimą duomenimis, norėčiau parodyti jums minimalų abipusio duomenų susiejimo panaudojimą FormView pagrindu.

Tarkime, pagal duomenų bazės schemą mes sugeneravome žemiau pateiktus verslo objektus:

Tam, kad duomenis būtų ne tik pakraunamos į komponentus, bet ir nuskaitomos atgal, vietoje įprasto Eval metodo naudojame Bind metodą. Tas pats galioje ir pasirenkant įrašą iš elementų sąrašo:

Dabar prasidės pati įdomiausia dalis. Kaip tikriausiai pastebėjote, mano FormView komponentas naudojasi dataProducts duomenų šaltiniu (Data Source), o išsiskleidžiamas sąrašas ddlCategories – dataCategories. Pasižiūrėkime į jų aprašus:

dataCategories duomenų šaltinis naudoja CategoryController klasės GetList metodą kategorijų sąrašui gauti, kuris mano atveju atrodo taip:

dataProducts duomenų šaltinis naudoja GetProductByID metodą objekto gavimui ir Update metodą duomenų atnaujinimui. Šioje vietoje tikriausiai gali kilti klausimas: o kur Update metodo argumentai? Kadangi aš nurodžiau DataObjectTypeName savybę, ASP.NET sukurs man Product tipo objektą ir užpildys jo savybes pagal nurodytus Bind susiejimus. Naudojamas Update metodas parodytas žemiau:

Kaip matyti, abipusis duomenų susiejimas tikrai yra įdomus ir patogus dalykas. Šiuo metu jis turi pakankamai daug rimtų apribojimų, bet tikėkimės Microsoft darbai judės šia kryptimi. Jeigu jus šiuo metu naudojate kokį nors abipusio susiejimo sprendimą - parašykite! Manau ne tik man bus naudinga sužinoti apie tokių egzistavimą, o kol kas tiek…

Rodyk draugams

Lietuviška .NET vartotojų grupė (naujienos)

Parašė Sergejus | 2007-11-20 19:49

Kaip ir buvo planuota, TechEd Developers 2007 metu aš šnekėjau su INETA atstovais lietuviškos .NET vartotojų grupės kūrimo klausimais. Pradiniai darbai jau pradėti: yra nupirktas domenas (kol kas nesakysiu koks), sutarta dėl vartotojų grupės susitikimo vietos, beveiks rasta .NET vartotojų grupės puslapio talpinimo vieta. Šiuo metu svarstau ar verta kurti grupės puslapį „nuo 0“, ar pasinaudoti egzistuojančiais sprendimais, pavyzdžiui, BlogEngine.NET. Jeigu turite kokių pasiūlymų – rašykite komentaruose. Gruodį žadu surengti steigiamą .NET vartotojų grupės komiteto susirinkimą, kurio metu oficialiai ir turėtų gimti lietuviška .NET vartotojų grupė bei prasidėti narių registracija.

Rodyk draugams

Visual Studio 2008 ir .NET Framework 3.5 - išleisti!

Parašė Sergejus | 2007-11-19 20:26

Kaip aš minėjau pirmos TecEd Developers 2007 dienos apžvalgoje, Visual Studio 2008 ir .NET Framework 3.5 turėjo pasirodyti dar šį mėnesį. Ponai ir ponios, šiandien jie buvo oficialiai išleisti ir jau prieinami parsisiuntimui. Valio!

Rodyk draugams

.NET 3.5 tipų plakatas

Parašė Sergejus | 2007-11-18 12:42

Neseniai tapo prieinami Visual C# 2008 ir Visual Basic 2008 greitųjų klavišų plakatai bei .NET 3.5 tipų plakatas. Viską galima parsiųsti absoliučiai nemokamai!

Rodyk draugams

Įvadas į Microsoft Silverlight (2 dalis)

Parašė Sergejus | 2007-11-15 22:10

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.

Patobulinta Silverlight „Hello World!“ aplikacija

Prieš tai pateiktas pavyzdys neturėjo jokio atsako į vartotojo veiksmus. Pridėkime prie mūsų „Hello World!“ pavyzdžio reakciją į pelės paspaudimą. Tuo tikslu atidarysime Page.xaml.cs failą, kuris atrodo taip:

Panašiai kaip ASP.NET puslapiai turi paveldėti iš Page klasės, Silverlight aplikacijos paveldi iš Canvas klasės. Modifikuokime Page_Loaded metodą taip, kad paspaudus ant užrašo „Hello World!“ jo spalva pasikeistų iš žalios į raudoną. Kodas atrodys taip:

Dinaminės Silverlight aplikacijos

Įvade buvo paminėta, kad Silverlight įgalina kurti šiuolaikines dinamines web-aplikacijas .NET aplinkoje. Tam pasinaudosime Expression Blend 2 programa. Expression Blend buvo kuriamas kaip dizainerių įrankis, skirtas kurti XAML kalba pagrįstas Windows Presentation Foundation aplikacijų sąsajas (angl. interface). Kadangi Silverlight grafinė sąsaja irgi paremta XAML kalba, pradedant nuo 2 versijos Expressions Blend palaiko ir Silverlight projektus.

Visual Studio lange pažymime Page.xaml failą ir iš kontekstinio meniu pasirenkame Open in Expression Blend punktą:

Expression Blend 2 atidarė ne tik Page.xaml failą, bet ir visą mūsų Silverlight projektą.

Norint pakeisti „Hello World!“ užrašo dydį ant mygtuko paspaudimo:

  • Objects and Timeline įrankių juostoje pridedame naują laiko juostą (timeline).

  • Suteikiame norimą pavadinimą bei pažymime Create as a Resource, kad laiko juosta būtų pasiekiama iš C# kodo.

  • Sukurtoje laiko juostoje pertempiame žymę dviem sekundėmis į priekį.

  • Mažiname teksto bloko dydį.

  • Atnaujiname metodą, apdorojantį pelės paspaudimą

Po tokių manipuliacijų atitinkamai keičiasi ir XAML failas:

Apibendrinant…

Microsoft Silverlight 1.1 yra galinga technologija interaktyvių web aplikacijų kūrimui. Adaptuotos .NET 3.5 versijos dėka, programavimas su Silverlight bus intuityvus daugeliui .NET programuotojų. Kadangi technologija remiasi jau egzistuojančiais standartais (Javascript/Ajax, XAML, .NET kalbos), jums nebereikės jos nagrinėti „nuo nulio“, todėl perėjimas prie Silverlight dar paprastesnis.

Svarbu pabrėžti, Silverlight 1.1 šiuo metu yra tik alfa stadijoje, todėl spręsti apie galutinį produktą dar anksti. Palauksime kitų metų…

P.S. Visiems norintiems pamatyti Silverlight aplikacijas gyvai, užsukite į www.silverlight.net.

Rodyk draugams

Įvadas į Microsoft Silverlight (1 dalis)

Parašė Sergejus | 2007-11-13 22:03

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:

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

Pasileidžiame aplikaciją ir…

Pabaigai

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

Rodyk draugams

TechEd Developers 2007 - 5 diena

Parašė Sergejus | 2007-11-11 14:25

Penktadienis, TechEd Developers 2007 paskutinė diena. Iš karto jaučiasi, kad žmonės ruošiasi važiuoti namo. Tą patį patvirtina ir mažesnis sesijų skaičius.

Pirmoji prezentacija, kurioje aš buvau buvo “Avoiding Pitfalls When Hosting Windows Workflow Foundation in Real World ASP.NET Applications”. Tai buvo viena geriausių prezentacijų iš „best practice“ serijos. Jos metu György Balássy parodė Windows Workflow Foundation talpinimo pavyzdį ASP.NET puslapyje. Toks talpinimas šiuo metu nėra trivialus ir gerai dokumentuotas. Daugelis egzistuojančių straipsnių buvo skirti Workflow Foundation Beta2 versijai, kuri skiriasi nuo galutinės versijos talpinimo ASP.NET puslapiuose atžvilgiu.

Taip pat buvo naudinga sudalyvauti interaktyvioje sesijoje „ASP.NET Model View Controller (MVC)“. Taip, taip, jos metu buvo rodomas naujasis ASP.NET MVC karkasas.  Pats karkasas yra orientuotas į puslapių testuojamumo pagerinimą atskiriant duomenų atvaizdavimą nuo logikos. Kadangi MVC karkasas iš esmės skiriasi nuo šiuo metu naudojamų web formų, tai galima sakyti tai yra tiesiog alternatyvi technologija, bet ne web formų pakaitalas. Šiuo metu ASP.NET MVC karkasas neturi nei komponentų (asp:textbox, asp:gridview ir t.t.), nei patogios duomenų susiejimo (angl. data binding) galimybės. Todėl jo panaudojimas realiose aplikacijose kol kas yra ribotas.

„The Irresistible Forces Meet the Moveable Objects“ pristatymas buvo bendras visiems TechEd dalyviams. Jo metu buvo šnekama apie numatomus pasikeitimus programavimo modelyje, pereinant nuo didelių, patikimų ir brangių įrenginių prie mažų, nepatikimų ir pigių įrenginių.

Taigi pasibaigė TechEd Developers 2007 konferencija, jos metu tikrai buvo įdomu susitikti ir pasišnekėti su kitų šalių bendraminčiais, pasidalinti įspūdžiais bei aptarti artimiausias tendencijas programavime. Tokie seminarai leidžia pagerinti akiratį bei sužinoti apie dalykus, kurie nėra tiesiogiai susiję su darbu, bet geri pagelbėti priimant architektūrinius sprendimus ateityje.

Rodyk draugams

Teched Developer 2007 - 4 diena

Parašė Sergejus | 2007-11-10 00:32

Diena prasidėjo nuo pristatymo „The Next Release of ASP.NET – Significant Features Available Soon… (really soon)“. Kaip ir seka iš pavadinimo, jo metu buvo šnekama apie numatomus pakeitimus ASP.NET. Pagrindiniai faktai, kurie buvo išsakyti:

  • ASP.NET Feauters projektas yra pertvarkomas taip, kad dalis jo bus integruota į ateinančias ASP.NET versijas, o kita dalis bus prieinama CodePlex portale
  • ADO.NET Data Services (dabar žinomas kodiniu pavadinimu Astoria), skirtas duomenų atvaizdavimo ir duomenų gavimo atskirimui AJAX ir Silverlight aplikacijose, turėtų pasirodyti kitų metų pirmoje pusėje
  • Ateinanti ASP.NET versija tvarkingai apdoros naršyklės „Back“ mygtuko paspaudimą bei istorinius įrašus AJAX puslapiuose
  • Atnaujinti TreeView, Menu ir ListView komponentai korektiškam darbui su ASP.NET AJAX
  • Nauja Script Combining galimybė, kuri leidžia atsiųsti visus reikalingus JavaScript failus vienu užėjimu
  • Nauji Silverlight komponentai, įskaitant galingą MediaPlayer komponentą
  • Nauji dinaminiai ASP.NET komponentai, kurie generuoja puslapio elementus pagal nurodytą duomenų bazės schemą

Vienas didžiausių pristatymo įspūdžių – buvo gyvai parodytas naujas ASP.NET MVC karkasas, apie kurį esu rašęs prieš kurį laiką. Penktadienį dalyvausiu interaktyvioje sesijoje išskirtinai skirtoje minėtam karkasui. Vienas dalykas kuris nustebina labiausiai, pasirodo ASP.NET 3.5 yra sukurtas ant System.Web 2.0 versijos. Pilnai .NET Framework 3.5 bus prieinamas tik sekančiame ASP.NET atnaujinime, kuris šiuo metu vadinasi ASP.NET 3.6!

Sesija „Real World Unit Testing with Team System for Database Professionals“ buvo skirta Visual Studio Team System for Database Professionals galimybėms pademonstruoti. Jos metu buvo pademonstruotas išsaugotų procedūrų testavimas, testinių duomenų generavimas bei išsakyti keli duomenų bazių testavimo pasiūlymai. Taip pat buvo akcentuota, kad Visual Studio 2008 Team System for Database Professionals yra ne kas kita kaip 2005 DB Pro versija kartu su Service Pack 1.

„Discussing Proven Practices for using Smart Client Software Factory and web Client Software Factory“ ir „LINQ to “X”, ADO.NET Entity Framework, DataSets & Co“ interaktyvių sesijų metu Microsoft darbuotojai atsakinėjo į dalyvių klausimus. Įdomu tai, skirtingai nei aš ir daugelis kitų dalyvių manė, Entity Framework nėra sukurtas virš LINQ su SQL technologijos, o yra dvi visiškai skirtingos alternatyvos. Practices and Patterns grupė pranešė apie savo naują aplikacijos bloką skirtą Windows Presentation Foundation.

Rodyk draugams

TechEd Developers 2007 - 3 diena

Parašė Sergejus | 2007-11-09 08:15

Trečiadienis pasižymėjo temų įvairove: pradedant ASP.NET ir baigiant .NET Micro Framework. Pirmasis pristatymas „Building Highly Scalable ASP.NET Web Sites by Exploiting Asynchronous Programming Models“ buvo skirtas ASP.NET 2.0 asinchroninio modelio aptarimui (nepainioti su AJAX). Jo metu buvo aptarta:

  • ASP puslapio Page direktyvos atributas Async, įgalinantis asinchroninį duomenų apdorojimą
  • AddOnPreRenderCompleteAsync metodas, kuris asinchroniškai vykdo nurodytą kodą (pavyzdžiui, kreipinį į duomenų bazę) atskiroje gijoje
  • PageAsyncTask objektas, kurio dėka galima asinchroniškai vykdyti kelis nurodytus kodo fragmentus
  • IHttpHandler interfeiso asinchroninis analogas IHttpAsyncHandler
  • HTTP modulio ProcessRequest metodo asinchroniniai analogai BeginProcessRequest ir EndProcessRequest

Interaktyvios sesijos „Unit Testing Tips and Techniques with Visual Studio 2008 and the .NET Framework“ metu buvo aptarti praktiniai grafinės aplinkos, priėjimo prie duomenų, gijų ir Mock objektų testavimo aspektai bei palyginti populiariausi .NET testavimo karkasai: NUnit, MbUnit ir MSTest. Ypač patiko pasiūlymas testavimo metodų vardus sudarinėti pagal tokį šabloną: TestuojamoMetodoPavadinimas_Scenarijus_Elgsena.

Likusios prezentacijos buvo labiau pažintinio pobūdžio. „Entity Framework: Application Patterns“ pristatymo metu buvo aptarti Entity Framework panaudojimo scenarijai dviejų-ir trijų-sluoksnių programose bei Windows Communication Foundation servisuose. „Small is Beautiful. Building Solutions with .NET Micro Framework“ sesijos metu buvo demonstruojamos .NET Micro Framework galimybės. .NET Micro Framework yra skirtas įvairių tipų integruotiems įrenginiams programuoti.

Taigi tiek šiam kartui!

Rodyk draugams