O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Programowanie usług WCF

Book Description

Jeżeli podjąłeś decyzję, że Twoja kolejna aplikacja będzie wspierała WCF, to wybierając tę książkę, nie mogłeś trafić lepiej. „Programowanie usług WCF” to doskonały, cieszący się ogromną popularnością przewodnik, poświęcony spójnej, jednolitej platformie firmy Microsoft, którą zaprojektowano z myślą o programowaniu aplikacji w oparciu o usługi dla systemu Windows. Jej autor Juval Löwy jest wybitnym specjalistą w dziedzinie platformy .NET i technologii WCF. W trakcie lektury poznasz architekturę technologii WCF, jej elementy składowe oraz zagadnienia związane z jej niezawodnością.

Table of Contents

  1. Programowanie usług WCF
  2. Dedykacja
  3. Przedmowa
  4. Słowo wstępne
    1. Jak zorganizowano tę książkę
    2. Założenia dotyczące czytelników
    3. Co jest potrzebne do lektury tej książki
    4. Konwencje stosowane w książce
    5. Stosowanie przykładów kodu
    6. Podziękowania
  5. 1. Podstawy WCF
    1. Czym jest WCF?
    2. Usługi
      1. Granice wykonywania usługi
      2. WCF i widoczność lokalizacji
    3. Adresy
      1. Adresy TCP
      2. Adresy HTTP
      3. Adresy IPC
      4. Adresy MSMQ
      5. Adresy magistrali usług
    4. Kontrakty
      1. Kontrakt usługi
        1. Atrybut ServiceContract
        2. Nazwy i przestrzenie nazw
    5. Hosting
      1. Hosting na IIS 5/6
        1. Visual Studio 2010
        2. Plik Web.Config
      2. Hosting własny
        1. Visual Studio 2010
        2. Hosting własny i adresy bazowe
        3. Zaawansowane funkcjonalności hostingu
        4. Klasa ServiceHost<T>
      3. Hosting WAS
      4. Niestandardowy hosting na IIS/WAS
      5. Pakiet usług AppFabric dla systemu Windows Server
      6. Wybór hosta
    6. Wiązania
      1. Podstawowe wiązania
        1. Format i kodowanie
      2. Wybór wiązania
      3. Dodatkowe rodzaje wiązań
      4. Używanie wiązania
    7. Punkty końcowe
      1. Konfiguracja punktów końcowych — plik konfiguracyjny
        1. Adres bazowy
        2. Konfiguracja wiązania
        3. Wiązanie domyślne
      2. Konfiguracja punktów końcowych z poziomu programu
        1. Konfiguracja wiązania
      3. Domyślne punkty końcowe
        1. Mapowanie protokołów
    8. Wymiana metadanych
      1. Udostępnianie metadanych przez HTTP-GET
        1. Włączanie wymiany metadanych w pliku konfiguracyjnym
        2. Włączanie wymiany metadanych z poziomu programu
      2. Punkt wymiany metadanych
        1. Standardowe punkty końcowe
        2. Dodawanie punktów wymiany metadanych z poziomu programu
        3. Poprawa efektywności klasy ServiceHost<T>
      3. Narzędzie Metadata Explorer
    9. Więcej o konfiguracji zachowań
    10. Programowanie po stronie klienta
      1. Generowanie obiektu pośrednika
        1. Generowanie obiektu pośrednika za pomocą narzędzia SvcUtil
      2. Konfiguracja klienta z poziomu pliku konfiguracyjnego
        1. Konfiguracja wiązania
        2. Generowanie pliku konfiguracyjnego klienta
        3. Konfiguracja in-proc
        4. Narzędzie SvcConfigEditor
        5. Korzystanie z obiektu pośrednika
        6. Zamykanie obiektu pośrednika
        7. Limit czasu wywołania
      3. Konfiguracja klienta z poziomu programu
      4. Klient testowy dostarczany przez WCF
    11. Konfiguracja z poziomu programu a plik konfiguracyjny
    12. Architektura WCF
      1. Architektura hosta
    13. Kanały
      1. Klasa InProcFactory
        1. Implementacja klasy InProcFactory<T>
        2. Klasa WcfWrapper
    14. Sesje warstwy transportowej
      1. Sesja transportowa i wiązania
      2. Przerwanie sesji transportowej
    15. Niezawodność
      1. Wiązania, niezawodność i kolejność wiadomości
      2. Konfiguracja niezawodności
      3. Zachowanie kolejności dostarczania wiadomości
  6. 2. Kontrakty usług
    1. Przeciążanie metod
    2. Dziedziczenie kontraktów
      1. Hierarchia kontraktów po stronie klienta
        1. Odtwarzanie hierarchii po stronie klienta
    3. Projektowanie oraz faktoryzacja kontraktów usług
      1. Faktoryzacja kontraktów
      2. Metryki faktoryzacji
    4. Kwerendy (przeszukiwanie metadanych)
      1. Programowe przetwarzanie metadanych
        1. Klasa MetadataResolver
      2. Klasa MetadataHelper
  7. 3. Kontrakty danych
    1. Serializacja
      1. Serializacja w .NET
        1. Atrybut Serializable
        2. Atrybut NonSerialized
        3. Formatery .NET
      2. Formatery WCF
      3. Serializacja kontraktów danych
    2. Atrybuty kontraktów danych
      1. Importowanie kontraktu danych
      2. Kontrakty danych i atrybut Serializable
      3. Dedukowane kontrakty danych
      4. Złożone kontrakty danych
      5. Zdarzenia związane z kontraktami danych
        1. Zdarzenie deserializing
        2. Zdarzenie deserialized
      6. Dzielone kontrakty danych
    3. Hierarchia kontraktów danych
      1. Atrybut KnownType
      2. Atrybut ServiceKnownType
      3. Wielokrotne zastosowanie atrybutu KnownType
      4. Konfiguracja akceptowanych klas pochodnych w pliku konfiguracyjnym
      5. Analizatory kontraktów danych
        1. Instalacja analizatora kontraktów danych
        2. Generyczny analizator
        3. Instalacja generycznego analizatora
        4. Klasy GenericResolver i ServiceHost<T>
        5. Atrybut GenericResolver
      6. Obiekty i interfejsy
    4. Równoważność kontraktów danych
      1. Porządek serializacji
    5. Wersjonowanie
      1. Nowe składowe
      2. Brakujące składowe
        1. Zdarzenie OnDeserializing
        2. Wymagane składowe
      3. Wersjonowanie dwukierunkowe
        1. Zgodność schematów
    6. Typy wyliczeniowe
    7. Delegaty i kontrakty danych
    8. Typy generyczne
    9. Kolekcje
      1. Konkretne kolekcje
      2. Kolekcje niestandardowe
      3. Atrybut CollectionDataContract
      4. Referencje do kolekcji
      5. Słowniki
  8. 4. Zarządzanie instancjami
    1. Zachowania
    2. Usługi aktywowane przez wywołania
      1. Zalety usług aktywowanych przez wywołania
      2. Konfiguracja usług aktywowanych przez wywołania
      3. Usługi aktywowane przez wywołania i sesje transportowe
      4. Projektowanie usług aktywowanych przez wywołania
        1. Wydajność usług aktywowanych przez wywołania
        2. Operacje czyszczenia środowiska
      5. Wybór usług aktywowanych przez wywołania
    3. Usługi sesyjne
      1. Konfiguracja sesji prywatnych
        1. Wartość SessionMode.Allowed
        2. Wartość SessionMode.Required
        3. Wartość SessionMode.NotAllowed
        4. Powiązania, kontrakty i zachowanie usługi
        5. Spójna konfiguracja
      2. Sesje i niezawodność
      3. Identyfikator sesji
      4. Kończenie sesji
    4. Usługa singletonowa
      1. Inicjalizacja usługi singletonowej
        1. Usprawnienie przy użyciu klasy ServiceHost<T>
      2. Wybór singletonu
    5. Operacje demarkacyjne
    6. Dezaktywacja instancji
      1. Konfiguracja z wartością ReleaseInstanceMode.None
      2. Konfiguracja z wartością ReleaseInstanceMode.BeforeCall
      3. Konfiguracja z wartością ReleaseInstanceMode.AfterCall
      4. Konfiguracja z wartością ReleaseInstanceMode.BeforeAndAfterCall
      5. Bezpośrednia dezaktywacja
      6. Stosowanie dezaktywacji instancji
    7. Usługi trwałe
      1. Usługi trwałe i tryby zarządzania instancjami
        1. Tworzenie i niszczenie instancji usługi
      2. Identyfikatory instancji i pamięć trwała
      3. Bezpośrednie przekazywanie identyfikatorów instancji
      4. Identyfikatory instancji w nagłówkach
      5. Powiązania kontekstu dla identyfikatorów instancji
        1. Stosowanie standardowego identyfikatora dla powiązania kontekstu
      6. Automatyczne zachowanie trwałe
        1. Atrybut zachowania usługi trwałej
        2. Atrybut zachowania operacji trwałej
        3. Programowe zarządzanie instancją
        4. Dostawcy trwałości
        5. Niestandardowi dostawcy trwałości
        6. Dostawca trwałości na bazie systemu SQL Server
    8. Dławienie
      1. Konfiguracja dławienia
        1. Administracyjne konfigurowanie dławienia
        2. Programowe konfigurowanie dławienia
        3. Usprawnienie przy użyciu klasy ServiceHost<T>
        4. Odczytywanie wartości parametrów dławienia
  9. 5. Operacje
    1. Operacje żądanie-odpowiedź
    2. Operacje jednokierunkowe
      1. Konfiguracja operacji jednokierunkowych
      2. Operacje jednokierunkowe i niezawodność
      3. Operacje jednokierunkowe i usługi sesyjne
      4. Operacje jednokierunkowe i wyjątki
    3. Operacje zwrotne
      1. Kontrakt wywołań zwrotnych
      2. Przygotowanie obsługi wywołań zwrotnych po stronie klienta
        1. Dupleksowe obiekty pośredników
      3. Stosowanie wywołań zwrotnych po stronie usługi
        1. Wielobieżność wywołań zwrotnych
      4. Zarządzanie połączeniami dla wywołań zwrotnych
        1. Zarządzanie połączeniami i tryb aktywowania instancji
      5. Pośrednik dupleksowy i bezpieczeństwo typów
      6. Fabryka kanałów dupleksowych
      7. Hierarchia kontraktów wywołań zwrotnych
    4. Zdarzenia
    5. Strumieniowe przesyłanie danych
      1. Strumienie wejścia-wyjścia
      2. Strumieniowe przesyłanie komunikatów i powiązania
      3. Przesyłanie strumieniowe i transport
  10. 6. Błędy
    1. Izolacja błędów i eliminowanie związków
      1. Maskowanie błędów
      2. Oznaczanie wadliwego kanału
        1. Zamykanie pośrednika i wyrażenie using
        2. Wyjątki i zarządzanie instancjami
    2. Propagowanie błędów
      1. Kontrakty błędów
        1. Obsługa błędów
        2. Błędy i kanały
      2. Diagnozowanie błędów
        1. Deklaratywne dołączanie wyjątków
        2. Diagnozowanie wyjątków i host
        3. Wyodrębnianie wyjątku
      3. Błędy i wywołania zwrotne
        1. Diagnozowanie wywołań zwrotnych
    3. Rozszerzenia obsługujące błędy
      1. Udostępnianie błędu
        1. Stosowanie metody ProvideFault()
        2. Promocja wyjątków
      2. Obsługa błędu
        1. Usługa dziennika
      3. Instalacja rozszerzeń obsługujących błędy
        1. Atrybut ErrorHandlerBehavior
      4. Host i rozszerzenia obsługujące błędy
      5. Wywołania zwrotne i rozszerzenia obsługujące błędy
        1. Atrybut CallbackErrorHandlerBehavior
  11. 7. Transakcje
    1. Problem z przywracaniem działania aplikacji
    2. Transakcje
      1. Zasoby transakcyjne
      2. Właściwości transakcji
        1. Atomowość
        2. Spójność
        3. Izolacja
        4. Trwałość
      3. Zarządzanie transakcjami
        1. Problemy w zarządzaniu transakcjami
        2. Transakcje rozproszone
        3. Protokół dwufazowego zatwierdzania transakcji
      4. Menedżery zasobów
    3. Propagacja transakcji
      1. Przepływ transakcji a wiązania
      2. Przepływ transakcji a kontrakt operacji
        1. TransactionFlowOption.NotAllowed
        2. TransactionFlowOption.Allowed
        3. TransactionFlowOption.Mandatory
      3. Wywołania jednokierunkowe
    4. Menedżery i protokoły transakcji
      1. Protokoły i wiązania
      2. Menedżery transakcji
        1. LTM
        2. KTM
        3. DTC
      3. Awansowanie menedżerów transakcji
        1. Awansowanie LTM
        2. Awansowanie KTM
        3. Zasoby a awansowanie
    5. Klasa Transaction
      1. Transakcje otoczenia
      2. Transakcje lokalne a transakcje rozproszone
        1. Identyfikator transakcji lokalnej
        2. Identyfikator transakcji rozproszonej
    6. Programowanie usług transakcyjnych
      1. Przygotowywanie otoczenia transakcji
      2. Tryby propagacji transakcji
        1. Tryb transakcji Klient/Usługa
        2. Żądanie przepływu transakcji
        3. Tryb transakcji Klient
        4. Tryb transakcji Usługa
        5. Tryb transakcji Brak
        6. Wybór trybu transakcyjnego usługi
      3. Głosowanie a zakończenie transakcji
        1. Głosowanie deklaratywne
        2. Głosowanie jawne
        3. Przerywanie transakcji
      4. Izolacja transakcji
        1. Izolacja a przepływ transakcji
      5. Limit czasu transakcji
        1. Limit czasu a przepływ transakcji
    7. Jawne programowanie transakcji
      1. Klasa TransactionScope
        1. Głosowanie a klasa TransactionScope
      2. Zarządzanie przepływem transakcji
        1. Głosowanie wewnątrz zasięgu zagnieżdżonego
        2. TransactionScopeOption.Required
        3. TransactionScopeOption.RequiresNew
        4. TransactionScopeOption.Suppress
        5. Klasa TransactionScope a limit czasu
        6. Klasa TransactionScope a poziom izolacji
      3. Klienci nieusługowi
    8. Zarządzanie stanem usługi
      1. Granice transakcji
    9. Zarządzanie instancjami a transakcje
      1. Usługi transakcyjne typu per-call
        1. Cykl życia transakcji
      2. Usługi transakcyjne typu per-session
        1. Zwalnianie instancji usługi
        2. Wyłączanie mechanizmu zwalniania instancji usługi
        3. Usługi świadome stanu typu per-session
        4. Sesyjne usługi typu per-session
        5. Cykl życia transakcji
        6. Transakcje współbieżne
        7. Kończenie transakcji na zakończenie sesji
        8. Związki transakcyjne
        9. Hybrydowe zarządzanie stanem
      3. Transakcyjne usługi trwałe
        1. Zarządzanie identyfikatorami instancji
      4. Zachowania transakcyjne
        1. Transakcje wewnątrzprocesowe
      5. Transakcyjna usługa singletonu
        1. Transakcyjny singleton stanowy
      6. Transakcje a tryby instancji
    10. Wywołania zwrotne
      1. Tryby transakcji w wywołaniach zwrotnych
        1. Izolacja i limity czasu
      2. Głosowanie w wywołaniach zwrotnych
      3. Stosowanie transakcyjnych wywołań zwrotnych
        1. Pozapasmowe transakcyjne wywołania zwrotne
        2. Wywołania zwrotne transakcyjnych usług
  12. 8. Zarządzanie współbieżnością
    1. Zarządzanie instancjami a współbieżność
    2. Tryby współbieżności usług
      1. ConcurrencyMode.Single
        1. Dostęp synchroniczny a transakcje
      2. ConcurrencyMode.Multiple
        1. Dostęp niesynchroniczny a transakcje
      3. ConcurrencyMode.Reentrant
        1. Zastosowanie wielobieżności
        2. Transakcje a wielobieżność metod
        3. Wywołania zwrotne a metody wielobieżne
    3. Instancje a dostęp współbieżny
      1. Usługi typu per-call
      2. Usługi sesyjne i usługi typu singleton
    4. Zasoby i usługi
      1. Dostęp a zakleszczenia
      2. Unikanie zakleszczeń
    5. Kontekst synchronizacji zasobów
      1. Konteksty synchronizacji .NET
        1. Klasa SynchronizationContext
        2. Praca z kontekstem synchronizacji
      2. Kontekst synchronizacji interfejsu użytkownika
        1. Dostęp i aktualizacja interfejsu użytkownika
        2. Bezpieczne kontrolki
    6. Kontekst synchronizacji usług
      1. Hostowanie w wątku interfejsu użytkownika
        1. Dostęp do formularza
        2. Obsługa wielu wątków interfejsu użytkownika
      2. Formularz jako usługa
        1. Klasa FormHost<F>
      3. Wątek interfejsu użytkownika a zarządzanie współbieżnością
        1. Responsywność interfejsu użytkownika
        2. Wątek interfejsu użytkownika a tryby współbieżności
    7. Własne konteksty synchronizacji usług
      1. Synchronizator puli wątków
        1. Deklaratywne załączanie własnego kontekstu synchronizacji
      2. Powinowactwo wątków
        1. Kontekst synchronizacji instalowany na hoście
      3. Przetwarzanie priorytetowe
    8. Wywołania zwrotne a bezpieczeństwo klientów
      1. Wywołania zwrotne w trybie ConcurrencyMode.Single
      2. Wywołania zwrotne w trybie ConcurrencyMode.Multiple
      3. Wywołania zwrotne w trybie ConcurrencyMode.Reentrant
    9. Wywołania zwrotne i konteksty synchronizacji
      1. Wywołania zwrotne a kontekst synchronizacji interfejsu użytkownika
        1. Wywołania zwrotne w wątku interfejsu użytkownika a responsywność
        2. Wywołania zwrotne w wątku interfejsu użytkownika a zarządzanie współbieżnością
      2. Własne konteksty synchronizacji a wywołania zwrotne
        1. Powinowactwo wątków a wywołania zwrotne
    10. Wywołania asynchroniczne
      1. Wymagania mechanizmów asynchronicznych
      2. Wywołania asynchroniczne przy użyciu pośrednika (proxy)
      3. Wywołania asynchroniczne
        1. Interfejs IAsyncResult
        2. Wywołania asynchroniczne a sesje transportowe
      4. Zapytania a oczekiwanie na zakończenie
      5. Wywołania zwrotne dopełniające
        1. Wywołania zwrotne dopełniające a bezpieczeństwo wątków
        2. Przekazywanie informacji o stanie
        3. Kontekst synchronizacji wywołania zwrotnego dopełniającego
      6. Asynchroniczne operacje jednokierunkowe
      7. Asynchroniczna obsługa błędów
        1. Wywołania synchroniczne a limity czasu
        2. Czyszczenie po wywołaniu metody End<Operation>()
      8. Wywołania asynchroniczne a transakcje
      9. Wywołania synchroniczne kontra asynchroniczne
  13. 9. Usługi kolejkowane
    1. Usługi i klienty odłączone
    2. Wywołania kolejkowane
      1. Architektura wywołań kolejkowanych
      2. Kontrakty kolejkowane
      3. Konfiguracja i ustawienia
        1. Instalacja dla grupy roboczej a bezpieczeństwo
        2. Tworzenie kolejki
        3. Czyszczenie kolejki
        4. Kolejki, usługi i końcówki
        5. Udostępnianie metadanych
        6. Hostowanie WAS
    3. Transakcje
      1. Dostarczanie i odtwarzanie
        1. Transakcja dostarczana
        2. Transakcja odtwarzana
      2. Transakcyjne ustawienia usługi
        1. Uczestnictwo w transakcji odtwarzanej
        2. Ignorowanie transakcji odtwarzanej
        3. Transakcje oddzielone
      3. Kolejki nietransakcyjne
    4. Zarządzanie instancjami
      1. Usługi kolejkowane typu per-call
        1. Klienty nietransakcyjne
        2. Klienty transakcyjne
        3. Przetwarzanie typu per-call
      2. Kolejkowane usługi sesyjne
        1. Klienty a transakcje
        2. Usługi i transakcje
      3. Usługa singleton
        1. Wywołania a kolejność
    5. Zarządzanie współbieżnością
      1. Kontrola przepustowości
    6. Błędy dostarczania
      1. Kolejka utraconych komunikatów
      2. Czas życia
      3. Konfiguracja kolejki odrzuconych komunikatów
        1. Sprawdzanie własnej kolejki DLQ
      4. Przetwarzanie kolejki odrzuconych komunikatów
        1. Tworzenie usługi DLQ
        2. Właściwości błędów
        3. Implementacja usługi DLQ
    7. Błędy odtwarzania
      1. Komunikaty trujące
      2. Obsługa komunikatów trujących w MSMQ 4.0
        1. Ponawianie seryjne
        2. ReceiveErrorHandling.Fault
        3. ReceiveErrorHandling.Drop
        4. ReceiveErrorHandling.Reject
        5. ReceiveErrorHandling.Move
        6. Przykładowa konfiguracja
        7. Usługa trujących komunikatów
      3. Obsługa komunikatów trujących w MSMQ 3.0
    8. Wywołania kolejkowane kontra połączone
      1. Wymaganie kolejkowania
    9. Usługa odpowiedzi
      1. Tworzenie kontraktu usługi odpowiedzi
        1. Adres odpowiedzi i ID metody
        2. Klasa ResponseContext
      2. Programowanie po stronie klienta
        1. Zastosowanie klasy ClientResponseBase<T>
      3. Programowanie kolejkowane po stronie usługi
      4. Programowanie odpowiedzi po stronie usługi
      5. Transakcje
        1. Wykorzystywanie nowej transakcji
        2. Usługa odpowiedzi a transakcje
    10. Mostek HTTP
      1. Projektowanie mostka
      2. Konfiguracja transakcji
      3. Konfiguracja po stronie usługi
      4. Konfiguracja po stronie klienta
  14. 10. Bezpieczeństwo
    1. Uwierzytelnianie
    2. Autoryzacja
    3. Bezpieczeństwo transferu danych
      1. Tryby bezpieczeństwa transferu danych
        1. Tryb bezpieczeństwa Brak
        2. Tryb bezpieczeństwa Transport
        3. Tryb bezpieczeństwa Komunikat
        4. Tryb bezpieczeństwa Mieszany
        5. Tryb bezpieczeństwa Podwójny
      2. Konfiguracja trybu bezpieczeństwa transferu danych
        1. Charakterystyczne konfiguracje wiązań
      3. Tryb Transport a poświadczenia
      4. Tryb Komunikat a poświadczenia
    4. Zarządzanie tożsamością
    5. Polityka ogólna
    6. Analiza przypadków użycia
    7. Aplikacja intranetowa
      1. Zabezpieczanie wiązań intranetowych
        1. Poziom ochrony w trybie bezpieczeństwa Transport
        2. Konfiguracja wiązania NetTcpBinding
        3. Konfiguracja wiązania NetNamedPipeBinding
        4. Konfiguracja wiązania NetMsmqBinding
      2. Ograniczanie ochrony komunikatów
      3. Uwierzytelnianie
        1. Dostarczanie alternatywnych poświadczeń systemu Windows
      4. Tożsamości
        1. Interfejs IIdentity
        2. Zastosowanie klasy WindowsIdentity
      5. Kontekst bezpieczeństwa wywołań
      6. Personifikacja
        1. Ręczna personifikacja
        2. Personifikacja deklaratywna
        3. Personifikacja wszystkich operacji
        4. Ograniczanie personifikacji
        5. Unikanie personifikacji
      7. Autoryzacja
        1. Osobowość
        2. Wybór trybu autoryzacji
        3. Deklaratywne bezpieczeństwo oparte na rolach
        4. Bezpieczeństwo oparte na rolach na poziomie kodu
      8. Zarządzanie tożsamością
      9. Wywołania zwrotne
    8. Aplikacja internetowa
      1. Zabezpieczanie wiązań internetowych
        1. Konfiguracja wiązania WSHttpBinding
      2. Ochrona komunikatów
        1. Konfiguracja certyfikatu hosta
        2. Stosowanie certyfikatu hosta
        3. Walidacja certyfikatu usługi
        4. Wykorzystywanie certyfikatów testowych
      3. Uwierzytelnianie
      4. Stosowanie poświadczeń systemu Windows
        1. Autoryzacja
        2. Zarządzanie tożsamością
      5. Stosowanie dostawców ASP.NET
        1. Dostawcy poświadczeń
        2. Administracja poświadczeniami
        3. Niedostatki środowiska Visual Studio 2010
        4. Menedżer poświadczeń
        5. Uwierzytelnianie
        6. Autoryzacja
        7. Deklaratywne bezpieczeństwo oparte na rolach
      6. Zarządzanie tożsamością
        1. Personifikacja
    9. Aplikacja biznesowa
      1. Zabezpieczanie wiązań w scenariuszu B2B
      2. Uwierzytelnianie
      3. Autoryzacja
      4. Zarządzanie tożsamością
        1. Personifikacja
      5. Konfiguracja bezpieczeństwa hosta
    10. Aplikacja o dostępie anonimowym
      1. Zabezpieczanie anonimowych wiązań
      2. Uwierzytelnianie
      3. Autoryzacja
      4. Zarządzanie tożsamością
        1. Personifikacja
      5. Wywołania zwrotne
    11. Aplikacja bez zabezpieczeń
      1. Odbezpieczanie wiązań
      2. Uwierzytelnianie
      3. Autoryzacja
      4. Zarządzanie tożsamością
        1. Personifikacja
      5. Wywołania zwrotne
    12. Podsumowanie scenariuszy
    13. Deklaratywny framework bezpieczeństwa
      1. Atrybut SecurityBehavior
        1. Konfiguracja usługi intranetowej
        2. Konfiguracja usługi internetowej
        3. Konfiguracja usługi biznesowej
        4. Konfiguracja usługi anonimowej
        5. Konfiguracja usługi bez zabezpieczeń
        6. Implementacja atrybutu SecurityBehavior
      2. Deklaratywne bezpieczeństwo po stronie hosta
      3. Deklaratywne bezpieczeństwo po stronie klienta
        1. Implementacja klasy SecurityHelper
        2. Klasa SecureClientBase<T>
        3. Bezpieczna fabryka kanałów
        4. Klienci dwustronni a bezpieczeństwo deklaratywne
        5. Rozszerzenia fabryki dwustronnej
    14. Audyt bezpieczeństwa
      1. Konfigurowanie audytów bezpieczeństwa
      2. Deklaratywne bezpieczeństwo audytów
  15. 11. Magistrala usług
    1. Czym jest usługa przekazywania?
      1. Magistrala Windows Azure AppFabric Service Bus
    2. Programowanie magistrali usług
      1. Adres usługi przekazywania
        1. Wyodrębnianie przestrzeni nazw usługi
      2. Rejestr magistrali usług
      3. Eksplorator magistrali usług
    3. Powiązania magistrali usług
      1. Powiązanie przekazywania TCP
        1. Dodawanie domyślnych punktów końcowych
        2. Tryby połączeń
        3. Tryb przekazywania TCP
        4. Tryb hybrydowy TCP
        5. Dupleksowe wywołania zwrotne
      2. Powiązanie przekazywania WS 2007
      3. Jednokierunkowe powiązanie przekazywania
        1. Semantyka odpal i zapomnij
      4. Powiązanie przekazywania zdarzeń
        1. Publikowanie zdarzeń
    4. Chmura jako strona przechwytująca wywołania
    5. Bufory magistrali usług
      1. Bufory kontra kolejki
      2. Praca z buforami
        1. Strategia działania bufora
        2. Administrowanie buforem
        3. Usprawnianie administracji
      3. Wysyłanie i otrzymywanie komunikatów
      4. Usługi buforowane
        1. Host usługi buforowanej
        2. Klasa bazowa buforowanych klientów
      5. Usługa odpowiedzi
        1. Strona klienta
        2. Strona usługi
        3. Usługa odpowiedzi
    6. Uwierzytelnianie w magistrali usług
      1. Konfiguracja uwierzytelniania
      2. Uwierzytelnianie z tajnym kluczem współdzielonym
        1. Przekazywanie danych uwierzytelniających po stronie hosta
        2. Przekazywanie danych uwierzytelniających po stronie klienta
        3. Definiowanie danych uwierzytelniających w pliku konfiguracyjnym
      3. Brak uwierzytelniania
      4. Magistrala usług jako źródło metadanych
        1. Przetwarzanie metadanych po stronie klienta
    7. Bezpieczeństwo transferu
      1. Bezpieczeństwo na poziomie transportu
      2. Bezpieczeństwo na poziomie komunikatów
        1. Bezpieczeństwo na poziomie komunikatów i dane uwierzytelniające
      3. Powiązanie przekazywania TCP i bezpieczeństwo transferu
        1. Bezpieczeństwo anonimowych komunikatów
        2. Bezpieczeństwo na poziomie komunikatów z danymi uwierzytelniającymi
        3. Mieszany tryb zabezpieczeń
      4. Powiązanie przekazywania WS i bezpieczeństwo transferu
        1. Bezpieczeństwo na poziomie komunikatów i bezpieczeństwo mieszane
      5. Jednokierunkowe powiązanie przekazywania i bezpieczeństwo transferu
        1. Wywołania anonimowe
      6. Powiązania i tryby transferu
      7. Usprawnianie zabezpieczeń transferu
        1. Deklaratywne konfigurowanie zabezpieczeń usługi
        2. Usprawnianie konfiguracji klienta
  16. A. Wprowadzenie modelu usług
    1. Krótka historia inżynierii oprogramowania
      1. Model obiektowy
      2. Model komponentowy
        1. Gotowe mechanizmy wewnętrzne
    2. Model usług
      1. Zalety modelu usług
      2. Aplikacje na bazie usług
    3. Dogmaty i zasady
      1. Praktyczne zalecenia
      2. Opcjonalne zalecenia
    4. Co dalej?
      1. Platforma usług
        1. Każda klasa w roli usługi
  17. B. Nagłówki i konteksty
    1. Nagłówki komunikatów
      1. Stosowanie nagłówków po stronie klienta
      2. Stosowanie nagłówków po stronie usługi
      3. Hermetyzacja nagłówków
        1. Klasa pomocnicza GenericContext<T>
      4. Upraszczanie kodu klienta
        1. Klasa pośrednika HeaderClientBase<T,H>
    2. Powiązania kontekstu
      1. Interakcja z powiązaniem kontekstu po stronie klienta
      2. Interakcja z powiązaniem kontekstu po stronie usługi
      3. Upraszczanie kodu klienta
      4. Upraszczanie kodu usługi
      5. Tworzenie niestandardowego powiązania kontekstu
        1. Implementacja klasy NetNamedPipeContextBinding
  18. C. Odkrywanie
    1. Odkrywanie adresu
      1. Konfiguracja usługi
        1. Dynamiczne adresy punktów końcowych
        2. Włączanie odkrywania
      2. Kroki po stronie klienta
      3. Zasięgi
        1. Przypisywanie zasięgów
        2. Stosowanie zasięgów
      4. Upraszczanie procesu odkrywania
        1. Liczność odkrywania
        2. Jeden punkt końcowy
        3. Odkrywanie powiązań
        4. Fabryka odkrywania
        5. Tworzenie hosta dostępnego do odkrywania
        6. Narzędzie Metadata Explorer
      5. Odkrywanie ciągłe
    2. Ogłoszenia
      1. Punkty końcowe ogłaszania
        1. Ogłoszenia automatyczne
      2. Otrzymywanie ogłoszeń
      3. Upraszczanie ogłoszeń
        1. Kompletna implementacja ogłoszeń
    3. Odkrywanie magistrali usług
      1. Architektura rozwiązania
      2. Host dostępny do odkrywania
      3. Klient mechanizmu odkrywania
        1. Dodatkowe klasy pomocnicze strony klienckiej
      4. Ogłoszenia
        1. Ogłoszenia po stronie usługi
        2. Otrzymywanie ogłoszeń
      5. Narzędzie Metadata Explorer
  19. D. Usługa publikacji-subskrypcji
    1. Wzorzec projektowy publikacji-subskrypcji
      1. Rodzaje subskrybentów
    2. Framework publikacji-subskrypcji
      1. Zarządzanie subskrypcjami ulotnymi
      2. Zarządzanie subskrybentami trwałymi
      3. Publikowanie zdarzeń
      4. Administrowanie subskrybentami trwałymi
        1. Subskrybent singletonowy
      5. Kolejkowanie wydawców i subskrybentów
        1. Kolejkowany wydawca
        2. Kolejkowany subskrybent
    3. Wzorzec publikacji-subskrypcji i magistrala usług
      1. Powiązanie przekazywania zdarzeń
        1. Klasa ServiceBusEventsHost
        2. Klasa ServiceBusEventsClientBase
    4. Wzorzec publikacji-subskrypcji z odkrywaniem
      1. Klasa DiscoveryPublishService<T>
      2. Wydawca
      3. Subskrybent
      4. Pozostałe elementy klasy DiscoveryPublishService<T>
  20. E. Uniwersalny mechanizm przechwytywania
    1. Przechwytywanie operacji usługi
      1. Uniwersalny mechanizm wywołań
      2. Instalacja mechanizmu przechwytywania
    2. Przechwytywanie wywołań klienta
    3. Mechanizmy przechwytywania na potrzeby śledzenia
    4. Propagowanie tożsamości na stosie
      1. Mechanizm przechwytywania stosu wywołań zabezpieczeń
  21. F. Standard kodowania usług WCF
    1. Ogólne wskazówki projektowe
    2. Najważniejsze wskazówki
    3. Kontrakty usług
    4. Kontrakty danych
    5. Zarządzanie instancjami
    6. Operacje i wywołania
    7. Błędy
    8. Transakcje
    9. Zarządzanie współbieżnością
    10. Usługi kolejkowane
    11. Bezpieczeństwo
    12. Magistrala usług
  22. G. Katalog elementów biblioteki ServiceModelEx
    1. CollectionExtensions
      1. Kategoria
      2. Opis
      3. Patrz także
    2. ArrayExtensions
      1. Kategoria
      2. Opis
      3. Patrz także
    3. InProcFactory<S,I>
      1. Kategoria
      2. Opis
      3. Patrz także
    4. WcfWrapper<S,I>
      1. Kategoria
      2. Opis
      3. Patrz także
    5. ServiceHost<T>
      1. Kategoria
      2. Opis
      3. Patrz także
    6. MetadataHelper
      1. Kategoria
      2. Opis
      3. Patrz także
    7. DataContractSerializer<T>
      1. Kategoria
      2. Opis
    8. GenericResolver, GenericResolverBehaviorAttribute, GenericResolverInstaller
      1. Kategoria
      2. Opis
      3. Patrz także
    9. ServiceThrottleHelper
      1. Kategoria
      2. Opis
    10. IInstanceStore<ID,T>
      1. Kategoria
      2. Opis
      3. Patrz także
    11. FileInstanceStore<ID,T>, FilePersistenceProvider, FilePersistenceProviderFactory
      1. Kategoria
      2. Opis
      3. Patrz także
    12. MemoryProvider, MemoryProviderFactory
      1. Kategoria
      2. Opis
      3. Patrz także
    13. TransactionalMemoryStore<ID,T>, TransactionalMemoryProvider, TransactionalMemoryProviderFactory
      1. Kategoria
      2. Opis
      3. Patrz także
    14. TransactionalInstanceStore<ID,T>, TransactionalInstanceProvider, TransactionalInstanceProviderFactory
      1. Kategoria
      2. Opis
      3. Patrz także
    15. InstanceContext<T>, DuplexClientBase<T,C>, DuplexChannelFactory<T,C>
      1. Kategoria
      2. Opis
      3. Patrz także
    16. DebugHelper
      1. Kategoria
      2. Opis
    17. ErrorHandlerHelper
      1. Kategoria
      2. Opis
      3. Patrz także
    18. ErrorHandlerBehaviorAttribute, CallbackErrorHandlerBehaviorAttribute
      1. Kategoria
      2. Opis
      3. Patrz także
    19. ILogbookManager, LogbookManagerClient, LogbookManager
      1. Kategoria
      2. Opis
      3. Patrz także
    20. BindingRequirementAttribute
      1. Kategoria
      2. Opis
    21. ResourceManager, TransactionalLock
      1. Kategoria
      2. Opis
      3. Patrz także
    22. Transactional<T>
      1. Kategoria
      2. Opis
      3. Patrz także
    23. TransactionalCollection<C,T>
      1. Kategoria
      2. Opis
      3. Patrz także
    24. TransactionalArray<T>, TransactionalDictionary<K,T>, TransactionalLinkedList<T>, TransactionalList<T>, TransactionalQueue<T>, TransactionalSortedDictionary<K,T>, TransactionalSortedList<K,T>, TransactionalStack<T>
      1. Kategoria
      2. Opis
      3. Patrz także
    25. TransactionalBehaviorAttribute
      1. Kategoria
      2. Opis
      3. Patrz także
    26. AsyncOneWayClientBase<T>
      1. Kategoria
      2. Opis
    27. FormHost<F>
      1. Kategoria
      2. Opis
    28. SafeButton, SafeLabel, SafeListBox, SafeProgressBar, SafeStatusBar, SafeTextBox, SafeTrackBar
      1. Kategoria
      2. Opis
      3. Patrz także
    29. ThreadPoolSynchronizer, ThreadPoolBehaviorAttribute, CallbackThreadPoolBehaviorAttribute, ThreadPoolHelper
      1. Kategoria
      2. Opis
      3. Patrz także
    30. AffinitySynchronizer, ThreadAffinityBehaviorAttribute, CallbackThreadAffinityBehaviorAttribute, HostThreadAffinity
      1. Kategoria
      2. Opis
      3. Patrz także
    31. PrioritySynchronizer, PriorityClientBase<T>, PriorityContext, PriorityCallsBehaviorAttribute
      1. Kategoria
      2. Opis
      3. Patrz także
    32. QueuedServiceHelper
      1. Kategoria
      2. Opis
      3. Patrz także
    33. ClientResponseBase<T>, ServiceResponseBase<T>, ResponseContext
      1. Kategoria
      2. Opis
      3. Patrz także
    34. CredentialsManager, AspNetSqlProviderService
      1. Kategoria
      2. Opis
      3. Patrz także
    35. SecureClientBase<T>, SecureDuplexClientBase<T,C>, SecurityBehaviorAttribute, SecurityHelper, ServiceSecurity
      1. Kategoria
      2. Opis
      3. Patrz także
    36. IServiceBusProperties
      1. Kategoria
      2. Opis
      3. Patrz także
    37. ServiceBusHelper
      1. Kategoria
      2. Opis
    38. ServiceBusHost, ServiceBusClientBase<T>, ServiceBusDuplexClientBase<T,C>
      1. Kategoria
      2. Opis
      3. Patrz także
    39. DiscoverableServiceHost, IServiceBusDicovery, IServiceBusDiscoveryCallback, ServiceBusDiscoveryClient, ServiceBusDiscoveryFactory, ServiceBusDiscoveryHelper, IServiceBusAnnouncements, ServiceBusAnnouncementSink<T>
      1. Kategoria
      2. Opis
      3. Patrz także
    40. OneWayClientBase<T>
      1. Kategoria
      2. Opis
      3. Patrz także
    41. BufferedServiceBusHost<T>, BufferedServiceBusClient<T>, BufferedServiceBusChannelFactory<T>
      1. Kategoria
      2. Opis
      3. Patrz także
    42. ClientBufferResponseBase<T>, ServiceBufferResponseBase<T>
      1. Kategoria
      2. Opis
      3. Patrz także
    43. ServiceBusMetadataHelper
      1. Kategoria
      2. Opis
      3. Patrz także
    44. HeaderClientBase<T,H>, HeaderChannelFactory<T,H>, GenericContext<T>
      1. Kategoria
      2. Opis
      3. Patrz także
    45. ContextClientBase<T>, ContextManager
      1. Kategoria
      2. Opis
      3. Patrz także
    46. NetNamedPipeContextBinding, NetNamedPipeContextBindingElement, NetNamedPipeContextBindingCollectionElement
      1. Kategoria
      2. Opis
      3. Patrz także
    47. DiscoveryHelper
      1. Kategoria
      2. Opis
      3. Patrz także
    48. DiscoveryFactory
      1. Kategoria
      2. Opis
      3. Patrz także
    49. AddressesContainer<T>
      1. Kategoria
      2. Opis
      3. Patrz także
    50. AnnouncementSink<T>
      1. Kategoria
      2. Opis
      3. Patrz także
    51. DiscoveredServices<T>
      1. Kategoria
      2. Opis
      3. Patrz także
    52. PersistentSubscriptionServiceClient, IPersistentSubscriptionService, ISubscriptionService, PersistentSubscription, PublishService<T>, SubscriptionManager<T>, PersistentSubscriptionManager
      1. Kategoria
      2. Opis
      3. Patrz także
    53. ServiceBusEventsHost, ServiceBusEventsClientBase<T>
      1. Kategoria
      2. Opis
      3. Patrz także
    54. DiscoveryPublishService<T>
      1. Kategoria
      2. Opis
      3. Patrz także
    55. GenericInvoker, OperationInterceptorBehaviorAttribute, ServiceInterceptorBehaviorAttribute
      1. Kategoria
      2. Opis
      3. Patrz także
    56. InterceptorClientBase<T>, InterceptorChannelFactory<T>
      1. Kategoria
      2. Opis
      3. Patrz także
    57. SecurityCallFrame, SecurityCallStack, SecurityCallStackContext, SecurityCallStackClientBase<T>, SecurityCallStackInterceptor, OperationSecurityCallStackAttribute, SecurityCallStackBehaviorAttribute
      1. Kategoria
      2. Opis
      3. Patrz także
  23. H. O autorze
  24. Indeks
  25. Kolofon
  26. Copyright