Wolna encyklopedia
Windows Communication Foundation (nazwa kodowa Indigo) to następna generacja usług sieciowych. Daje ona wiele nowych możliwości użytkownikom, którzy wymagają, aby ich usługi sieciowe były wszechstronne. WFC jest warstwą komunikacyjną API WinFX i docelowo będzie dostępna dla Microsoft Windows XP, 2003 i Visty.
WFC integruje i unifikuje wszystkie dotychczasowe technologie Microsoftu służące do komunikacji: .NET Remoting, COM+ (Enterprise Services w .NET), MSMQ (system komunikacji asynchronicznej w postaci kolejek, komponent Windows.System.Messaging w .NET), webserwisy o profilu podstawowym (w .NET w postaci .ASMX bazujące na ASP.NET) oraz webserwisy z obsługą transakcyjności, niezawodności i bezpieczeństwa poprzez implementację standardów WS-* (Web Services Extensions 3, obecnie mamy WSE 2). Do komunikacji na jednej maszynie można wykorzystać potoki. Praktycznie niezależnie od protokołu komunikacji (HTTP, TCP czy komunikacja międzyprocesowa) czy technologii sposób budowy usługi jest ten sam. Jednocześnie nowa technologia łatwo integruje się z podstawowymi webserwisami ASMX i COM+. WCF do komunikacji wykorzystuje SOAP, co decyduje o jej uniwersalności i łatwym łączeniu z innymi systemami operacyjnymi czy technologiami. Jednak w obrębie samej technologii można korzystać z binarnej wersji SOAP lub MTOM (kodowanie częściowo binarne i w XML).
Przy użyciu WCF łatwiej jest zaimplementować rozwiązanie projektowe. WCF z łatwością komunikuje się z innymi usługami.
- WCF jest w stanie współpracować z webserwisami, także z innymi platformami które obsługują SOAP, takich jak przodujące serwery aplikacji J2EE,
- Można tak skonfigurowac WCF by komunikował się z webserwisami nie bazując na komunikatach SOAP, np. przy użyciu prostych formatów XML - RSS,
- Wydajnośc to priorytetowy aspekt biznesowy. WCF jest tworzony mając na pierwszym miejscu szybkość działania rozproszonych aplikacji. Dla porównania wydajności WCF i innych technologii Microsoftu sprawdź - porównanie,
- By zapewnić optymalną wydajnośc, kiedy obie części aplikacji działają w oparciu o WCF, użyta jest zoptymalizowana binarna wersja zestawu informacji XML'a. Komunikaty nadal pozostają struktury SOAP ale kodowanie używa binarnej prezentacji struktury danych, a nie standardowej nawiasowej notacji tekstowe XML 1.0. Wykorzystywanie tej możliwości ma sens w aplikacjach, gdzie klient często komunikuj się z serwerem centralnym, obie strony bazują na WCF,
- Obsługa cyklu życia obiektów, definiowanie rozproszonych transakcji i inne aspekty Enterprise Services są teraz zapewnione przez WCF. Są one dostępne dla jakiejkolwiek aplikacji bazującej na WCF, nie koniecznie na platformie Microsoft. - Ponieważ WCF wspiera szeroki zakres specyfikacji WS-*, pomaga zapewnić niezawodność, bezpieczeństwo oraz transakcje, kiedy komunikacja z innymi platformami wspiera te specyfikacje,
- Opcja WCF dla kolejkowania wiadomości, utworzona na MSMQ pozwala aplikacjom na używanie trwałego kolejkowania, bez konieczności używania dodatkowych API.
Rezultatem tej unifikacji jest większa funkcjonalność, oraz znacznie zmniejszona kompleksowość.
Interoperacyjność
Przyszłość Internetu nie jest określona i technologie, których dziś używamy wyewoluują bądź zostaną zastąpione. Dziś popularny trend budowania aplikacji zorientowanych sieciowo (Web 2.0) jest modelem bazującym na komunikacji przy użyciu tylko prostego formatu XML i używającym HTTP do transportu i protokołu aplikacji. Przykładowo, architektura Representation State Transfer (REST) nie ma pojęcia zdefiniowanych przez użytkownika operacji obsługi danych. Odmiennie, stan aplikacji jest zespolony z URLem HTTP i metodami HTTP (PUT, POST, DELETE, GET). To podejście kontrastuje z utworzeniem definiowalnych przez użytkownika procedur czy funkcji, które są tak dobrze znane dla większości programistów. Jakkolwiek, podejście REST jest wartościowe w tych obszarach, gdzie usługa musi funkcjonować na zapleczu aplikacji Web 2.0. REST to kolejny przykład ewoluowania technologii Web 2.0. W tym środowisku eksperymentalnych modeli programowania i ciągłej reinterpretacji standardów, elastyczność jest wskazana by sprostać nieprzewidywalnym zmianom. WCF jest elastyczne. Przykładowo kiedy WCF korzysta z SOAP jako bazowej struktury, jest nie przypisana do używania SOAP jako komunikacji przewodowej. W związku z tym WCF może być tak skonfigurowane by przysyłać dane przez prosty XML który nie jest wbudowany w SOAP. WCF może być również rozszerzony by wspierać konkretny format XML takich jak ATOM (popularny standard RSS), czy nawet nie-XML'owe formaty, takie jak JavaScript Object Notation (JSON). Ta elastyczność zapewnia, że kod pisany dziś, będzie przydatny w przyszłości, nawet jeśli protokół zmieni się, bądź zostanie wyparty. WCF został zaprojektowany do działania teraz i w przyszłości.
Windows APIs: Windows API : Win16 • Win32 • Win32s • Win32 dla 64-bit Windows
Grafika: DirectX • Direct3D • DirectDraw • Graphics Device Interface (GDI) • GDI+ • Desktop Window Manager • ClearType • Windows Presentation Foundation • Windows Image Acquisition
Dźwięk: DirectSound • DirectMusic • XACT
Multimedia: DirectShow • Media Foundation • Windows Media
Dostęp danych: Microsoft Data Access Components • ActiveX Data Objects • OLE DB • ADO.NET • Entity Framework
Komunikacja: Winsock • Remote Application Programming Interface • Telephony Application Programming Interface
Zarządzanie: Windows Management Instrumentation
Model komponentu: ActiveX • Component Object Model (COM) • COM+ • Distributed Component Object Model • Dynamic Data Exchange • Object Linking and Embedding • .NET
Rozwój sterownika: User-Mode Driver Framework • Kernel-Mode Driver Framework • Windows Driver Foundation • Windows Driver Model
Bezpieczeństwo i dyskrecja: Cryptographic Application Programming Interface • Windows CardSpace
.NET: .NET Framework • ASP.NET • ADO.NET • .NET Remoting • Silverlight • Windows Communication Foundation • Windows Presentation Foundation • Windows Workflow Foundation • Windows CardSpace • Managed DirectX
Wstrzymane lub anulowane: WinFS (Windows Future Storage)