Archive for the ‘Silverlight’ Category

Örömmel jelentem, hogy végre megjelent a nagy magyar Silverlight könyv! 

Silverlight könyv

A könyv 5 szerző és 1 szakmai lektor keze munkáját dicséri: Árvai Zoltán, Fár Attila Gergő, Novák István, Reiter István, Tóth László, és Jómagam. Ezúton is szeretnék köszönetet mondani Novák Istvánnak a fáradhatatlan szerkesztői és lektori munkájáért!

Nem kis munka volt elkészíteni, de reméljük megérte. 🙂 A könyv az alábbi fejezetekből tevődik össze:

1. Silverlight és XAML alapok
2. Layout Management
3. Alapvető vezérlők
4. Animáció és média
5. Stílusok és testreszabhatóság
6. Adatok kezelése
7. Saját vezérlők készítése
8. Kommunikáció a kliens és a szerver között
9. A Silverlight rejtett képességei
10. Üzleti alkalmazások fejlesztése Silverlightban
11. Összetett adatok megjelenítése és kezelése
12. Moduláris alkalmazások fejlesztése

És az alábbi címről tölthető le:

http://devportal.hu/Fajlok/Default.aspx?shareid=1&path=Konyvek%5cSilverlight+4+-+A+technol%c3%b3gia%2c+%c3%a9s+ami+m%c3%b6g%c3%b6tte+van

Észrevételeket, megjegyzéseket örömmel fogadunk.

Utolsó gondolatként még annyit jegyeznék meg, hogy mellesleg ez a 200. blogbejegyzésem és azt hiszem keresve se találhattam volna jobb témát. 😉

Az október 11.-én megrendezésre került MiniMix konferencián szerény személyem is gazdagította az előadók hadát, melynek főattrakciója minden kétséget kizárólag a vizezett sör és a virsli + kolbász páros volt. 😉

Azok, akik esetleg nem tudtak eljönni a MiniMix-re, vagy nem tudtak beülni az összes őket érdeklő előadásra (pl.: időbeni ütközés miatt) azok számára a devportal.hu/tv oldalon (a legördülő listában a Minimix konferencia 2010. október 11. legyen kiválasztva) elérhetőek az előadásokról készült felvételek.

Az előadásomban említettem, hogy elérhetővé teszem a diasort, illetve a demók teljes forráskódját. Hát, most jött el ez a pillanat, íme, a  kb. 200 Mb-nyi adat.

MiniMix 2010 - Adat vizualizáció Silverlight 4-ben

Diasor 

Itt érhető el 

Demó I. – Óra

 Kezdő projekt

Kész projekt

Demó II. – Diagram

 Kezdő projekt

Kész projekt

Demó III. – Pivot

 Forrás I, II

Kezdő projekt I, II

Kész projekt I, II

 

Az összes anyag az alábbi SkyDrive mappán keresztül elérhető: http://cid-8dcaf3b0da4fb828.office.live.com/browse.aspx/MiniMix%20konferencia%20anyagok

Hát ezzel is megvolnék: tartottam diákoknak Silverlight haladó tanfolyamot, olyan témakörökről és technológiákról, melyek egy része rosszul dokumentált.

Ebben a blogbejegyzésben szeretném Veletek megosztani a tapasztalataimat a tanfolyam előkészületeitől egészen a pénteki euforikus érzésig (vége-vége-vége).

 
A történet ott kezdődött, hogy július közepén a számítógépem alaplapja és tápegysége rendkívül intim viszonyba került egymással, konkrétan olyan forróság járta át őket, hogy összeégtek. 

A képhez nem fűznék kommentárt, a lényeg a lényeg, hogy tönkrement a gépem. Már egy ideje gondolkodtam azon, hogy kéne vennem egy notit, ezért úgy láttam éppen itt az ideje, eme beruházás materializálásának. Meg is rendeltem a gépet, amelyre azt mondták, hogy azt követő hét elejére meg is lesz… hát nem így lett… végül is augusztus 3.-ától tudtam használatba venni az én kis DRÁGASZÁGom. Ennek köszönhetően egyik géptől a másikig folyton cápáztam itthon a család számítógépei között, amíg meg nem lett az új gépem. Így át tudtam írni az SL kezdőknek tanfolyam demóit és diáit SL 4.0-ásra. Szerencsére Bálinttól kaptam egy kölcsön notit július legvégén emiatt úgy, ahogy tudtam dolgozgatni. Persze én naivan azt gondoltam, hogy a délelőtti kezdőknek szóló tanfolyam után lesz még annyi lelkierőm délutánonként, hogy dolgozni tudok a haladóknak szóló tanfolyamon. Hát nem így lett…  Így maradt egyetlen hetem arra, hogy összedobjam azt a 6 diasort és azt a több mint 30 demót, amelyet a múlt héten nagyrészt bemutattam a nagyérdeműnek.

Szóval úgy kezdtem el dolgozni AZ ANYAGON, hogy kevés időm volt és egy vadi új gépem. Már az első nap rájöttem, hogy amit kiadtam előzetesen tematikát az át kell gondolnom, mivel ennyit nem lett volna időm normálisan kidolgozni. Így hát kiválogattam a szerintem érdekesebb és valamilyen szinten nehéz témaköröket, majd átírtam a tanfolyam címét. Erre azért volt szükség, mivel nem egy Silverlight dig deep into tanfolyamot készültem összeállítani (pl.: Adatkötés alfától omegáig és tovább), hanem egy olyat, ahol olyan technológiákat mutatok be, melyek Silverlight alapúak és az üzleti alkalmazások fejlesztésénél nyújtanak nagy segítséget. Ezért lett a tanfolyam új neve: Silverlight-os Technológiák haladóknak.

Ezek után jött a témakörök szintjeinek meghatározása. Mivel tudtam, hogy az SL kezdőknek tanfolyamról is fognak jönni egy jó páran (őket hívtam a tanfolyamon „A bátraknak”), ezért nem mehettem túlságosan mély szintre. (Bár alapból nem is terveztem, de ez így jó kifogásnak tűnt  ) Emiatt megpróbáltam belőni a LEVEL 300-at, vagyis bevezető előadást akartam tartani az egyes technológiákról, de úgy, hogy azért néhány dolgot feltételezek a hallgatóságról. Konkrétan minimális SL (pl.:  ha azt mondom, hogy kétirányú adatkötés, akkor ne pislogjanak) és szoftvertechnológiai alapismeretek. Utóbbira azért volt szükség, mert eléggé sok ott használt fogalmat szerettem volna felhasználni a tanfolyam során. (pl.: Design Pattern, Inversion Of Control, N-tier, MVC, szoftver életciklus, stb.) Végülis úgy döntöttem ezeket is bele veszem az anyagba, mert nem árt, ha össze vannak foglalva egy-egy dián. Továbbá az anyag összeállítása során fontosnak tartottam, hogy legyenek az egyes témakörök végén egyéni munkák, hogy a hallgatók el tudják mélyíteni a tudásukat, így a neten eléggé sokat keresgéltem megfelelő step-by-step-ek után (amiket aztán a tanfolyamon skip-eltünk , de erre majd mindjárt visszatérek).

Most, hogy már minden megvolt az előkészületek közül, így neki is vágtam a demók és diák gyártásának. (Ekkor már megvoltak a témakörök, de a sorrend még nem). Elsőként a MEF-hez készítettem el a demókat, amivel eléggé gyorsan haladtam, mivel semmilyen problémába nem futottam bele. Utána jött a diakészítés, aminél a legnagyobb fejtörést, mint mindig, az adott technológia bevezetése okozta. Így a slideshare oldaláról sok-sok diasort leszedve válogattam össze a megfelelő ábrákat. Bár tudom eléggé hihetetlennek hangzik, de nem rendelkezek túl nagy önbizalommal, vagy pontosabban fogalmazva szeretem, ha megerősítenek abban, amit csinálok, hogy az jó. Ezért Árvai Zoli barátomat megkértem, hogy néhány diasoromat legyen szíves nézze át. Ez utónis köszönöm a sok-sok javaslatot és véleményt, amellyel elősegítette, hogy a diasorok teljesebbek és precízebbek legyenek.

A többi diasor és demóalkalmazás elkészítése nagyrészt gördülékenyen ment kivéve az MVVM és a Dynamic Languages  (dinamikus nyelvek) részt. Ezekkel a fő probléma az, hogy nincsen egy hivatalos forrás, ahonnan meg lehet őket jól tanulni, így nincs egy tematika, ami alapján érdemes lehet végig venni az egyes feature-öket. Emiatt az MVVM-nél én inkább magára a DI-re és a többi technológiával való együttműködésre fektettem a nagyobb hangsúlyt, nem pedig pl.: a ViewModel-ek között kommunikációra, a validációra, stb.. „Ahány előadó, annyiféle megközelítés”.
A dinamikus nyelvekkel kapcsolatban a legnagyobb problémát az okozta, hogy meghatározzam, melyik nyelvből, mennyit kéne ahhoz bemutatni, hogy se ne legyen túl felületes, se ne legyen túl mély. (Eléggé nehéz megtalálni, ezt az arany középutat.) Ja és persze a legjobb az egészben, hogy 2 nyelv alapjait kell bemutatni + dinamikus nyelvi koncepciókat + mindez, hogyan illik bele az SL programozási modellbe és milyen előnyeink származnak ebből. Szóval summázva, nem egy egyszerű dolog. (Dynamic Langauges-re még a blogbejegyzés végén visszatérek).

Augusztus 8.-án befejeztem a diagyártást és félve bár, de úgy saccoltam, hogy az összeállított anyagokat kb. 4 nap alatt le tudom adni. Hát itt is sikerült eléggé alul becsülnöm magam , ugyanis az első három nap alatt vettük végig az első két témakört (WCF Duplex Communication, WCF Data Services (+ REST)). A maradék két napra maradt 4 diasor, amit végül lecsökkentettem háromra (Dynamic Languages-t kivettem a repertoárból).  Ennek persze egyrészt én vagyok az oka, hiszen eléggé sokat meséltem mindenféle silverlight-os és szoftver technológiai dolgokról, hogy még tisztább legyen a kép egy-egy adott technológia kapcsán. Másrészről viszont a hallgatóság is közrejátszott a tanfolyam haladási sebességének alakulásában. Voltak egy páran, akik még nem érezték teljesen magukénak a XAML szintaxisát vagy a WCF-es proxy használatát, így eléggé sok elírás és rossz helyre kattintás miatt, sok időt kellett eltöltenem a problémák kibogozásával. Ne értsétek félre ez nem probléma, csak ha a résztvevőknek nagyobb tapasztalata lett volna, és nagyobb biztonsággal tudtak volna mozogni a Silverlight-ban, akkor egy kicsit gyorsabban is haladhattunk volna. (Illetőleg, akik értettek hozzá azok nem unatkoztak volna). A kicsit lassabb haladás miatt sajnos ki kellett vennem az egyéni laborgyakorlatokat, ami szerintem fontos, de végülis, aki akar vele a későbbiekben foglalkozni úgy is végig fog csinálni egy jó pár ilyet…

Összességében nekem azt sikerült levonnom a tanfolyamból az anyagokat illetően, hogyha a WCF Duplex kommunikációt kihagyom és esetleg a WCF Data Services elején kevesebbet foglalkozok a REST-es résszel, akkor az 5 napba ilyen tempóval belefér az 5 témakör (-duplex, -rest, + dynamic). Bár nehezen mondok le a Duplex-ről, mert én eléggé sokat foglalkoztam vele és (aki olvasgatja a blog-omat, az tudja, miről beszélek), de végülis a többi technológia sokkal gyakrabban előfordul az üzleti alkalmazásoknál, mint ez, ezért ezt a jövőben lehet csak a kispadon tartom.

Ami magát a tanfolyam egészét illeti, nekem nagyon pozitív benyomásom van róla, ugyanis sok értelmes ember verődött ott össze, akik közül sokan mertek kérdezni is . A végén kitöltetett értékelő lap alapján nagyon jó visszajelzéseket kaptam, amelyet köszönök szépen.  Szóval én úgy értékelném a tanfolyamot, hogy jól sikerült, és remélhetőleg a résztvevők is sokat tanultak belőle.

Ami pedig a jövőt illeti. Egyrészt úgy tervezem, hogy a kimaradt dinamikus nyelvekből, majd készítek valamikor egy rövid screencast sorozatot, amely bemutatja az alapjait az egésznek. (Lehet, hogy a videók angol nyelvűek lesznek, de egyelőre még nem döntöttem el. Szerintetek milyen nyelvű legyen? Mivel nincs túl sok ilyen témájú angol nyelvű videó, ezért én eléggé erőteljesen hajlok afelé, hogy ilyet készítsek, így széles körben is tudom terjeszteni az igét ). Másrészt pedig a jövőben előfordulhat, hogy több magasabb szintű (level 300-400) tanfolyamot vagy előadását fog tartani az MS. Remélem a többi előadó is látja ennek a szükségességét .
 

Akinek bármilyen véleménye, megjegyzése, esetleg ötlete van a tanfolyammal, a diasorokkal, a demókkal kapcsolatban kérem, ossza meg velem, hogy a jövőben még jobbá tudjam alakítani őket. Előre is köszönöm a segítségeteket.

A mai nap anyagait a SkyDrive-on a 5. nap mappában találhatjátok meg.

Mai nap anyagai

1. diasor – Managed Extensibility (teljes)

Prezentáció

Demo 2 – ImportMany

Demo 3 – Catalogs

Demo 4 – Recomposition

Demo 5 – MetaData + Lazy-loading

Demo 6 – Dynamic Loading

 

2. diasor – Model View ViewModel

Prezentáció

Demo 1 – Code-Behind kód átírása MVVM stílusúra

Demo 2 – MVVM + WCF-es webszolgáltatás

Demo 3 – Command használata

Demo 4 – MVVM Light Toolkit

Demo 5 – Unit Testing

Demo 6 – WCF RIA Services + MVVM + MEF

 

A holnapi nap összedobok egy rövid blog bejegyzés a tapasztalaimról, illetve a jövővel kapcsolatban!

A mai nap anyagait a SkyDrive-on a 4. nap mappában találhatjátok meg.

Mai nap anyagai

1. diasor – WCF Ria Services

Prezentáció

Demo 2 – Query Method (rendezés, szűrés)

Demo 3 – DomainDataService, DataPager vezérlők

Demo 4 – Új adatok mentése WCF RIA Service-vel

Demo 5 – Adatok validálása

Demo 6 – Felhasználó azonosítás, Jogosultságkezelés

 

2. diasor – Managed Extensibility Framework

Prezentáció

Demo 1 – Hello MEF

Demo 2-6 – ez a holnapi nap anyaga lesz már!

A mai nap anyagait a SkyDrive-on a 3. nap mappában találhatjátok meg.

Mai nap anyagai

1. diasor – WCF Data Services

Prezentáció

Demo 4 – Adatelérés WCF Data Services-vel

Demo 5 – Master/Details nézet

Demo 6 – Új adatok mentése WCF Data Service-vel

 
2. diasor – WCF Ria Services

Prezentáció

Demo 1 – Adatelérés WCF Ria Services-vel

Demo 2-6 – ez a holnapi nap anyaga lesz már!

A mai nap anyagait a SkyDrive-on a 2. nap mappában találhatjátok meg. 

Mai nap anyagai

1. diasor – WCF Duplex kommunikáció

Prezentáció

Demo 3 – Duplex kommunikáció NetTcp segítségével

2. diasor – WCF Data Services

Prezentáció

Demo 1 – WCF REST-esítése

Demo 2 – WCF-es REST szolgáltatáson keresztül új adat felvétele

Demo 3 – WCF REST szolgáltatás JSON kimenettel

Demo 4-6 – ez a holnapi nap anyaga lesz már!

SkyDrive-on megtalálhatjátok a mai nap anyagait a Silverlight-os technológiák haladóknak tanfolyam mappán belül az 1. nap mappában.

Mai nap anyagai

1. diasor – Tanfolyamról információk

Prezentáció

Demo 1 – Nem tartozik ehhez a prezentációhoz demó

2. diasor – WCF Duplex kommunikáció

Prezentáció

Demo 1 – PollingDuplex első neki futás

Demo 2 – PollingDuplex lecsatlakozási lehetőséggel

Demo 3 – ez a holnapi nap anyaga lesz már!

A tanfolyam utolsó két napján fejlesztgetett alkalmazás 0.9-es verziójának teljes forráskódját megtalálhatjátok a SkyDrive-on a YoutubeKiller mappában. A Trailers tömörített állományban található 3 videó (egy egyszerű wmv, egy 720p-s trailer és egy 1080p-s előzetes), amellyel könnyen tesztelhető az alkalmazás.
(Remélem ezzel nem uszítom magamra a hollywood-i ügyvédek hadát )
 
Íme az alkalmazásról két kép működés közben:
 

Az alkalmazással kapcsolatban észrevételeket szívesen fogadok.

A mai nap anyagait a SkyDrive-on a 5. nap mappában találhatjátok meg. 

Mai nap anyagai

1. diasor – Adatkötés Alfától Omegáig Light Edition  
Prezentáció

Demo 1 – Egyirányú adatkötés (OneTime)

Demo 2 – Kétirányú adatkötés (TwoWay)

Demo 3 – Elemek összekötése (Element Binding)

Demo 4 – Listás adatkötés (ObservableCollection)

Demo 5 – Desing-Time példa adat (Sample Data)

Demo 6 – Validáció alapok

Demo 7 – Diagrammok (Charting) 

2. diasor – Erőforrások kezelése
Prezentáció

Demo – Nem tartozik hozzá

3. diasor – Médiák kezelése
Prezentáció

Demo 1 – MediaElement

Demo 2 – Expression Encoder


4. diasor – Hálózati erőforrások kezelése

Prezentáció

Demo 1 – WebClient