Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00551 008284 13404302 na godz. na dobę w sumie
Silverlight 4 w działaniu - ebook/pdf
Silverlight 4 w działaniu - ebook/pdf
Autor: Liczba stron:
Wydawca: Promise Język publikacji: polski
ISBN: 978-83-7541-180-5 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> programowanie
Porównaj ceny (książka, ebook, audiobook).

Silverlight udostępnia nam całkiem nowe sposoby tworzenia bogatych aplikacji internetowych, a wersja Silverlight 4 dodaje wiele znaczących usprawnień do tej technologii.
Silverlight 4 w działaniu to wyczerpujący przewodnik po budowaniu aplikacji przy użyciu C#. Przechodzi do działania od razu w rozbudowanym wstępie. W kolejnych częściach zawiera wiele ciekawych przykładów dotyczących elastycznego układu, rozszerzania kontrolek, modelów komunikacji i wiązania, bogatych multimediów, animacji i wiele więcej.

Ta książka zajmuje się kwestiami praktycznymi związanymi ze stosowaniem wzorców, testowania i optymalizacji wydajności. Nie jest wymagane żadne wcześniejsze doświadczenie związane z Silverlight.
Efektywne projektowanie interfejsów użytkownika przy pomocy MVVM
Budowanie aplikacji wykorzystujących usługi WCF RIA Services
Działanie poza przeglądarką, COM i niestandardowa otoczka okna
Pete Brown ma tytuł Microsoft Community Program Manager w zakresie technologii Silverlight i WPF. Pierwsze wydanie tej książki zostało napisane przez niezależnych programistów Chada Campbella i Johna Stocktona.

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== Silverlight 4 w działaniu Silverlight 4, MVVM i usługi WCF RIA Services Pete Brown przełożył Jakub Niedźwiedź APN Promise Warszawa 2011 ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== Silverlight 4 w działaniu. Silverlight 4, MVVM i usługi WCF RIA Services Tytuł oryginału: Silverlight 4 in action. Silverlight 4, MVVM, and WCF RIA Services, by Pete Brown Original edition copyright © 2010 by Manning Publications, Co. All rights reserved. Polish edition copyright © 2011 APN PROMISE SA. All rights reserved. APN PROMISE SA, ul. Kryniczna 2, 03-934 Warszawa tel. +48 22 35 51 600, fax +48 22 35 51 699 e-mail: mspress@promise.pl Wszystkie prawa zastrzeżone. Żadna część niniejszej książki nie może być powielana ani rozpowszechniana w jakiejkolwiek formie i w jakikolwiek sposób (elektroniczny, mechaniczny), włącznie z fotokopiowaniem, nagrywaniem na taśmy lub przy użyciu innych systemów bez pisemnej zgody wydawcy. Microsoft oraz znaki towarowe wymienione na stronie http://www.microsoft.com/about/ legal/en/us/IntellectualProperty/Trademarks/EN-US.aspx są zarejestrowanymi znakami towarowymi grupy Microsoft. Wszystkie inne nazwy handlowe i towarowe występujące w niniejszej publikacji mogą być znakami towarowymi zastrzeżonymi lub nazwami zastrzeżonymi odpowiednich firm odnośnych właścicieli. Przykłady firm, produktów, osób i wydarzeń opisane w niniejszej książce są fikcyjne i nie odnoszą się do żadnych konkretnych firm, produktów, osób i wydarzeń. Ewentualne podobieństwo do jakiejkolwiek rzeczywistej firmy, organizacji, produktu, nazwy domeny, adresu poczty elektronicznej, logo, osoby, miejsca lub zdarzenia jest przypadkowe i niezamierzone. APN PROMISE SA dołożyła wszelkich starań, aby zapewnić najwyższą jakość tej publikacji. Jednakże nikomu nie udziela się rękojmi ani gwarancji. APN PROMISE SA nie jest w żadnym wypadku odpowiedzialna za jakiekolwiek szkody będące następstwem korzystania z informacji zawartych w niniejszej publikacji, nawet jeśli APN PROMISE została powiadomiona o możliwości wystąpienia szkód. ISBN: 978-83-7541-070-9 Przekład: Jakub Niedźwiedź Redakcja: Marek Włodarz Korekta: Ewa Swędrowska Skład i łamanie: MAWart Marek Włodarz ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== Spis treści Wstęp xix Podziękowania xxi Informacje na temat tej książki xxiii O ilustracji na okładce xxix Część 1 Wprowadzenie do Silverlight . . . . . . . . . . . . . . . . . . .1 1. 4 5 2.2. 2.3. 2.4. 2.5. 2.6. ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== 3 1 Wprowadzenie do Silverlight 1.1. 1.2. 1.3. 1.4. Silverlight i sieć WWW Silverlight i WPF Typy aplikacji Silverlight Co nowego pojawiło się od pierwszego wydania Funkcje dla aplikacji biznesowych i klienckich 6 • Usprawnienia multimediów i grafi ki 7 • Interakcja z użytkownikiem 8 • Tekst 8 Rozpoczęcie programowania w Silverlight Instalowanie środowiska programistycznego 9 • Przydatne witryny 10 Budowa pierwszej aplikacji internetowej w Silverlight 1 Przygotowanie projektu 11 • Interfejs użytkownika 13 • Wywoływanie wyszukiwania w serwisie Twitter 14 • Przetwarzanie wyników i wiązanie z kontrolką ListBox 15 • Poprawianie zawartości kontrolki ListBox 19 Podsumowanie 2 0 1.5. 1.6. 9 6 0 2. 1.7. Fundamenty XAML 2 2.1. 3 Podstawy XAML 2 4 Obiekty 25 • Przestrzenie nazw 26 • Właściwości 29 • Właściwości zależnościowe 31 • Właściwości połączone 33 • Zdarzenia 35 • Polecenia 36 • Zachowania 38 Drzewa obiektów i zakres nazw 3 Drzewa obiektów 39 • Zakres nazw 42 Rozszerzenia XAML i konwertery typów 4 4 Rozszerzenia kodu znacznikowego 44 • Konwertery typów 45 Ładowanie XAML podczas działania programu 4 Narzędzia do pracy z XAML 5 Podsumowanie 5 2 9 1 8 iv Spis treści 3. Model aplikacji i wtyczka Silverlight 5 3 3.1. 3.2. 3.3. Model aplikacji Silverlight 5 4 Proces rozruchowy aplikacji 54 • XAP 56 • Plik manifestu aplikacji 57 • Obiekt aplikacji Silverlight 58 • Zależności aplikacji 62 • Przechowywanie podzespołów w pamięci podręcznej 62 Tworzenie wtyczki Silverlight 6 5 Wykorzystanie znacznika object 67 • Wykorzystanie pliku narzędziowego Silverlight.js 68 • Tworzenie wystąpienia wtyczki Silverlight 69 Integrowanie wtyczki Silverlight 7 0 Wiązanie aplikacji Silverlight z modelem DOM strony HTML 71 • Określanie początkowego wyglądu aplikacji 72 • Obsługa zdarzeń wtyczki 77 • Przesyłanie parametrów inicjujących 80 Podsumowanie 8 1 4. 3.4. Integracja z przeglądarką 8 2 4.1. 4.2. Silverlight i model DOM w HTML 8 3 Zarządzanie stroną WWW z poziomu kodu zarządzanego 8 5 Nawigowanie po zawartości strony WWW 85 • Praca z właściwościami elementów 87 • Obsługa informacji o stylach CSS 87 • Dostęp do łańcucha zapytania 88 Praca z oknem przeglądarki użytkownika 8 Komunikaty dla użytkownika 89 • Nawigowanie w oknie przeglądarki 91 • Odkrywanie właściwości przeglądarki 91 Łączenie świata skryptowego i świata kodu zarządzanego 9 2 Wywoływanie kodu zarządzanego z poziomu JavaScript 93 • Korzystanie z języka JavaScript z poziomu kodu zarządzanego 95 Umieszczanie HTML w Silverlight 9 6 Wstawianie kontrolki WebBrowser 97 • Korzystanie z WebBrowserBrush 103 Podsumowanie 10 6 9 4.3. 4.4. 4.5. 5. 4.6. Integracja z pulpitem 5.1. 10 7 Silverlight poza przeglądarką 10 8 Możliwości i ograniczenia 110 • Doświadczenie użytkownika końcowego 111 3 Tworzenie aplikacji uruchamianych poza przeglądarką 11 Plik ustawień trybu uruchamiania poza przeglądarką 113 • Kontrola sposobu instalacji 115 • Dostosowywanie ikon 118 • Sprawdzanie stanu sieci 120 • Ostrzeganie użytkownika przy pomocy powiadomień 121 • Szczegóły implementacyjne 123 5.2. ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== Spis treści v 5.3. 5.4. 5.5. 5.6. 5.7. 5.8. 0 8 Ucieczka z piaskownicy – podwyższone zaufanie 12 3 Tworzenie aplikacji z podwyższonym zaufaniem 124 • Wykrywanie trybu podwyższonego zaufania 127 Dostęp do plików lokalnych 12 Dostęp do folderów specjalnych 128 • Odczytywanie danych z pliku 129 • Zapisywanie do pliku 129 Automatyzacja COM 13 Wykrywanie dostępności automatyzacji COM 130 • Wykorzystanie automatyzacji COM do komunikacji głosowej w Silverlight 132 • Dostęp do danych GPS przy użyciu automatyzacji COM 132 • Automatyzacja programu Excel 133 Kontrola okna gospodarza 13 5 Podstawowe właściwości okna 136 • Zmienianie otoczki okna 137 • Minimalizowanie, maksymalizowanie, przywracanie rozmiaru i zamykanie okna 138 • Przenoszenie okna 139 • Zmienianie rozmiaru okna 140 Uruchamianie na pełnym ekranie 14 Normalny tryb pełnoekranowy 142 • Tryb pełnoekranowy z podwyższonym zaufaniem 144 Przechowywanie danych w pamięci izolowanej 14 5 IsolatedStorageFile: wirtualny system plików 145 • Odczytywanie i zapisywanie plików w pamięci izolowanej 150 • Administrowanie pamięcią izolowaną 153 Podsumowanie 15 3 2 4 5 UIElement i FrameworkElement 15 6 Właściwości 156 • Metody 163 Proces obrazowania 16 Tyknięcie zegara 166 • Funkcja zwrotna wywoływana dla obrazowania każdej klatki 167 • Rasteryzacja 168 System układu elementów 17 Układ wieloprzebiegowy – mierzenie i ustawianie 175 • Klasa LayoutInformation 177 • Uwarunkowania wydajności 178 Transformacje obrazowania 17 RotateTransform 180 • ScaleTransform 181 • SkewTransform 181 • TranslateTransform 182 • TransformGroup 182 • CompositeTransform 183 • MatrixTransform 184 Transformacje rzutowania trójwymiarowego 18 7 PlaneProjection 187 • Matrix3dProjection 189 Podsumowanie 19 1 9 6. 5.9. Obrazowanie, układ elementów i transformacje 6.1. 15 5 6.2. 6.3. 6.4. 6.5. 6.6. ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== vi Spis treści 7. Panele 7.1. 7.2. 7.3. 3 2 19 Canvas 19 Organizowanie zawartości panelu Canvas 193 StackPanel 19 7 Grid 19 Ustawianie zawartości panelu Grid 200 • Rozmieszczanie zawartości panelu Grid 202 • Zajmowanie wielu komórek 202 • Określanie rozmiaru 203 • Programowa praca z panelem Grid 206 • Dostosowywanie obramowania komórki 207 Podsumowanie 21 0 9 8. 7.4. Dane wejściowe od użytkownika 21 1 8.1. 8.2. 8.3. 8.4. Przechwytywanie klawiatury 21 2 Zrozumienie fokusu 212 • Obsługa zdarzeń klawiatury 213 • Obsługa klawiszy modyfi kujących 215 Dane wejściowe myszy 21 6 Zdarzenia przycisków i ruchu myszy 217 • Korzystanie z kółka myszy 218 Korzystanie z wielodotyku 22 1 Zbieranie danych wprowadzanych wirtualnym atramentem 22 Tworzenie obiektu InkPresenter 223 • Zbieranie informacji o atramencie 224 • Nadawanie stylu atramentowi 226 Podsumowanie 22 7 3 9. 8.5. Tekst 22 9.1. 8 9 System tekstowy 22 Obrazowanie z dokładnością do części piksela 230 • Wskazówki dla tekstu 230 Wyświetlanie tekstu 23 2 Właściwości czcionki 233 • Kontrola przepływu tekstu 236 • Właściwości tekstu 237 • Odstępy 240 Osadzanie czcionek 24 3 Wprowadzanie i edycja tekstu 24 4 Obsługa podstawowego wejścia tekstowego 245 • Zrozumienie edytorów metod wejściowych 247 • Kopiowanie tekstu przy pomocy interfejsu API dla schowka 250 • Zbieranie poufnych danych 251 Wprowadzanie i wyświetlanie tekstu sformatowanego 25 2 Formatowanie i elementy wewnętrzne 253 • Praca z zaznaczonym tekstem 258 Podsumowanie 26 1 9.2. 9.3. 9.4. 9.5. 9.6. ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== Spis treści vii 10. Kontrolki podstawowe i kontrolki użytkownika 26 3 10.1. 0 Control 26 4 Wygląd 264 • Nawigacja i stan 265 • Szablony 266 ContentControl 26 7 ContentPresenter 269 Kontrolki przycisków 27 Button 270 • HyperlinkButton 271 • RadioButton 272 • CheckBox 274 ItemsControl 27 5 ListBox 276 • ComboBox 279 • TabControl 279 Tworzenie kontrolek UserControl 28 2 Defi niowanie wyglądu 284 • Defi niowanie zachowania 285 • Wywoływanie kontrolki 288 Podsumowanie 28 9 10.2. 10.3. 10.4. 10.5. 10.6. Część 2 Struktura aplikacji . . . . . . . . . . . . . . . . . . . . . . . . . . .291 11. Wiązanie 29 3 11.1. 11.2. 11.3. 11.4. 9 Wiązanie z naszymi danymi 29 4 Opanowanie składni wiązania 295 • Wybieranie trybu wiązania 297 Zrozumienie źródła wiązania 29 Wiązanie z właściwością 300 • Wiązanie z obiektem 301 • Wiązanie z elementem interfejsu użytkownika 303 • Wiązanie z elementem indeksowanym 306 • Wiązanie do elementu z kluczem tekstowym 307 • Wiązanie z całą kolekcją 308 Dostosowywanie wyświetlania 30 Formatowanie wartości 310 • Konwertowanie wartości podczas wiązania 310 • Zapewnianie domyślnych wartości awaryjnych 314 • Obsługiwanie wartości null 314 Tworzenie szablonów danych 31 5 Korzystanie z szablonu danych dla kontrolki ContentControl 316 • Obrazowanie kontrolki ItemsControl przy pomocy szablonu danych 317 Podsumowanie 31 8 9 12. 11.5. Kontrolki danych: DataGrid i DataForm 31 9 12.1. DataGrid 32 0 Wyświetlanie danych 320 • Edytowanie danych siatki 326 • Sortowanie elementów 327 ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== viii Spis treści 12.2. 12.3. DataForm 32 8 Wyświetlanie danych 329 • Wiązanie z listą danych 331 • Dostosowywanie wyświetlania 334 • Dostosowywanie szablonów edycji, dodawania i wyświetlania 336 • Dokładniejsza kontrola nad edycją i zatwierdzaniem danych 338 Adnotacje dotyczące wyświetlania danych 33 Atrybut Display 340 • Atrybut Editable 342 Podsumowanie 34 3 12.4. Sprawdzanie poprawności danych wejściowych 34 13.1. 4 9 13. 13.2. 13.3. 13.4. 13.5. Przykładowe źródło i interfejs użytkownika dla sprawdzania poprawności 346 Sprawdzanie poprawności właściwości oparte na wyjątkach 34 9 Obsługa błędów sprawdzania poprawności 350 • Niestandardowy kod sprawdzania poprawności 350 • Wyświetlanie błędów sprawdzania poprawności 352 Synchroniczne sprawdzanie poprawności przy pomocy IDataErrorInfo 353 Interfejs IDataErrorInfo 353 • Proste sprawdzanie poprawności przy pomocy IDataErrorInfo 354 • Sprawdzanie poprawności wielu pól przy pomocy IDataErrorInfo 355 • Połączenie wyjątków i interfejsu IDataErrorInfo 358 Asynchroniczne sprawdzanie poprawności przy pomocy INotifyDataErrorInfo 359 Interfejs INotifyDataErrorInfo 359 • Implementacja interfejsu 360 • Obsługa wiązania 361 • Budowanie usługi WWW przy pomocy WCF 362 • Dodawanie kodu obsługowego po stronie klienta 362 • Modyfi kacje właściwości 364 Adnotacje dotyczące sprawdzania poprawności 36 Atrybuty sprawdzania poprawności 366 • Adnotacje dla naszego elementu 367 • Wywoływanie zewnętrznych funkcji sprawdzających poprawność 368 • Tworzenie niestandardowych elementów sprawdzających poprawność danych 370 Porównanie sposobów sprawdzania poprawności 37 Podsumowanie 37 3 2 5 13.6. 13.7. Sieć i komunikacja 37 4 14.1. 14. Zaufanie, bezpieczeństwo i ograniczenia przeglądarki 37 5 Dostęp sieciowy pomiędzy domenami 375 • Zabezpieczanie aplikacji 379 • Ograniczenia przeglądarki 380 Łączenie się ze źródłami danych 38 2 14.2. ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== Spis treści ix 14.3. 14.4. 14.5. 14.6. 6 Korzystanie z usług SOAP 382 • Usługi REST 391 Kliencki stos HTTP 39 Ręczne tworzenie stosu klienckiego 396 • Automatyczne korzystanie ze stosu klienckiego 396 • Automatyczne ustawianie HTTP Referer i innych nagłówków 397 • Poświadczenia uwierzytelniające 398 • Zarządzanie plikami cookie przy pomocy obiektu CookieContainer 400 Robienie użytku z danych 40 1 Odczytywanie danych POX 402 • Konwertowanie danych JSON 406 Korzystanie z usług zaawansowanych 40 8 Usprawnienia usług WCF 408 • Dupleksowe usługi WCF 409 • Łączenie się z gniazdami sieciowymi 415 • Gniazda rozgłoszeniowe 417 Łączenie się z innymi aplikacjami Silverlight 42 0 Tworzenie odbiorcy 421 • Tworzenie nadawcy 422 • Łączenie wszystkiego razem 422 Podsumowanie 42 4 15. 14.7. Nawigacja i okna dialogowe 42 6 7 15.1. 15.2. 15.3. 15.4. 15.5. 0 Zarys nawigacji w przeglądarce 42 Dzienniki przeglądarek 428 • Łącza wykorzystujące znaczniki zakładek 428 • Tam i z powrotem 430 Szablon Navigation Application 43 Tworzenie aplikacji nawigacyjnej 431 • Dodawanie nowej strony 432 • Zmienianie tematu aplikacji 435 Nawigowanie do innych stron 43 6 Klasa Page 437 • Klasa NavigationService 438 • Ramki i identyfi katory URI 441 • Przechowywanie stron w pamięci podręcznej 444 • Nawigowanie do stron w innych podzespołach 446 Nawigacja poza przeglądarką 44 Zapewnianie niestandardowych kontrolek nawigacyjnych 449 Wyświetlanie okien dialogowych i wyskakujących 45 4 Kontrolka Popup 454 • Wyświetlanie okna dialogowego przy pomocy kontrolki ChildWindow 455 • Prośba o wybór pliku 459 Podsumowanie 46 2 8 16. 15.6. Tworzenie struktury i testowanie aplikacji w oparciu o wzorzec MVVM/ViewModel 464 16.1. Konfi gurowanie projektu i tradycyjne podejście wykorzystujące kod stron 466 Konfi guracja projektu i usługi 466 • Typowe rozwiązanie z kodem stron 470 ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== x Spis treści 16.2. 16.3. 16.4. 16.5. 17.2. 17.3. 17.4. 17.5. 17.6. 17.7. 17.8. ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== 17. 16.6. Usługi WCF RIA Services 51 0 17.1. Podstawy wzorca Model-View-ViewModel 47 4 Podstawowa implementacja modelu widoku (ViewModel) 477 Wyodrębnianie kodu wielokrotnego użytku 48 3 Reguły i logika biznesowa 483 • Dostęp do danych i wywołania usługi 485 Lepsze oddzielenie od interfejsu użytkownika 48 8 Korzystanie z poleceń 488 • Korzystanie z zachowania CallMethodAction 491 • Jednostki i modele widoku specyfi czne dla danego widoku 493 • Interfejsy, odwrócenie sterowania i lokalizatory modeli widoków 498 Testowanie 50 Wprowadzenie do platformy Silverlight Unit Testing Framework 502 • Testowanie modelu widoku 506 • Testowanie działań asynchronicznych 507 Podsumowanie 50 9 2 Architektura, narzędzia i szablon usług WCF RIA Services 51 2 Narzędzia RIA Services 513 • Tworzenie projektu przy pomocy szablonu 514 Udostępnianie danych w usłudze domenowej 51 7 Tworzenie usługi domenowej 517 • Udostępnianie usługi domenowej innym klientom 519 • Typy metod usługi domenowej 524 • Korzystanie z usługi domenowej z poziomu Silverlight 530 Filtrowanie, sortowanie, grupowanie i stronicowanie 53 4 Filtrowanie 534 • Sortowanie 538 • Grupowanie 539 • Stronicowanie 540 Aktualizowanie danych 54 3 Korzystanie z interfejsu użytkownika DataForm 543 • Kontekst domenowy 545 • Klasa Entity 547 • Korzystanie z metadanych sprawdzania poprawności i wyświetlania 549 Luźne sprzężenie: korzystanie z modeli prezentacyjnych 55 Tworzenie modelu prezentacyjnego dla pracownika 552 • Obsługa operacji zapytań 554 • Obsługa operacji aktualizacyjnych 556 • Obsługa operacji wstawiania danych 557 Logika biznesowa 55 Logika biznesowa w jednostkach danych 560 • Udostępnianie kodu 560 Uwierzytelnianie i autoryzacja 56 1 Uwierzytelnianie 562 • Autoryzacja 565 Podsumowanie 56 7 9 1 Część 3 Uzupełnianie interfejsu . . . . . . . . . . . . . . . . . . . . . . 569 Spis treści xi 18. Grafi ka i efekty 57 18.1. 2 1 18.2. 18.3. Kształty 57 Line 573 • Rectangle 573 • Ellipse 574 • Polyline 575 • Polygon 576 Geometry 57 7 Proste geometrie 577 • Geometrie ścieżkowe 579 • Geometrie złożone 580 Pędzle 58 1 SolidColorBrush 581 • LinearGradientBrush 582 • RadialGradientBrush 585 • ImageBrush 587 • VideoBrush 587 Efekty 58 Korzystanie z efektów wbudowanych 589 • Tworzenie niestandardowych procedur cieniowania pikseli 593 Podsumowanie 59 9 18.5. 0 Drukowanie 60 19.1. 18.4. 9 Jak działa drukowanie w Silverlight 60 1 Klasa PrintDocument 602 • Zdarzenie PrintPage 606 • Rasteryzacja 608 Drukowanie informacji ekranowych 60 9 Drukowanie zawartości tak, jak na ekranie 610 • Przenoszenie elementów do innego elementu głównego 612 • Skalowanie zawartości 613 Drzewa wizualne dedykowane do drukowania wielostronicowego 61 6 Wymagania wstępne 617 • Drukowanie elementów z wierszami raportu 621 • Dodawanie obsługi wielu stron 627 • Dodawanie nagłówka i stopki 629 Podsumowanie 63 3 19.2. 19.3. 20. 19.4. Wyświetlanie i przechwytywanie multimediów 63 20.1. 4 5 Audio i wideo 63 Źródło multimediów 635 • Często używane właściwości 641 • Właściwości specyfi czne dla audio 644 • Właściwości specyfi czne dla wideo 645 • Cykl życia pliku multimedialnego 646 Listy odtwarzania 64 Zrozumienie list odtwarzania po stronie klienta 648 • Korzystanie z list odtwarzania po stronie serwera 650 Interaktywne odtwarzanie 65 Kontrolowanie stanu odtwarzania 652 • Praca z linią czasu 653 2 8 19. 20.2. 20.3. ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== xii Spis treści 20.4. 20.5. 20.6. 20.7. Korzystanie z zawartości zabezpieczonej 65 5 Korzystanie z zawartości chronionej 655 • Pobieranie składników PlayReady 656 • Odblokowywanie zawartości zabezpieczonej 656 Korzystanie z platformy Silverlight Media Framework 65 7 Korzystanie z bibliotek odtwarzacza 658 • Tworzenie odtwarzacza 659 Praca z surowymi multimediami 66 1 Niestandardowa klasa MediaStreamSource 661 • Tworzenie surowego wideo 663 • Tworzenie surowego audio 668 Korzystanie z kamery internetowej 67 3 Uzyskiwanie dostępu do urządzeń przechwytujących 673 • Praca z wideo 675 • Przechwytywanie obrazów nieruchomych 678 • Pozyskiwanie danych surowego wideo 681 • Uwaga na temat audio 683 Podsumowanie 68 4 22.3. 22.4. ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== 21. 20.8. Praca z obrazami bitmapowymi 68 5 21.1. 21.2. 7 Podstawowa obsługa obrazów 68 6 Tworzenie obrazów w trakcie działania aplikacji 68 Tworzenie obrazów na podstawie istniejących obrazów 688 • Tworzenie obrazu z elementów interfejsu użytkownika 690 • Generator fraktala Mandelbrota 692 Deep Zoom 69 5 Wyświetlanie obrazu 695 • Przybliżanie i oddalanie obrazu 696 • Zarządzanie oknem widoku 698 • Wdrażanie obrazów wielkoformatowych 699 Radzenie sobie z pustym miejscem 70 Wypełnianie przestrzeni 701 • Rozciąganie proporcjonalne 702 • Wypełnianie obszaru 703 • UniformToFill 704 Podsumowanie 70 5 0 21.3. 21.4. 22. 21.5. Animacja i zachowania 70 22.1. 22.2. 6 Animacja: chodzi o czas 70 7 Opanowywanie linii czasu 70 8 Jaki jest typ animowanej właściwości? 709 • Od czego zaczynamy i do czego zmierzamy? 711 • Jak długo powinna trwać animacja? 714 Korzystanie z planów animacji 71 7 Zrozumienie planu animacji 717 • Trafi anie w cel 718 • Kontrola elementu Storyboard 721 • Animacje w zasobach 722 Klatki kluczowe 72 Interpolacja: chodzi o przyspieszenie 727 5 Spis treści xiii 22.5. 22.6. Funkcje łagodzące 73 1 Korzystanie z funkcji łagodzących 732 • Tworzenie niestandardowej funkcji łagodzącej 734 Zachowania, wyzwalacze i działania 73 Korzystanie z istniejących zachowań 738 • Tworzenie swojego własnego zachowania 739 Podsumowanie 74 1 6 23. 22.7. Zasoby, style i szablony kontrolek 74 2 23.1. 23.2. 23.3. 23.4. Korzystanie z zasobów 74 3 Zasoby deklaratywne 743 • Dostęp do zasobów luźnych 750 • Zasoby spakowane 751 Nadawanie stylu elementom 75 4 Defi niowanie wyglądu 755 • Defi nicje stylów z jawnymi kluczami 757 • Defi nicje stylów niejawnych 758 Tworzenie szablonów 76 0 Budowanie szablonu kontrolki 760 • Tworzenie szablonów wielokrotnego użytku 765 Obsługa stanów wizualnych 76 Zrozumienie składników 766 • Korzystanie z możliwości VisualStateManager 768 Udostępnianie naszych stanów wizualnych 77 Podsumowanie 77 3 2 6 23.5. 23.6. Panele i kontrolki 77 4 24.1. 24. 24.2. Tworzenie niestandardowego panelu 77 5 Przygotowanie projektu 776 • Klasa OrbitPanel 776 • Właściwości 777 • Układ niestandardowy 780 • Usprawnienia 785 Tworzenie niestandardowej kontrolki 78 Wybieranie typu bazowego 787 • Właściwości 788 • Kontrakt dla szablonu kontrolki 789 • Szablon domyślny 790 • Stany wizualne 791 • Stany wizualne w szablonie 793 Podsumowanie 79 5 6 25. 24.3. Interfejs instalacji i ładowania 79 25.1. 6 Obsługa scenariuszy, gdy Silverlight nie jest zainstalowany 79 Tworzenie swojego własnego interfejsu instalacji 798 Korzystanie z niestandardowego modułu ładującego 80 0 Tworzenie wyglądu 801 • Integracja niestandardowego ekranu tytułowego 803 • Monitorowanie postępu ładowania 804 Podsumowanie 80 5 7 25.2. 25.3. ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== Konfi guracja bazy danych, połączenia i modelu danych 807 A.1. Instalacja bazy danych AdventureWorks 80 Instalowanie na dedykowanym wystąpieniu SQL Server 808 • Instalowanie w SQL Server Express 808 Połączenie bazodanowe i jednostki danych 80 Wybór jednostek do utworzenia 812 A.2. 7 9 A. Indeks 850 xiv Spis treści ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== Wstęp Zajmuję się programowaniem aplikacji klienckich. Zaczynałem w szkole od komputera Commodore 64 w latach osiemdziesiątych, później przeszedłem do systemu DOS pracu- jąc z technologiami dBase, QuickBasic i C++, a w końcu zająłem się programowaniem dla systemu Windows przy użyciu C++, Borland Delphi 1.0, PowerBuilder, Visual Basic 3–6 oraz .NET. Choć napisałem mnóstwo aplikacji WWW korzystających wyłącznie z HTML/JavaScript, to zawsze wolałem programowanie klienckie od ścisłego programowania dla WWW, ponie- waż czułem, że programowanie w HTML/JavaScript traktuje komputer PC jak głupi terminal trwoniąc cykle procesora na aplikacje, których wydajność niemal w całości zależy od sieci. Dopiero niedawno się to zmieniło. Gdy aplikacje WWW zaczynały stawać się popularne, klientom podobała się elastyczność pustej strony HTML wobec starego, szarego wyglądu aplikacji Windows, a także łatwość wdrażania aplikacji WWW. Po stronie programowania aplikacji klienckich mieliśmy kilka zbliżonych technologii (na przykład WPF, jeśli chodzi o wygląd), ale nic, co łączyłoby łatwość wdrażania z nowoczesnym wyglądem. Przez chwilę wyglądało to tak, jakby świat zamierzał przejść na względnie ograniczone aplikacje WWW traktując lokalny komputer jako jedynie klawiaturę i ekran – co wydawało się rozczarowującym posunięciem. W roku 2006, na długo zanim dostałem pracę jako Silverlight and WPF Community PM w Microsoft , uczestniczyłem w pierwszej konferencji MIX w Las Vegas. 21 marca, w drugim dniu konferencji, brałem udział w kilku sesjach dotyczących WPF/E, produktu, który później został przemianowany na Silverlight. Już wtedy fi rma Microsoft miała dla Silverlight przy- gotowaną wizję, która obejmowała komputery osobiste, urządzenia mobilne i dedykowane. Miała to być lżejsza wersja WPF zoptymalizowana pod kątem scenariuszy wieloplatformo- wych, która korzystałaby zarówno z siły przetwarzania po stronie klienta (po włączeniu .NET CLR do tej technologii), jak i zapewniała łatwość wdrażania tradycyjnych aplikacji WWW. Dokładnie tego szukałem! Byłem wtedy dość zafascynowany technologią WPF/E. Martwiłem się też nieco argu- mentami za przyjęciem się tej technologii. Postanowiłem poczekać i zobaczyć, co się stanie. Gdy pojawiły się wersje Silverlight 1.0 CTP i beta, nie byłem zbyt zachwycony, ponieważ ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== xvi Wstęp wykorzystywały jedynie JavaScript. Nie byłem wtedy wielkim fanem JavaScript i czułem, że technologia WPF/E nie będzie miała żadnego istotnego znaczenia, dopóki nie spełni obiet- nicy wykorzystania CLR w przeglądarce. Tak czy owak, w roku 2007 zająłem się projektem stworzenia kalkulatora redukcji emisji dwutlenku węgla w technologii WPF/E, który miał być dostępny w SharePoint na publicznej witrynie internetowej. Później na konferencji MIX07 nazwa Silverlight została nadana technologii WPF/E. Rów- nocześnie fi rma Microsoft wprowadziła wersję Silverlight 1.1, która działała z kodem zarzą- dzanym i zawierała międzyplatformową wersję .NET CLR. Hurra! Koniec z JavaScript! (Cóż, było to, zanim projekt jQuery udowodnił mi, że język JavaScript też może być wspaniały). W tym momencie namawiałem sponsorów projektu, aby pozwolili nam pracować w tech- nologii Silverlight 1.1a. Rozmawiałem też z pewnymi osobami w Microsoft i uzyskałem pozwolenie na użycie Silverlight 1.1a w publicznej aplikacji narzucając kod w stadium alfa niczego nie spodziewającym się użytkownikom. Pomimo (lub może z powodu) konieczności kodowania wielu podstawowych elementów od zera (potrzebowaliśmy przycisków i list rozwijanych, które nie istniały w wersji Silverlight 1.1a), zostałem całkowicie zauroczony. Czułem się, jak w dawnych czasach programowania dla systemu DOS, gdy trzeba było błąkać się bez istotnego wsparcia i wymyślać swoje własne sztuczki w celu osiągnięcia pożądanych celów. To był dziki zachód programowania (i mam tu na myśli dziki zachód z dodanymi gigantycznymi steampunkowymi pająkami). Nadal mam miejsce w sercu dla starszego brata Silverlight – WPF, ale łatwo było dostrzec, że to Silverlight zdobędzie świat szturmem. WPF jest wciąż niezwykle potężną technologią, ale wydaje się bardziej podobać użytkownikom niszowym i niezależnym twórcom oprogra- mowania, niż szerokiej grupie tworzącej zawodowo aplikacje oparte na WWW. Pracując w zespole tworzącym kalkulator emisji dwutlenku węgla wypuściliśmy na ry- nek pierwszą aplikację Silverlight w kodzie zarządzanym. Zawierała ona wideo, integrację z serwisem Windows Live Maps, integrację przez usługi WWW z SharePoint, oczywiście obliczenia dotyczące redukcji emisji oraz konfi gurowalny interfejs użytkownika całkowicie sterowany przez dane, z portalem SharePoint utrzymującym całość. Nie było wtedy prawdziwego ekosystemu związanego z Silverlight, a pomysł współpracy z projektantami przy tworzeniu aplikacji klienckich w technologiach Microsoft nie był jeszcze powszechny. Pomimo prymitywnego interfejsu użytkownika, który zaprojektowaliśmy, nadal jestem dumny z tego, co stworzyliśmy. Byłem podekscytowany możliwością wykorzystania swoich umiejętności .NET w czymś nowym i wyjątkowym. Później tego roku wersja Silverlight 1.1a została zaktualizowana do silniejszego podzbioru WPF i przemianowana na Silverlight 2, co położyło podstawy konieczne dla Silverlight 4 – edycji, która nadal mnie codziennie fascynuje, gdy z niej korzystam. Pete Brown ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== Podziękowania Książka taka, jak ta, jest wysiłkiem zbiorowym od początku do końca. Choć moje nazwisko jest na okładce, to nie mógłbym ukończyć tej książki bez wsparcia i ciężkiej pracy wielu innych osób. Wymienię tych, którym należą się podziękowania i przepraszam tych, których być może powinienem także wymienić: ■ ■ ■ ■ ■ ■ ■ ■ ■ Chad Campbell i John Stockton – za stworzenie tak świetnego pierwszego wydania. Bez ich ciężkiej pracy obejmującej Silverlight 2, nigdy nie pomyślałbym nad stworze- niem wydania dla wersji Silverlight 4. Marshal Agnew, Brendan Clark i Jordan Parker z zespołu produktowego Silverlight – za ich pomoc w dokopywaniu się do najgłębszych czeluści systemu obrazowania i ukła- du. Gdyby nie te osoby, nie byłbym w stanie zapewnić tego poziomu szczegółowości, który zawarłem w rozdziale 6. David Ferguson i Seema Ramchandani z zespołu produktowego Silverlight – za pomoc w kwestiach wydajnościowych dotyczących transformacji. Tim Heuer z zespołu produktowego Silverlight – za pomoc dotyczącą interfejsu in- stalacyjnego Silverlight, omawianego w rozdziale 25. Jeff Handley z zespołu produktowego usług WCF RIA Services – za przejrzenie roz- działu dotyczącego usług RIA Services. Ashish Shetty z zespołu produktowego Silverlight – za zachęcenie mnie do blogowa- nia na temat Silverlight, w tym na temat modelu aplikacji i procesu uruchamiania, co wykorzystałem też w tej książce. Tom McKearney, Tad Van Fleet, Al Pascual i Ben Hayat – za świetne recenzje technicz- ne. Wyłapali oni mnóstwo błędów, między innymi związanych z różnicami pomiędzy wersjami Silverlight 2, 3 i 4 oraz zmianami pomiędzy wcześniejszymi edycjami a koń- cowym wydaniem wersji Silverlight 4. René Schulte za pomoc w zaktualizowaniu podrozdziałów dotyczących obrazowania i procedur cieniowania pikseli. René jest ekspertem od pracy z bitmapami i proce- durami cieniowania. Mike Street z forów – za pomocne i dokładne recenzje wielu rozdziałów na forach. Mike był świetnym, nieofi cjalnym recenzentem technicznym tej książki. ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== xviii Podziękowania Ponadto wielu redaktorów, korektorów i recenzentów w wydawnictwie Manning Publications zasługuje na podziękowania za ciężką pracę. Dostarczyłem im książkę dwa razy większą, niż się spodziewali przy krótszym okresie produkcyjnym niż normalnie. Osoby takie, jak Benjamin Berg, Mary Piergies, Nermina Miller, Gordan Salinovic i inni pracowały niestru- dzenie, aby wydać tę książkę na czas. Dziękuję im i pozostałym pracownikom wydawnictwa Manning za wyrozumiałość, gdy terminy pracy nad książką nie były dotrzymywane, powstało trzymiesięczne opóźnienie, a książka okazała się dwa razy grubsza, niż zakładano. Szczególne podziękowania kieruję do swojego redaktora – Jeff a Bleiela. To była pierw- sza książka, jaką napisałem, więc nie byłem pewien, czego się spodziewać. Dobry redaktor może sprawić, że autorowi będzie się pracowało dobrze, a nie okropnie. Jeff był z pewnością świetnym redaktorem, respektował nasze odrębne kompetencje i starał się utrzymać pracę nad książką na właściwym torze. Był moim interfejsem z wydawnictwem Manning i moim mentorem jako autora. Jeff pozytywnie wpłynął na tę książkę i ogólnie na moje pisanie. Oprócz pojedynczych osób, które pomagały mi nad samą książką, są jeszcze ci, którzy pomogli w jej powstaniu przez swoją obecność lub działania. Przede wszystkim dziękuję swojej żonie Melissie za bycie samotną mamą przez większość roku 2010 i swoim dzieciom Benowi i Abby za zrozumienie, gdy mama mówiła im, że „tata pisze i nie może się teraz bawić”. Pisanie książki o takich rozmiarach dotyczącej produktu, który zmienia się co 10 lub 12 miesięcy, jest przedsięwzięciem angażującym całą rodzinę. Chciałbym podziękować swojemu szefowi w fi rmie Microsoft , Scottowi Hanselmanowi, za to, że zapewnił mi czas na ukończenie tej książki. Napisanie tej książki zajęło mnóstwo czasu i gdyby Scott nie dał mi nieco swobody, to po prostu nie zostałaby ukończona. Oczywiście dziękuję społeczności Silverlight i WPF, swoim przyjaciołom z serwisu Twitter, pracownikom zajmującym się Silverlight i WPF, posiadaczom tytułów MVP oraz wszystkim, którzy czytali i komentowali moje wpisy w blogu od pierwszego wydania Silverlight. Wsparcie społeczności dla tych technologii motywowało mnie do stworzenia jak najlepszej książki. Jestem też wdzięczny swojej mamie za zachęcanie mnie do pracy z komputerem i pomoc w uzyskaniu pierwszej pracy związanej z napisaniem aplikacji bazodanowej w C++. Bez niej nie byłbym dzisiaj w tym miejscu. Chciałbym podziękować swojemu tacie, który zmarł, podczas gdy pisałem tę książkę. Nigdy dobrze nie rozumiał, co robiłem na tym komputerze Commodore w swoim pokoju wpisując kod szesnastkowy z czasopism, ale wspierał mnie od początku i zachęcał mnie do podjęcia kariery związanej z tym, co lubię. Wreszcie chciałbym podziękować swoim Czytelnikom. ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== Informacje na temat tej książki Ogólnym celem tej książki jest informacja i nauczenie ekscytującej platformy Silverlight 4. Można ją traktować jako przewodnik po wtyczce, bibliotekach uruchomieniowych i pakiecie SDK Silverlight 4. Po przeczytaniu tej książki można z powodzeniem projektować, progra- mować i dostarczać bogate, interaktywne aplikacje wykorzystujące Silverlight. Aby ułatwić proces uczenia, opracowałem tę książkę tak, żeby można było zacząć programowanie tak szybko, jak to możliwe, zapewniając przy tym rozbudowaną, dogłębną treść. W każdym rozdziale zawarłem kilka elementów pomagających lepiej zrozumieć Silverlight. Następująca lista wyjaśnia, jak każdy z tych czynników pomaga w tym procesie: ■ ■ ■ Rysunki – Wizualne przedstawienia danych i skomplikowanych pojęć. Wydruki – niewielkie, zwarte fragmenty kodu, używane głównie do prezentacji for- matów składniowych. Te pojedyncze fragmenty zwykle nie mogą być uruchamiane samodzielnie. Tabele – Łatwe w czytaniu podsumowania. Oprócz tych elementów, moja osobista witryna http://10rem.net zawiera łącza do przykładów kodu użytych w tej książce. Dodatkowo witryna http://silverlightinaction.com dla pierwszego wydania zawiera zasoby, obrazy i usługi wykorzystywane w tej książce. Do kogo jest kierowana ta książka? Ta książka jest przeznaczona dla programistów, którzy chcą tworzyć nietrywialne aplikacje przy pomocy Microsoft Silverlight 4. Chociaż Silverlight zapewnia liczne możliwości inte- rakcji z projektantami, ta książka jest przeznaczona głównie do osób, które żyją i oddychają w Visual Studio. Informacje te będą też przydatne i cenne dla członków zespołów w roli integratorów (tych, którzy zajmują się projektami i implementują je w Silverlight). Ta książka zakłada co najmniej ogólną znajomość typowych standardów internetowych, takich jak HTML, CSS, XML i JavaScript. Ponadto ta książka zakłada pewne doświadczenie w korzystaniu z platformy .NET i Microsoft Visual Studio. Choć będziemy korzystać z C# jako głównego języka programowania, to nie będziemy opisywać języka C#, ani wyjaśniać podstawowych konstrukcji programistycznych, takich jak klasy, metody i zmienne. ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== xx Informacje na temat tej książki Do korzystania z tej książki nie jest wymagane doświadczenie w używaniu wcześniejszych wersji Silverlight. Jakie elementy są nam potrzebne? Ta książka zapewnia wiele okazji do nauki. Zapewnia również dużo elastyczności pozwa- lając na poznawanie materiału bez korzystania z praktycznych przykładów lub narzędzi opcjonalnych. Jeśli chcemy maksymalnie skorzystać z tej książki i przykładów praktycznych, to zalecane są następujące narzędzia: ■ ■ ■ ■ ■ Visual Studio 2010 Pro lub wyższa wersja albo Visual Studio Web Developer 2010 (darmowy) Silverlight 4 tools for Visual Studio 2010, w tym pakiet Silverlight 4 SDK i WCF RIA Services 1.0 Pakiet Silverlight toolkit Microsoft Expression Blend 4 (opcjonalnie) Microsoft Expression Blend 4 SDK for Silverlight 4 (instalowany z Blend 4) do two- rzenia i korzystania z zachowań Łącza do wszystkich tych narzędzi znajdziemy pod adresem http://silverlight.net/ GetStarted. Mapa drogowa Ta książka jest zaprojektowana jako praktyczny przewodnik po Silverlight 4. Skupia się na trzech głównych obszarach: wprowadzeniu do Silverlight, strukturze aplikacji i uzupełnieniach. Część 1: Wprowadzenie do Silverlight I.1.1 Rozdział 1 stanowi wprowadzenie do Silverlight. Ten wstęp pokazuje nam zalety Silverlight i wyjaśnia miejsce tej technologii na arenie aplikacji klienckich i internetowych. Ten rozdział kończy się instrukcją budowania pierwszej aplikacji Silverlight. Rozdział 2 omawia jedną z najbardziej fundamentalnych części Silverlight: XAML. Choć większość tej książki dotyczy języka XAML w takiej, czy innej formie, ten rozdział przecho- dzi od podstaw aż do drzew wizualnych i logicznych, systemu właściwości zależnościowych i rozszerzeń XAML. Rozdział 3 wyjaśnia, jak działa wtyczka Silverlight i proces uruchamiania aplikacji. Po- znamy obiekt aplikacji, plik .xap i przechowywanie podzespołów w pamięci podręcznej. Przypatrzymy się też, jak inicjować wtyczkę i korzystać z niej na stronie WWW. Rozdział 4 rozwija zagadnienie integracji z przeglądarką wprowadzone w rozdziale 3 i po- kazuje, jak manipulować modelem HTML DOM z poziomu Silverlight, pracować z oknem przeglądarki oraz łączyć światy skryptowy i zarządzany. Ten rozdział wprowadza również ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== Mapa drogowa xxi kontrolkę WebBrowser używaną do wyświetlania zawartości WWW w Silverlight podczas działania aplikacji poza przeglądarką. W rozdziale 5 opuszczamy środowisko WWW i przechodzimy do pulpitu. Silverlight ob- sługuje tworzenie aplikacji pulpitowych działających zarówno z ograniczeniami, jak i z pod- wyższonym zaufaniem. Ten rozdział obejmuje aplikacje uruchamiane poza przeglądarką, dostęp do plików lokalnych, automatyzację COM, niestandardową otoczkę okien, pracę na pełnym ekranie i wykorzystanie pamięci izolowanej. Rozdział 6 obejmuje system układu i obrazowania, a także transformacje dwuwymiarowe i trójwymiarowe. Jeśli naprawdę chcemy zrozumieć, co się dzieje, gdy umieszczamy piksele na ekranie, to wiedza o systemie układu i obrazowania jest koniecznością. Dla mnie osobi- ście te informacje są niezwykle interesujące; mam nadzieję, że dla innych również. Rozdział ten obejmuje też transformacje dwuwymiarowe, takie jak pochylenie i przesunięcie oraz trójwymiarowe rzutowanie płaskie i matrycowe. Rozdział 7 rozwija informacje o układzie z rozdziału 6, żeby pokazać, jak korzystać z róż- nych typów paneli w Silverlight, w tym Grid, StackPanel i Canvas. Rozdział 8 zajmuje się czynnikiem ludzkim. Wszystkie dotychczasowe rozdziały dotyczyły prezentacji, a ten dotyczy zbierania informacji. Dowiemy się, jak korzystać z klawiatury, myszy, wirtualnego atramentu i interfejsów dotykowych do przeprowadzania działań w na- szych aplikacjach. Rozdział 9 obejmuje wejście i wyjście tekstowe. Zaczynam od omówienia technologii tekstowych, w tym od informacji o strategiach wygładzania czcionek oraz typowych wła- ściwościach tekstowych kontrolek i elementu TextBlock. Następnie przyjrzę się kontrolkom do wprowadzania tekstu, takim jak TextBox i RichTextBox z dygresjami na temat edytorów IME i tekstu międzynarodowego. Rozdział 10 wprowadza kilka kontrolek niezwiązanych z tekstem, w tym Button, RadioButton, CheckBox, ComboBox, ListBox i inne. Ten rozdział obejmuje też bazowe typy kontrolek dla wbu- dowanych i niestandardowych kontrolek, takie jak ContentControl i ItemsControl. Część 2: Struktura aplikacji I.1.2 Rozdział 11 obejmuje wiązanie. W Silverlight nie powinniśmy przypisywać wartości bezpo- średnio do kontrolek w kodzie strony. Wiązanie jest jedną z najważniejszych funkcji Silver- light i będziemy się nim dalej zajmowali w kolejnych rozdziałach. Rozdział 12 rozwija to, co poznaliśmy w rozdziale 11 i wykorzystuje kontrolki DataGrid oraz DataForm. W tym rozdziale omawiam też zastosowanie adnotacji danych do sterowania atrybutami wyświetlania dla naszych jednostek. Rozdział 13 również rozszerza informacje z rozdziału 11 i 12, żeby zapewnić możliwo- ści sprawdzania poprawności w naszych aplikacjach. Omawiam sprawdzanie poprawności oparte na wyjątkach, synchroniczne i asynchroniczne sprawdzanie poprawności przy użyciu interfejsów, sprawdzanie poprawności z wykorzystaniem atrybutów oraz tworzenie swoich własnych, niestandardowych procedur sprawdzania poprawności. ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== xxii Informacje na temat tej książki Rozdział 14 pomaga naszym aplikacjom Silverlight komunikować się z serwerami w In- ternecie i intranecie. W tym rozdziale dowiadujemy się, jak korzystać z usług SOAP i REST, stosu WWW, gniazd, a nawet lokalnych połączeń pomiędzy aplikacjami Silverlight. Rozdział 15 zajmuje się wykorzystaniem platformy Navigation Framework, okien i okien dialogowych w naszych aplikacjach. Przyjrzymy się, jak zorganizować strukturę swojej apli- kacji w postaci ciągu stron, obsługiwać adresy i mapowania URL oraz przekazywanie para- metrów. Zapoznamy się też z wbudowanymi oknami dialogowymi i klasą ChildWindow. Rozdział 16 omawia wzorzec MVVM i testy jednostkowe. Bez wybierania konkretnej plat- formy MVVM (albo ViewModel) pokażę pojęcia stojące za wzorcem ViewModel i sposoby ich implementacji w swoich własnych aplikacjach. Ten rozdział zamyka się informacjami dotyczącymi testowania aplikacji Silverlight przy pomocy platformy Silverlight Unit Testing Framework. Rozdział 17 omawia jeden z najbardziej ekscytujących elementów aplikacji biznesowych lub zorientowanych na dane: usługi WCF RIA Services. Omówimy tworzenie aplikacji RIA z wykorzystaniem szablonu Business Application i przyjrzymy się wszystkiemu od zapytań i operacji aktualizujących do reguł biznesowych, sprawdzania poprawności i zabezpieczeń. Część 3: Uzupełnianie interfejsu I.1.3 Rozdział 18 zajmuje się grafi ką wektorową i pędzlami – kluczowymi pojęciami przy tworzeniu aplikacji, które nie ograniczają się do zwykłych kontrolek. Ten rozdział omawia też efekty i procedury cieniowania pikseli, zamykając się informacjami na temat budowania swojej własnej, niestandardowej procedury cieniowania pikseli w językach HLSL i C#. Rozdział 19 omawia pracę z drukarką z poziomu Silverlight. Wersja Silverlight 4 wprowa- dziła możliwość drukowania krótkich dokumentów lub obsługi funkcjonalności drukowania zawartości ekranu. Omawiamy interfejs API i podsumowujemy ten rozdział implementacją niestandardowego rozwiązania raportującego do tworzenia krótkich raportów. Rozdział 20 jest w całości poświęcony multimediom: wideo i audio. W tym rozdziale omawiam różne sposoby przedstawiania zawartości wideo i audio w naszej aplikacji, w tym technologię IIS Smooth Streaming i niestandardowe kodeki tworzone w kodzie zarządzanym przy użyciu MediaStreamSource. Zajmuję się też interfejsem API dla kamer internetowych i mikrofonów omawiając podstawy ich użycia, a także tworząc własną klasę VideoSink do ma- nipulowania zwróconymi danymi. Rozdział 21 zajmuje się nieruchomymi obrazami. W tym rozdziale przyglądamy się, jak korzystać z obrazów bitmapowych w swojej aplikacji, w tym poznajemy podejścia do gene- rowania obrazów w trakcie działania programu. Rozdział 22 omawia animację i zachowania. Dowiemy się, jak korzystać z planów animacji do ożywienia swojego interfejsu. Następnie przyjrzymy się wykorzystywaniu i tworzeniu zacho- wań opakowujących funkcjonalność wielokrotnego użytku, często z zastosowaniem animacji. Rozdział 23 omawia style, szablony i zasoby. Przyjrzymy się, jak opakowywać informacje o stylach dla kontrolek i jak tworzyć całkiem nowe szablony wykorzystując model kontrolek bez wyglądu. ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== Konwencje dotyczące kodu i materiały do pobrania xxiii Rozdział 24 nauczy nas, jak tworzyć niestandardowe panele i kontrolki. Choć w Silverlight prawie wszystko możemy zrobić przy użyciu nowego szablonu kontrolki, to czasem musimy utworzyć swoją własną kontrolkę lub panel. Rozdział 25 zamyka tę książkę informacjami na temat tworzenia najlepszego, możliwe- go interfejsu instalacyjnego dla wtyczki, a także najlepszego interfejsu ładowania naszych aplikacji. Konwencje dotyczące kodu i materiały do pobrania Cały kod w tej książce jest przedstawiany przy użyciu czcionki z literami o jednakowej szerokości. Kod ten może być pisany w różnych językach programowania, używany język jest podany na początku bloku kodu. Przy dłuższych wierszach kodu może być używany znak zawijania wiersza, żeby poradzić sobie z ograniczeniami drukowanej strony. Adnotacje towarzyszą wielu wydrukom kodu, a numerowane wskaźniki są używane, gdy potrzebne są dłuższe wyjaśnienia. Kod źródłowy dla wszystkich przykładów w tej książce jest dostępny do pobrania z witryny WWW wydawcy pod adresem www.manning.com/Silverlight4inAction i z witryny WWW autora pod adresem http://10rem.net. Autor w sieci Zakup Silverlight 4 w działaniu zawiera darmowy dostęp do prywatnego forum prowadzonego przez wydawnictwo Manning Publications, gdzie można komentować tę książkę, zadawać pytania techniczne i uzyskać pomoc od autora i innych użytkowników. Dostęp do tego forum można uzyskać pod adresem www.manning.com/Silverlight4inAction. Strona ta zapewnia informacje dotyczące tego, jak dostać się do forum po zarejestrowaniu, jaki rodzaj pomocy jest dostępny i jakie są zasady postępowania na forum. Wydawnictwo Manning chce zapewniać swoim Czytelnikom miejsce, gdzie mogą pro- wadzić dialog z autorem oraz między sobą. Nie zobowiązuje to autora do udziału w forum tej książki w jakimś określonym stopniu, jego zaangażowanie jest dobrowolne (i bezpłatne). Zachęcamy do zadawania autorowi wymagających pytań. Forum Author Online i archiwa z wcześniejszymi dyskusjami będą dostępne na witrynie WWW wydawcy tak długo, jak ta książka będzie dostępna w druku. Oprócz forum Author Online na witrynie wydawnictwa można też kontaktować się z nami w sprawach związanych z tą książką i innych, korzystając z jednego z następujących miejsc: Witryny i blogu autora Konta Pete’a w serwisie Twitter http://10rem.net http://twitter.com/pete_brown ■ ■ ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== xxiv Informacje na temat tej książki O autorze Pete Brown pracuje na stanowisku Community Program Manager w fi rmie Microsoft w ze- spole zajmującym się społecznością programistów prowadzonym przez Scotta Hanselmana, jest również byłym posiadaczem tytułu Microsoft Silverlight MVP, wykładowcą INETA oraz architektem RIA w Applied Information Sciences, gdzie pracował przez ponad 13 lat. W fi rmie Microsoft Pete skupia się na społeczności związanej z programowaniem aplika- cji klienckich (WPF, Silverlight, Windows Phone, Surface, Windows Forms, C++, Native Windows API, itd.). Od swoich pierwszych grafi k i niestandardowych zestawów znaków dla komputera Com- modore 64, poprzez modelowanie i projektowanie 3-wymiarowe, aż do programowania dla Silverlight, Surface, XNA i WPF, Pete zawsze dogłębnie interesował się programowaniem, projektowaniem i interfejsami użytkownika. Jego zaangażowanie w technologię Silverli- ght sięga wstecz aż do aplikacji dla wersji Silverlight 1.1 alpha, które współtworzył i wdro- żył do produkcji w czerwcu 2007. Pete programuje dla zabawy od 1984 roku i zawodowo od 1992 roku. W wolnym czasie Pete zajmuje się programowaniem, pisaniem blogu, stolarką i wycho- wywaniem z żoną dwójki swoich dzieci na przedmieściach Maryland. O tytule Łącząc podstawy, omówienia i przykłady, książki z serii W działaniu mają pomóc w nauce danej technologii. Według badań naukowych ludzie zapamiętują lepiej rzeczy, które odkry- wają sami poprzez badanie. W wydawnictwie Manning jesteśmy przekonani, że skuteczne uczenie musi przecho- dzić przez etapy badania, zabawy i powtarzania poznawanego materiału. Ludzie rozumieją i zapamiętują nowe rzeczy, czyli je opanowują, tylko jeśli aktywnie je badają. Ludzie uczą się w działaniu. Istotną częścią książki z serii W działaniu jest to, że jest prowadzona przez przykłady. Zachęca Czytelnika do wypróbowywania nowych zagadnień, zabawy z nowym kodem i badania nowych pomysłów. Jest też inny, bardziej przyziemny powód dla takiego tytułu książki: nasi Czytelnicy są za- jęci. Korzystają z książek w celu wykonania swojej pracy lub rozwiązania jakiegoś problemu. Potrzebują książki, która pozwala im łatwo zapoznać się z określonym zagadnieniem wtedy, gdy tego potrzebują. Potrzebne im są książki, które pomagają im w działaniu. Książki w tej serii są zaprojektowane dla takich Czytelników. ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== O ilustracji na okładce Rysunek na okładce książki Silverlight 4 w działaniu przedstawia janczara w stroju paradnym. Janczarzy stanowili osobiste oddziały osmańskiego sułtana. Ilustracja pochodzi ze zbioru kostiumów z imperium osmańskiego opublikowanego 1 stycznia 1802 roku przez Williama Millera z Old Bond Street w Londynie. W zbiorze tym brakuje strony tytułowej i jak dotąd nie udało się jej odnaleźć. Spis treści w tej książce opisuje obrazki po angielsku i po francusku, a każda ilustracja opatrzona jest nazwiskami dwóch artystów, którzy nad nią pracowali. Bez wątpienia obaj byliby zaskoczeni odkryciem, że ich dzieło trafi na okładkę książki progra- mistycznej… dwieście lat później. Zbiór ten został zakupiony przez redaktora wydawnictwa Manning na antykwarycznym pchlim targu „Garage” przy West 26th Street na Manhattanie. Sprzedawcą był Amerykanin pochodzący z Ankary w Turcji, a transakcja została dokonana, gdy zaczął już pakować swoje stoisko pod koniec dnia. Redaktor wydawnictwa Manning nie miał przy sobie odpowiedniej ilości gotówki, która była wymagana do zakupu, a sprzedawca grzecznie odmówił przyjęcia karty kredytowej i czeku. Ponieważ sprzedawca miał odlatywać do Ankary tego wieczoru, sy- tuacja stawała się beznadziejna. Jakie było rozwiązanie? Okazało się, że wystarczy staromodna umowa ustna przypieczętowana uściśnięciem dłoni. Sprzedawca po prostu zaproponował, aby pieniądze zostały mu przekazane przelewem i nasz redaktor oddalił się z informacjami o koncie bankowym na kartce papieru i zbiorem rysunków pod pachą. Nie trzeba dodawać, że przelaliśmy fundusze następnego dnia i jesteśmy wdzięczni tej nieznanej osobie za okazane nam zaufanie. Wygląda to na historię, która mogła się zdarzyć dawno temu. Rysunki ze zbioru osmańskiego, jak inne ilustracje, które pojawiają się na naszych okład- kach, przywracają do życia bogactwo i różnorodność strojów sprzed kilku wieków. Przypomi- nają o poczuciu izolacji i oddalenia z tego okresu – oraz każdego innego okresu historycznego poza naszą własną hiperkinetyczną teraźniejszością. Etykiety związane z ubiorami zmieniły się od tego czasu, a zróżnicowanie regionalne, które wtedy było tak bogate, rozpłynęło się. Obecnie trudno jest zazwyczaj odróżnić mieszkańca jednego kontynentu od drugiego. Być może, starając się spojrzeć na to optymistycznie, zamieniliśmy różnorodność kulturalną i wizualną na bardziej zróżnicowane życie osobiste albo bardziej różnorodne i interesujące życie intelektualne i techniczne. W wydawnictwie Manning cenimy inwencję, inicjatywę i radość związaną z biznesem komputerowym poprzez okładki książek oparte na bogatej różnorodności życia regionalnego sprzed wieków i przywrócone do życia dzięki rysunkom z tego zbioru. ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== Część 1 Wprowadzenie do Silverlight Pierwszą część tej książki zaczniemy od zbudowania swojej pierwszej aplikacji Silverlight, a następnie zagłębimy się w mechanizmy kierujące tą technologią. Omówimy język znaczni- ków używany do tworzenia interfejsu, zapoznamy się z modelem aplikacji i przyjrzymy się integracji zarówno z przeglądarką, jak i z pulpitem. Następnie poznamy system kompozycji i panele – dwa pojęcia istotne dla skutecznego projektowania interfejsu użytkownika. Część tę zakończymy omówieniem wprowadzania danych przy pomocy myszy, dotyku i klawia- tury; wyświetlania i wprowadzania tekstu; oraz dyskusją na temat różnych typów kontrolek powszechnie używanych w projektach. ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== 1 Wprowadzenie do Silverlight Ten rozdział omawia: ■ ■ ■ ■ ■ Silverlight, sieć WWW i WPF Najlepsze aplikacje dla Silverlight Początki pracy z Silverlight Zmiany w technologii Silverlight od pierwszego wydania tej książki Budowanie pierwszej aplikacji w Silverlight Przede wszystkim chciałbym podziękować za rozpoczęcie czytania od rozdziału 1. Należę do tych osób, które zwykle czytają czasopisma od tyłu i pobieżnie kartkują książki techniczne, więc doceniam, gdy ktoś czyta rozdziały książki we właściwej kolejności. Jednakże może się też zdarzyć, że ktoś czyta tę książkę od tyłu. W takim przypadku omówienie aplikacji „Hello World!” z tego rozdziału może być odświeżająco prostym przykładem budowania aplikacji Silverlight bez obciążenia wzorcami, takimi jak Model View ViewModel (MVVM), nazwami, takimi jak DependencyProperty, i technologiami, takimi jak usługi Windows Communication Foundation (WCF) Rich Internet Application (RIA) Services. Pozostali mogą się nie mar- twić – omówimy wszystkie te elementy w dalszych częściach tej książki stopniowo rozwijając po drodze swoje umiejętności programowania w Silverlight. Sięgając po książkę na temat Silverlight dobrze byłoby wiedzieć, czym jest ta technologia. Na szczęście kiepsko u mnie z marketingiem, więc ujmę to prosto: Silverlight jest wieloplat- formowym środowiskiem uruchomieniowym .NET, wtyczką dla różnych przeglądarek i zbio- rem narzędzi projektowych opartych na systemie Windows przeznaczonym do budowania ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw==  Rozdział  Wprowadzenie do Silverlight złożonych aplikacji internetowych. Silverlight jest w istocie implementacją pojęć i standardów znanych z Windows Presentation Foundation (WPF), takich jak wiązanie, system właściwości i język znaczników XAML (Extensible Application Markup Language) w wersji środowiska uruchomieniowego CLR (Common Language Runtime) i bibliotek dla wielu platform. To wszystko. Myślę, że w tym akapicie udało mi się zdefi niować wszystkie skrótowce uży- wane na pozostałych stronach tej książki. Jest to jednak technologia fi rmy Microsoft , więc można spodziewać się po drodze dalszych skrótowców. Technologia Silverlight działa na platformach Windows i Mac, a także na platformie Linux poprzez projekt Moonlight. Działa też na telefonach Windows Phone 7 i Nokia Symbian S60. Widzieliśmy demonstracje jej działania na konsolach podłączanych do telewizorów oraz obsługiwanie przez nią reklam i treści na konsoli Xbox. Podsumowując, poza ASP.NET, Silverlight jest najszerzej dostępną technologią wyprodukowaną przez Microsoft . Aplikacje Silverlight działają w sieci WWW, a także na komputerach klienckich. Możemy tworzyć niemal dowolne typy aplikacji w Silverlight, od serwisów WWW, do gadżetów, odtwarzaczy multimediów i rozbudowanych aplikacji klienckich. W tej części przedstawimy technologię Silverlight, przyglądając się, jak pasuje ona do ze- stawu narzędzi projektowych dostępnych dla sieci WWW i pulpitu. Następnie przyjrzymy się kilku różnym typom aplikacji Silverlight, do których Silverlight dobrze się nadaje. Następnie wypróbujemy funkcje i możliwości, które zostały dodane od czasu pierwszego wydania tej książki, a wreszcie podsumujemy przykładem tworzenia pierwszej aplikacji Silverlight. Technologia Silverlight rozpoczęła swoje działanie jako wtyczka dla stron WWW, od tego też zaczniemy w tej książce. Silverlight i sieć WWW 1.1 Silverlight zajmuje ciekawe miejsce pomiędzy aplikacjami dla pulpitu i aplikacjami dla prze- glądarki. W pewnym sensie jest jak tradycyjna aplikacja dla pulpitu wbudowana w HTML. Oczywiście to samo można powiedzieć o wielu aplikacjach JavaScript Ajax, które same opie- rają się na modelu aplikacji dla pulpitu z kodem po stronie klienta. Świetne biblioteki, takie jak jQuery, i nadchodząca, nieco mgliście zdefi niowana, wersja HTML 5, trochę zaciemniają obraz. Jakie jest miejsce technologii Silverlight w sieci WWW? Dlaczego mielibyśmy korzystać z Silverlight zamiast z tych innych technologii? Podam kilka powodów: ■ ■ ■ ■ Technologia Silverlight jest już dostępna. Silverlight działa już na wielu platformach i w wielu przeglądarkach. Silverlight zawiera obsługę multimediów na najwyższym poziomie, w tym znacznie bardziej zaawansowane zarządzanie prawami cyfrowymi (DRM), niż proponowane standardy HTML 5. Silverlight jest prostą technologią, jeśli ktoś jest już programistą .NET szukającym dostępu do innych platform. ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== Silverlight i WPF  Nie należy mnie źle rozumieć; sądzę, że wersja HTML 5, gdy zostanie w pełni opisana i przy- jęta, będzie świetnym elementem sieci WWW – zarówno ekscytującym, jak i kryjącym wiele możliwości. To powiedziawszy, technologia Silverlight oferuje bardziej zaawansowane na- rzędzia autorskie, szybsze działanie i więcej możliwości, niż kiedykolwiek będzie się można spodziewać po HTML 5. Zamiast prowadzić grę o sumie zerowej, sądzę, że HTML 5 pod- niesie poprzeczkę zwiększając jakość i możliwości szerokiego spektrum platform i narzędzi programistycznych. Osobiście nie uważam, że zniknie podejście do tworzenia aplikacji z kodem po stronie klien- ta. Chociaż przez lata wieszczono koniec wielu ważnym podejściom programistycznym, to kil- ka z nich faktycznie upadło, podczas gdy popularność innych rosła. Technologie Silverlight i HTML 5 po prostu zapewnią więcej opcji implementowania potrzebnych rozwiązań w naj- bardziej optymalny sposób, przy użyciu znajomych narzędzi i już nabytych umiejętności. Warto też pamiętać, że technologie HTML/JavaScript oraz Silverlight nie wykluczają się wzajemnie. Aplikacje Silverlight mogą spokojnie współistnieć na stronie z aplikacjami Ajax wzajemnie się uzupełniając poprzez jak najlepsze wykorzystanie swoich mocnych stron. Silverlight to znacznie więcej niż technologia internetowa. Chociaż aplikacje Silverlight mogą działać na stronie WWW, to często też istnieją aplikacje Silverlight działające poza prze- glądarką albo połączone z usługami, albo po prostu wykorzystujące zasoby klienta. W tych przypadkach można zastanawiać się, kiedy skorzystać z WPF, a kiedy z Silverlight. Silverlight i WPF 1.2 Technologie Silverlight i WPF zrodziły się z tych samych pomysłów. Technologia WPF po- jawiła się najpierw i przyczyniła się do uczynienia z XAML języka znaczników przyjaznego przy tworzeniu interfejsów użytkownika. Wprowadziła też pojęcia właściwości zależnościo- wych i wiązań, animacji opartej na scenariuszach oraz interfejsów użytkownika rysowanych wektorowo z dokładnością do fragmentów pikseli. Technologia WPF jest jednak rozbudowana i skomplikowana. Jest też głęboko zakorze- niona w systemie Windows bez dobrych sposobów na wykorzystanie innych platform niż te, na których się opiera. Wykorzystuje też przy zabezpieczaniu aplikacji nieco przestarza- ły i nieprzyjazny dla WWW model zabezpieczeń dostępu z poziomu kodu. Gdy więc fi r- ma Microsoft zdecydowała się wejść w dziedzinę rozbudowanych aplikacji internetowych z technologią wektorowych interfejsów użytkownika opartą na CLR, wzięła pomysły i część kodu z technologii WPF i zaimplementowała je ponownie w bardziej zwarty i niezależny od platformy sposób. Silverlight jest w znacznej mierze podzbiorem technologii WPF z kilkoma dodatkami. Niektóre z tych dodatków, takie jak Visual State Manager, zostały następnie przeniesione z powrotem z Silverlight do WPF. Inne, takie jak Deep Zoom, Media Stream Source oraz interfejsy API do obsługi kamer internetowych i mikrofonów są obecnie funkcjami obec- nymi jedynie w Silverlight. Pomijając alternatywne rozwiązania tych samych problemów, rysunek 1.1 pokazuje tę relację korzystając z diagramu Venna. ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw==  Rozdział  Wprowadzenie do Silverlight WPF Silverlight Rysunek 1.1 Silverlight jest przede wszystkim podzbiorem WPF z kilkoma dodanymi elementami. Pomijając alternatywne rozwiązania tych samych problemów, miejscami, gdzie WPF różni się najbardziej, są integracja z systemem operacyjnym Windows i dostęp do pełnej platformy .NET. Sugeruję, aby programiści, którzy nie znają żadnej z tych technologii, zapoznali się najpierw z Silverlight przed zaznajomieniem się z WPF. Ogólnie rzecz biorąc łatwiej będzie się naj- pierw nauczyć technologii Silverlight, a następnie przejść do WPF, jeśli będzie taka potrzeba. Silverlight ma mniejszy zakres, zwykle ma jedno podejście do rozwiązania danego problemu, natomiast WPF może mieć kilka rozwiązań dla tego samego zadania. Chociaż Silverlight nie zawiera wszystkiego tego co WPF, to jest świetną, sprawną platformą programistyczną, którą można wykorzystać do wielu typów aplikacji, które wcześniej pisalibyśmy przy użyciu technologii Windows Forms, WPF lub nawet HTML. Typy aplikacji Silverlight 1.3 Możemy zbudować niemal dowolną aplikację korzystając z Silverlight. Oczywiście Silverlight do niektórych typów aplikacji bardziej się nadaje niż do innych. Na przykład, choć to moż- liwe, raczej nie będziemy chcieli zbudować całego serwisu WWW przy użyciu Silverlight; do tego zadania są lepsze narzędzia. Silverlight świetnie nadaje się do multimediów. Gdy pojawiła się wersja Silverlight 1.0, jed- ną z pierwszych jej możliwości była doskonała obsługa multimediów. W kolejnych wersjach aż do 4 technologia Silverlight rozbudowywała tę obsługę o nowe możliwości multimedialne, takie jak płynne przetwarzanie strumieniowe, dołączane kodeki wykorzystujące interfejs Media Stream Source API, a nawet technologie DRM wymagane przez dużych producentów treści multimedialnych chcących wykorzystać Silverlight. Skupienie się przez Silverlight od samego początku na multimediach było zarówno po- mocne, jak i bolesne. Wideo w sieci WWW jest świetnym sp
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Silverlight 4 w działaniu
Autor:

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: