
CÍMLAP
Árvai Zoltán [et al.]
Silverlight 4
TARTALOM, ELŐSZÓ
Tartalom
Előszó
1. Silverlight és XAML alapok
Bevezetés a Silverlight világába
Mi is az a Silverlight?
Különböző verziók, különböző célok
A Silverlight felépítése
Az elmélettől a gyakorlatig
Dizájner-fejlesztő együttműködés, avagy út a XAML-hez
A Silverlight alkalmazásfejlesztés eszközei
A "Hello Silverlight" alkalmazás elkészítése
Mit kell tudni egy Silverlight alkalmazásról?
A projektsablonok és egy egyszerű projekt felépítése
Út a TestPage lekérésétől a MainPage Loaded esemény bekövetkezéséig
Plug-in lehetőségek
XAML, a felületleíró nyelv
A pixelgrafika és a vektorgrafika összehasonlítása
A XAML nyelv alapjai
A XAML nyelv szintaxisa
További XAML lehetőségek
Összefoglalás
2. Layout Management
Pozicionálás
Layout életciklus
Measure
Arrange
Bounding-Box
Margin és Padding
Layout metrika
Layout rounding
Teljesítmény
Virtualizáció
Transzformációk
Layout vezérlők
Grid
Canvas
StackPanel
WrapPanel
DockPanel
Felület kialakítása konténerek egymásba ágyazásával
Összefoglalás
3. Alapvető vezérlők
Osztályhierarchia
Logikai és vizuális fa
Dependency property , Attached property
Eseménykezelés
Vezérlők a gyakorlatban
ContentControl
ItemsControl
Egyéb vezérlő
Összefoglalás
4. fejezet: Animáció és Média
Alakzatok rajzolása a Silverlightban
Egyszerűbb geometriai formák rajzolása
Saját alakzatok ábrázolása
Vágási felületek kialakítása
Az alakzatok kitöltése és színezése
Képek és videók megjelenítése
Képek megjelenítése az Image vezérlő segítségével
Videó és zene lejátszása
Transzformációk a felületen
Egyszerű transzformációk
Saját transzformációk mátrixokkal
A Silverlight 3D képességei
Animációk a Silverlight-ban
Egyszerű animációk létrehozása
Átmenetek és finomítások az animációban
Összefoglalás
5. Stílusok és testreszabhatóság a Silverlightban
Erőforrások a Silverlightban
Az erőforrások szerepe
A StaticResource objektum
Az erőforrások hozzáférhetősége
Az erőforrások használata
Az erőforrás fájlok (ResourceDictonary)
Stílusok
A stílusok szerepe
Stílusok öröklődése
Implicit stílusok
A vezérlők testreszabása
A ControlTemplate-ek szerepe
ControlTemplate-ek definiálása
Ismerkedés a ContentPresenter-rel
A TemplateBinding fogalma
Vizuális állapotok
Vizuális állapotátmenetek
Komplexebb vezérlők testreszabása
Összefoglalás
6. Adatok kezelése
Hogyan használjuk az adatokat?
Különböző adatforrások, különböző adatmennyiségek
Adatmegjelenítési lehetőségek
A megjelenítési réteg és az adatréteg összekapcsolási módjai
Az adatkötés alapjai
Az adatkötés folyamata
DepedencyProperty és a Silverlight Tulajdonság rendszere
Adatkötés alapjai egy egyszerű példán keresztül
Adatkötési lehetőségek, testreszabás
Adatkötési módok
A kétirányú adatkötés és az INotifyPropetyChanged kapcsolata
Megjelenített adat formázása, esetleges hiányosságok, hibák kezelése
Konverterek használata
Vezérlők közötti adatkötés
Listás adatmegjelenítés
A listás adatmegjelenítés alapjai
ObservableCollection használata mint adatforrás
Listás adatmegjelenítés Visual Studióban
Listás adatmegjelenítés Expression Blendben
Összefoglalás
7. Saját vezérlők készítése Silverlightban
UserControlok fejlesztése Silverlightban
A UserControlok szerepe
UserControlok létrehozása
User Controlok felhasználása
UserControl: Nézet vagy hagyományos vezérlő?
Custom Controlok fejlesztése Silverlightban
Egy Custom Control anatómiája
A NumericUpDownControl alapértelmezett megjelenése
A Value Dependency Property implementálása
Eseménykezelő függvények bekötése
Vizuális állapotok a Custom Controlban
Testreszabhatóság támogatása
Összefoglalás
8. Kommunikáció a kliens és a szerver között
Kommunikáció a kliens-szerver modell alapján
WCF szolgáltatások készítése, elérése és használata
Történeti áttekintés, a WCF fejlesztési céljai
A WCF felépítése és az ABC
Szolgáltatások létrehozása
Szolgáltatások elérése és használata
Data Transfer Object használata
WCF Data Services, avagy az adatok egyszerű kipublikása
A REST protokoll és az OData lekérdezőnyelv
WCF Data Services alapok
Szolgáltatások létrehozása
Szolgáltatások elérése és használata
Master-Details nézet létrehozás a WCF Data Services segítségével
WCF RIA Services, a kliens-szerver modell újragondolása
A Nagy Ötlet, avagy a magától adódó architektúra?
Szolgáltatások létrehozása
Szolgáltatások elérése és használata
Adatok módosítása és validálása WCF RIA Service-n keresztül
További kommunikációs lehetőségek röviden
HTTP alapú kommunikáció a WebClient osztály segítségével
Socket programozás Silverlightban
Silverlight kliensek közötti kommunikáció: Local Connection
Összefoglalás
9. A Silverlight rejtett képességei
Az alapok összeállítása
A vágólap kezelése
Drag & Drop az operációs rendszerből
Kamerakezelés
Teljes képernyő használata
Nyomtatás
Hálózatészlelés
Out-of-Browser applications
Kitörés
Testreszabás
API
Toast API
Fájlkezelés
Adatmentés és olvasás az Isolated Storage-ban
Beállítások mentése és olvasása Isolated Storage-ből
Isolated Storage Quota
Az igazi fájlrendszer elérése
My Documents
Kommunikáció más alkalmazásokkal
Office (és más COM objektumok) vezérlése
Kommunikáció Silverlight alkalmazások között
Navigation Framework
Megvalósítás egyszerű vezérlőkkel
Lapozások közti adatmegőrzés
Egyéb lehetőségek
Silverlight Browser Integration
A Silverlight plug-in
JavaScript hívása Silverlightból
HTML manipulálása Silverlightból
XAML manipulálása JavaScriptből
Összefoglalás
10. Üzleti alkalmazások fejlesztése Silverlight-ban
Üzleti alkalmazások fejlesztésének követelményei
Tesztelés és a szoftver minőség
Karbantarthatósági szempontok
A fejlesztő és a dizájner közötti együttműködés
Architekturális minták a prezentációs rétegben
A Model-View-Controller architekturális minta
A Model-View-ViewModel architekturális minta
A MVVM architekturális minta gyakorlati alkalmazása
MVVM keretrendszerek használata
Az alkalmazás struktúrájának kialakítása
A ViewModel-ek alapfunkcionalitásának implementálása
A nézetek (Views) implementálása
A nézetek és a ViewModel-ek összekötése
A ViewModel-ek és a VisualStateManager közötti kommunikáció
Commanding az MVVM-ben
Lazán csatolt metódushívások
A Command Pattern implementálása MVVM-ben
Kommunikáció a ViewModel-ek között
Lazán csatolt kommunikáció
Adatok kezelése MVVM-ben CollectionViewSource-szal
Az ICollectionView bevezetése a BooksViewModel-be
Rendezés SortDescription-ök segítségével
Szűrés a Filter delegate segítségével
Navigáció az adatok között
Adatok érvényességének ellenőrzése
Az INotifyDataErrorInfo implementálása MVVM-ben
Érvényességi hibák megjelenítésének testreszabhatósága
A ViewModel-ek Unit tesztelése
Unit teszt készítése a BooksViewModel-hez
Összefoglalás
11. Összetett adatok megjelenítése és kezelése
Táblázatos adatmegjelenítés
A DataGrid vezérlő alapvető használata
Saját oszlopsablonok létrehozása
Adatok csoportosítása, rendezése és szűrése
Dialógusformába rendezett adatok megjelenítése
Adatbeviteli felület létrehozása a DataForm vezérlővel
Lapozás az adatok között
Virtuális ablakok a Silverlightban
ChildWindow létrehozása és adatkötése
Hibaüzenetek megjelenítése ChildWindow segítségével
A Silverlight Toolkit
Vezérlők, melyek nem a Silverlight SDK részei
Összefoglalás
12. Moduláris alkalmazások fejlesztése
Lazán csatolt rendszerek
Architekturális megfontolások
Függőségek kezelése - Dependency Injection
A Managed Extensibility Framework
Exportálás
Importálás
Komponálás
Az importálás lehetőségei
Metaadatok használata
Katalógusok használata
Managed Extensbility Framework a valódi világban
A Composite Application Guidance (PRISM)
A PRISM által megcélzott problémák
Modulok tervezése és implementálása
Összefoglalás
13. A HTML5, az alternatív webes technológia a Silverlight mellett
HTML5 alapok
Szemantikus vezérlőelemek
Multimédiás vezérlőelemek
A vászon vezérlőelem
A HTML5-öt kiegészítő modulok
Az SVG modul
Kliens oldali adattárolás
A GeoLocation modul
Az Offline Web Applications modul
A Web Workers modul
A CSS 3 stílusleíró nyelv
Kiválasztók
A Media queries modul
A Colors modul
Dinamikus tartalomgenerálás
A Template layout modul (CSS sablonok)
A Background and borders modul
A Fonts modul
A transzformációs modul (2D és 3D)
Az animációs modul
Az áttűnés modul
Összefoglalás
Előszó
A web mindennapjaink részévé vált. Gyakran már fels sem tűnik, hiszen
mindenütt ott van velünk, a számítógépünkön, a mobil telefonunkon, a
televíziókészülékünkben, a táblagépünkön. Általában azt vesszük észre, ha
éppen nem érhető el.
Webes alkalmazásokat fejleszteni már az internet gyermekkorában is kihívás
volt, és még ma is az - a feladatok és az aktuális nehézségek azonban
mindig is változtak. Amíg korábban egy webes alkalmazás alapvetően egy
böngészőben használható honlapot, elektronikus áruházat jelentett, addig
mai alkalmazásaink már kiléptek a böngésző kereteiből, és önálló életre
kelve kápráztatnak el bennünket multimédiás képességeikkel - a háttérben
a webet használva. A feladatok változásával együtt újabb és újabb
technológiák, fejlesztőeszközök jelentek meg.
Ez a könyv azt tűzte ki célul, hogy a Microsoft Silverlight 4
technológiáját mutatja be, hozzásegítve a szakmai közösséget ahhoz, hogy
magyar nyelven juthasson el hozzá az alapok elsajátítását biztosító
információkhoz. A könyv nem egy erre szakosodott professzionális kiadó
terméke, hanem a hazai fejlesztőközösség öt szakemberének munkájából
született.
Árvai Zoltán (5., 7., 10. és 12. fejezetek), Csala Péter (1., 6. és 8.
fejezetek), Fár Attila Gergő (4. és 11. fejezetek), Reiter István (2.
és 3. fejezet) és Tóth László (9. fejezet) mindannyian - számos más hazai
szakemberrel együtt - a Silverlight technológia ismert szakértői.
A könyv egy tömör áttekintést ad a Silverlight 4 képességeiről, segít
megérteni szemléletmódját, felhasználási lehetőségeit. Nem törekszik
minden részlet aprólékos elmagyarázására, inkább azokat a gyakorlati
tapasztalatokat igyekszik átadni, amelyek segítségével a technológia
birtokba vehető. A könyv eredeti változatát kibővítettük a HTML 5
technológiát bemutató fejezettel, amely Kopacz Botond munkája (13.
fejezet).
Az egyes fejezetek egymásra épülnek abban a tekintetben, hogy az első
fejezettől az utolsóig folyamatosan feldolgozhatók, de azok mégsem
tankönyvszerűen íródtak - inkább egy felhasználói csoport kötetlen
összejövetelének hangulatát hordozzák. Ez nem véletlen, a szerzők
szándékosan választották ezt a megközelítési módot, hogy közvetlenebb
kapcsolatot teremtsenek olvasóikkal.
A könyv és a hozzátartozó programozási mintapéldák a weben is elérhetők,
a Devportal.hu oldalon.
Novák István
Budapest, 2011. március