![]() |
![]() |
Twoje konto | Zarejestruj | Schowek | Kontakt | Pomoc |
![]() Silverlight 4 w działaniu. Silverlight 4, MVVM i usługi WCF RIA Services
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.
O Autorze: 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. Inni o książce: Al Pascual, ERSI „Podnosi poprzeczkę dla tytułów dotyczących Silverlight – koniecznie kupcie tę książkę!” Richard Costall, Blog NxtGenUG „To świetna książka, a rozdział dotyczący MVVM jest prawdziwą perełką”. Omar Shraim Wstęp xix Część 1 Wprowadzenie do Silverlight 1 1. Wprowadzenie do Silverlight 1 1.1. Silverlight i sieć WWW 3 1.2. Silverlight i WPF 4 1.3. Typy aplikacji Silverlight 5 1.4. Co nowego pojawiło się od pierwszego wydania 6 Funkcje dla aplikacji biznesowych i klienckich 6 1.5. Rozpoczęcie programowania w Silverlight 9 Instalowanie środowiska programistycznego 9 1.6. Budowa pierwszej aplikacji internetowej w Silverlight 10 Przygotowanie projektu 11 1.7. Podsumowanie 20 2. Fundamenty XAML 23 2.1. Podstawy XAML 24 Obiekty 25 2.2. Drzewa obiektów i zakres nazw 39 Drzewa obiektów 39 2.3. Rozszerzenia XAML i konwertery typów 44 Rozszerzenia kodu znacznikowego 44 2.4. Ładowanie XAML podczas działania programu 48 2.5. Narzędzia do pracy z XAML 51 2.6. Podsumowanie 52 iv Spis treści 3. Model aplikacji i wtyczka Silverlight 53 3.1. Model aplikacji Silverlight 54 Proces rozruchowy aplikacji 54 3.2. Tworzenie wtyczki Silverlight 65 Wykorzystanie znacznika object 67 • Wykorzystanie pliku narzędziowego Silverlight.js 68 • Tworzenie wystąpienia wtyczki Silverlight 69 3.3. Integrowanie wtyczki Silverlight 70 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 3.4. Podsumowanie 81 4. Integracja z przeglądarką 82 4.1. Silverlight i model DOM w HTML 83 4.2. Zarządzanie stroną WWW z poziomu kodu zarządzanego 85 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 4.3. Praca z oknem przeglądarki użytkownika 89 Komunikaty dla użytkownika 89 • Nawigowanie w oknie przeglądarki 91 • Odkrywanie właściwości przeglądarki 91 4.4. Łączenie świata skryptowego i świata kodu zarządzanego 92 Wywoływanie kodu zarządzanego z poziomu JavaScript 93 • Korzystanie z języka JavaScript z poziomu kodu zarządzanego 95 4.5. Umieszczanie HTML w Silverlight 96 Wstawianie kontrolki WebBrowser 97 • Korzystanie z WebBrowserBrush 103 4.6. Podsumowanie 106 5. Integracja z pulpitem 107 5.1. Silverlight poza przeglądarką 108 Możliwości i ograniczenia 110 • Doświadczenie użytkownika końcowego 111 5.2. Tworzenie aplikacji uruchamianych poza przeglądarką 113 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 Spis treści v 5.3. Ucieczka z piaskownicy – podwyższone zaufanie 123 Tworzenie aplikacji z podwyższonym zaufaniem 124 • Wykrywanie trybu podwyższonego zaufania 127 5.4. Dostęp do plików lokalnych 128 Dostęp do folderów specjalnych 128 • Odczytywanie danych z pliku 129 • Zapisywanie do pliku 129 5.5. Automatyzacja COM 130 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 5.6. Kontrola okna gospodarza 135 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 5.7. Uruchamianie na pełnym ekranie 142 Normalny tryb pełnoekranowy 142 • Tryb pełnoekranowy z podwyższonym zaufaniem 144 5.8. Przechowywanie danych w pamięci izolowanej 145 IsolatedStorageFile: wirtualny system plików 145 • Odczytywanie i zapisywanie plików w pamięci izolowanej 150 • Administrowanie pamięcią izolowaną 153 5.9. Podsumowanie 153 6. Obrazowanie, układ elementów i transformacje 155 6.1. UIElement i FrameworkElement 156 Właściwości 156 • Metody 163 6.2. Proces obrazowania 165 Tyknięcie zegara 166 • Funkcja zwrotna wywoływana dla obrazowania każdej klatki 167 • Rasteryzacja 168 6.3. System układu elementów 174 Układ wieloprzebiegowy – mierzenie i ustawianie 175 • Klasa LayoutInformation 177 • Uwarunkowania wydajności 178 6.4. Transformacje obrazowania 179 RotateTransform 180 • ScaleTransform 181 • SkewTransform 181 • TranslateTransform 182 • TransformGroup 182 • CompositeTransform 183 • MatrixTransform 184 6.5. Transformacje rzutowania trójwymiarowego 187 PlaneProjection 187 • Matrix3dProjection 189 6.6. Podsumowanie 191 vi Spis treści 7. Panele 192 7.1. Canvas 193 Organizowanie zawartości panelu Canvas 193 7.2. StackPanel 197 7.3. Grid 199 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 7.4. Podsumowanie 210 8. Dane wejściowe od użytkownika 211 8.1. Przechwytywanie klawiatury 212 Zrozumienie fokusu 212 • Obsługa zdarzeń klawiatury 213 • Obsługa klawiszy modyfi kujących 215 8.2. Dane wejściowe myszy 216 Zdarzenia przycisków i ruchu myszy 217 • Korzystanie z kółka myszy 218 8.3. Korzystanie z wielodotyku 221 8.4. Zbieranie danych wprowadzanych wirtualnym atramentem 223 Tworzenie obiektu InkPresenter 223 • Zbieranie informacji o atramencie 224 • Nadawanie stylu atramentowi 226 8.5. Podsumowanie 227 9. Tekst 228 9.1. System tekstowy 229 Obrazowanie z dokładnością do części piksela 230 • Wskazówki dla tekstu 230 9.2. Wyświetlanie tekstu 232 Właściwości czcionki 233 • Kontrola przepływu tekstu 236 • Właściwości tekstu 237 • Odstępy 240 9.3. Osadzanie czcionek 243 9.4. Wprowadzanie i edycja tekstu 244 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 9.5. Wprowadzanie i wyświetlanie tekstu sformatowanego 252 Formatowanie i elementy wewnętrzne 253 • Praca z zaznaczonym tekstem 258 9.6. Podsumowanie 261 Spis treści vii Kontrolki pod 10. stawowe i kontrolki użytkownika 263 10.1. Control 264 Wygląd 264 • Nawigacja i stan 265 • Szablony 266 10.2. ContentControl 267 ContentPresenter 269 10.3. Kontrolki przycisków 270 Button 270 • HyperlinkButton 271 • RadioButton 272 • CheckBox 274 10.4. ItemsControl 275 ListBox 276 • ComboBox 279 • TabControl 279 10.5. Tworzenie kontrolek UserControl 282 Defi niowanie wyglądu 284 • Defi niowanie zachowania 285 • Wywoływanie kontrolki 288 10.6. Podsumowanie 289 Część 2 Struktura aplikacji . . . . . . . . . . . . . . . . . . . . . . . . . . .291 11. Wiązanie 293 11.1. Wiązanie z naszymi danymi 294 Opanowanie składni wiązania 295 • Wybieranie trybu wiązania 297 11.2. Zrozumienie źródła wiązania 299 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 11.3. Dostosowywanie wyświetlania 309 Formatowanie wartości 310 • Konwertowanie wartości podczas wiązania 310 • Zapewnianie domyślnych wartości awaryjnych 314 • Obsługiwanie wartości null 314 11.4. Tworzenie szablonów danych 315 Korzystanie z szablonu danych dla kontrolki ContentControl 316 • Obrazowanie kontrolki ItemsControl przy pomocy szablonu danych 317 11.5. Podsumowanie 318 12. Kontrolki danych: DataGrid i DataForm 319 12.1. DataGrid 320 Wyświetlanie danych 320 • Edytowanie danych siatki 326 • Sortowanie elementów 327 viii Spis treści 12.2. DataForm 328 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 12.3. Adnotacje dotyczące wyświetlania danych 339 Atrybut Display 340 • Atrybut Editable 342 12.4. Podsumowanie 343 13. Sprawdzanie poprawności danych wejściowych 344 13.1. Przykładowe źródło i interfejs użytkownika dla sprawdzania poprawności 346 13.2. Sprawdzanie poprawności właściwości oparte na wyjątkach 349 Obsługa błędów sprawdzania poprawności 350 • Niestandardowy kod sprawdzania poprawności 350 • Wyświetlanie błędów sprawdzania poprawności 352 13.3. 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 13.4. 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 13.5. Adnotacje dotyczące sprawdzania poprawności 365 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 13.6. Porównanie sposobów sprawdzania poprawności 372 13.7. Podsumowanie 373 14. Sieć i komunikacja 374 14.1. Zaufanie, bezpieczeństwo i ograniczenia przeglądarki 375 Dostęp sieciowy pomiędzy domenami 375 • Zabezpieczanie aplikacji 379 • Ograniczenia przeglądarki 380 14.2. Łączenie się ze źródłami danych 382 Spis treści ix Korzystanie z usług SOAP 382 • Usługi REST 391 14.3. Kliencki stos HTTP 396 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 14.4. Robienie użytku z danych 401 Odczytywanie danych POX 402 • Konwertowanie danych JSON 406 14.5. Korzystanie z usług zaawansowanych 408 Usprawnienia usług WCF 408 • Dupleksowe usługi WCF 409 • Łączenie się z gniazdami sieciowymi 415 • Gniazda rozgłoszeniowe 417 14.6. Łączenie się z innymi aplikacjami Silverlight 420 Tworzenie odbiorcy 421 • Tworzenie nadawcy 422 • Łączenie wszystkiego razem 422 14.7. Podsumowanie 424 15. Nawigacja i okna dialogowe 426 15.1. Zarys nawigacji w przeglądarce 427 Dzienniki przeglądarek 428 • Łącza wykorzystujące znaczniki zakładek 428 • Tam i z powrotem 430 15.2. Szablon Navigation Application 430 Tworzenie aplikacji nawigacyjnej 431 • Dodawanie nowej strony 432 • Zmienianie tematu aplikacji 435 15.3. Nawigowanie do innych stron 436 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 15.4. Nawigacja poza przeglądarką 448 Zapewnianie niestandardowych kontrolek nawigacyjnych 449 15.5. Wyświetlanie okien dialogowych i wyskakujących 454 Kontrolka Popup 454 • Wyświetlanie okna dialogowego przy pomocy kontrolki ChildWindow 455 • Prośba o wybór pliku 459 15.6. Podsumowanie 462 16. 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 x Spis treści 16.2. Podstawy wzorca Model-View-ViewModel 474 Podstawowa implementacja modelu widoku (ViewModel) 477 16.3. Wyodrębnianie kodu wielokrotnego użytku 483 Reguły i logika biznesowa 483 • Dostęp do danych i wywołania usługi 485 16.4. Lepsze oddzielenie od interfejsu użytkownika 488 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 16.5. Testowanie 502 Wprowadzenie do platformy Silverlight Unit Testing Framework 502 • Testowanie modelu widoku 506 • Testowanie działań asynchronicznych 507 16.6. Podsumowanie 509 17. Usługi WCF RIA Services 510 17.1. Architektura, narzędzia i szablon usług WCF RIA Services 512 Narzędzia RIA Services 513 • Tworzenie projektu przy pomocy szablonu 514 17.2. Udostępnianie danych w usłudze domenowej 517 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 17.3. Filtrowanie, sortowanie, grupowanie i stronicowanie 534 Filtrowanie 534 • Sortowanie 538 • Grupowanie 539 • Stronicowanie 540 17.4. Aktualizowanie danych 543 Korzystanie z interfejsu użytkownika DataForm 543 • Kontekst domenowy 545 • Klasa Entity 547 • Korzystanie z metadanych sprawdzania poprawności i wyświetlania 549 17.5. Luźne sprzężenie: korzystanie z modeli prezentacyjnych 551 Tworzenie modelu prezentacyjnego dla pracownika 552 • Obsługa operacji zapytań 554 • Obsługa operacji aktualizacyjnych 556 • Obsługa operacji wstawiania danych 557 17.6. Logika biznesowa 559 Logika biznesowa w jednostkach danych 560 • Udostępnianie kodu 560 17.7. Uwierzytelnianie i autoryzacja 561 Uwierzytelnianie 562 • Autoryzacja 565 17.8. Podsumowanie 567 Spis treści xi Część 3 Uzupełnianie interfejsu . . . . . . . . . . . . . . . . . . . . . . 569 18. Grafi ka i efekty 571 18.1. Kształty 572 Line 573 • Rectangle 573 • Ellipse 574 • Polyline 575 • Polygon 576 18.2. Geometry 577 Proste geometrie 577 • Geometrie ścieżkowe 579 • Geometrie złożone 580 18.3. Pędzle 581 SolidColorBrush 581 • LinearGradientBrush 582 • RadialGradientBrush 585 • ImageBrush 587 • VideoBrush 587 18.4. Efekty 589 Korzystanie z efektów wbudowanych 589 • Tworzenie niestandardowych procedur cieniowania pikseli 593 18.5. Podsumowanie 599 19. Drukowanie 600 19.1. Jak działa drukowanie w Silverlight 601 Klasa PrintDocument 602 • Zdarzenie PrintPage 606 • Rasteryzacja 608 19.2. Drukowanie informacji ekranowych 609 Drukowanie zawartości tak, jak na ekranie 610 • Przenoszenie elementów do innego elementu głównego 612 • Skalowanie zawartości 613 19.3. Drzewa wizualne dedykowane do drukowania wielostronicowego 616 Wymagania wstępne 617 • Drukowanie elementów z wierszami raportu 621 • Dodawanie obsługi wielu stron 627 • Dodawanie nagłówka i stopki 629 19.4. Podsumowanie 633 20. Wyświetlanie i przechwytywanie multimediów 634 20.1. Audio i wideo 635 Ź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 20.2. Listy odtwarzania 648 Zrozumienie list odtwarzania po stronie klienta 648 • Korzystanie z list odtwarzania po stronie serwera 650 20.3. Interaktywne odtwarzanie 652 Kontrolowanie stanu odtwarzania 652 • Praca z linią czasu 653 xii Spis treści 20.4. Korzystanie z zawartości zabezpieczonej 655 Korzystanie z zawartości chronionej 655 • Pobieranie składników PlayReady 656 • Odblokowywanie zawartości zabezpieczonej 656 20.5. Korzystanie z platformy Silverlight Media Framework 657 Korzystanie z bibliotek odtwarzacza 658 • Tworzenie odtwarzacza 659 20.6. Praca z surowymi multimediami 661 Niestandardowa klasa MediaStreamSource 661 • Tworzenie surowego wideo 663 • Tworzenie surowego audio 668 20.7. Korzystanie z kamery internetowej 673 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 20.8. Podsumowanie 684 21. Praca z obrazami bitmapowymi 685 21.1. Podstawowa obsługa obrazów 686 21.2. Tworzenie obrazów w trakcie działania aplikacji 687 Tworzenie obrazów na podstawie istniejących obrazów 688 • Tworzenie obrazu z elementów interfejsu użytkownika 690 • Generator fraktala Mandelbrota 692 21.3. Deep Zoom 695 Wyświetlanie obrazu 695 • Przybliżanie i oddalanie obrazu 696 • Zarządzanie oknem widoku 698 • Wdrażanie obrazów wielkoformatowych 699 21.4. Radzenie sobie z pustym miejscem 700 Wypełnianie przestrzeni 701 • Rozciąganie proporcjonalne 702 • Wypełnianie obszaru 703 • UniformToFill 704 21.5. Podsumowanie 705 22. Animacja i zachowania 706 22.1. Animacja: chodzi o czas 707 22.2. Opanowywanie linii czasu 708 Jaki jest typ animowanej właściwości? 709 • Od czego zaczynamy i do czego zmierzamy? 711 • Jak długo powinna trwać animacja? 714 22.3. Korzystanie z planów animacji 717 Zrozumienie planu animacji 717 • Trafi anie w cel 718 • Kontrola elementu Storyboard 721 • Animacje w zasobach 722 22.4. Klatki kluczowe 725 Interpolacja: chodzi o przyspieszenie 727 Spis treści xiii 22.5. Funkcje łagodzące 731 Korzystanie z funkcji łagodzących 732 • Tworzenie niestandardowej funkcji łagodzącej 734 22.6. Zachowania, wyzwalacze i działania 736 Korzystanie z istniejących zachowań 738 • Tworzenie swojego własnego zachowania 739 22.7. Podsumowanie 741 23. Zasoby, style i szablony kontrolek 742 23.1. Korzystanie z zasobów 743 Zasoby deklaratywne 743 • Dostęp do zasobów luźnych 750 • Zasoby spakowane 751 23.2. Nadawanie stylu elementom 754 Defi niowanie wyglądu 755 • Defi nicje stylów z jawnymi kluczami 757 • Defi nicje stylów niejawnych 758 23.3. Tworzenie szablonów 760 Budowanie szablonu kontrolki 760 • Tworzenie szablonów wielokrotnego użytku 765 23.4. Obsługa stanów wizualnych 766 Zrozumienie składników 766 • Korzystanie z możliwości VisualStateManager 768 23.5. Udostępnianie naszych stanów wizualnych 772 23.6. Podsumowanie 773 24. Panele i kontrolki 774 24.1. Tworzenie niestandardowego panelu 775 Przygotowanie projektu 776 • Klasa OrbitPanel 776 • Właściwości 777 • Układ niestandardowy 780 • Usprawnienia 785 24.2. Tworzenie niestandardowej kontrolki 786 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 24.3. Podsumowanie 795 25. Interfejs instalacji i ładowania 796 25.1. Obsługa scenariuszy, gdy Silverlight nie jest zainstalowany 797 Tworzenie swojego własnego interfejsu instalacji 798 25.2. Korzystanie z niestandardowego modułu ładującego 800 Tworzenie wyglądu 801 • Integracja niestandardowego ekranu tytułowego 803 • Monitorowanie postępu ładowania 804 25.3. Podsumowanie 805 xiv Spis treści A. Konfi guracja bazy danych, połączenia i modelu danych 807 A.1. Instalacja bazy danych AdventureWorks 807 Instalowanie na dedykowanym wystąpieniu SQL Server 808 • Instalowanie w SQL Server Express 808 A.2. Połączenie bazodanowe i jednostki danych 809 Wybór jednostek do utworzenia 812 Indeks 850 |
|