Co to jest program Windows Communication Foundation
Artykuł
Windows Communication Foundation (WCF) to struktura służąca do tworzenia aplikacji zorientowanych na usługi. Za pomocą programu WCF można wysyłać dane jako komunikaty asynchroniczne z jednego punktu końcowego usługi do innego. Punkt końcowy usługi może być częścią stale dostępnej usługi hostowanej przez usługi IIS lub może być usługą hostowaną w aplikacji. Punkt końcowy może być klientem usługi, która żąda danych z punktu końcowego usługi. Komunikaty mogą być proste w postaci pojedynczego znaku lub słowa wysyłanego jako XML lub jako złożonego strumienia danych binarnych. Oto kilka przykładowych scenariuszy:
Bezpieczna usługa do przetwarzania transakcji biznesowych.
Usługa, która dostarcza bieżące dane innym osobom, na przykład raport o ruchu lub inną usługę monitorowania.
Usługa czatu, która umożliwia dwóm osobom komunikowanie się lub wymianę danych w czasie rzeczywistym.
Aplikacja pulpitu nawigacyjnego, która sonduje co najmniej jedną usługę dla danych i prezentuje ją w prezentacji logicznej.
Uwidacznianie przepływu pracy zaimplementowanego przy użyciu programu Windows Workflow Foundation jako usługi WCF.
Chociaż tworzenie takich aplikacji było możliwe przed istnieniem programu WCF, program WCF ułatwia tworzenie punktów końcowych niż kiedykolwiek. Podsumowując, program WCF jest przeznaczony do oferowania możliwego do zarządzania podejście do tworzenia usług sieci Web i klientów usług sieci Web.
gRPC jako alternatywa dla programu WCF
gRPC to nowoczesna struktura RPC, która jest popularną alternatywą dla platformy WCF. Usługa gRPC jest oparta na protokole HTTP/2, który zapewnia wiele zalet w porównaniu z platformą WCF, w tym:
Wydajność: gRPC jest znacznie wydajniejszy niż WCF, szczególnie w przypadku długotrwałych połączeń.
Skalowalność: gRPC jest przeznaczony do skalowania do dużej liczby klientów i serwerów.
Zabezpieczenia: usługa gRPC obsługuje różne mechanizmy zabezpieczeń, w tym tls i uwierzytelnianie.
Międzyplatformowe: gRPC jest neutralna dla platformy i może być używana z różnymi językami programowania.
Aby uzyskać więcej informacji na temat tworzenia lub migrowania aplikacji WCF do usługi gRPC, zobacz:
Program WCF zawiera następujący zestaw funkcji. Aby uzyskać więcej informacji, zobacz Szczegóły funkcji programu WCF.
Orientacja usługi
Jedną z konsekwencji korzystania ze standardów WS jest to, że program WCF umożliwia tworzenie aplikacji zorientowanych na usługi. Architektura zorientowana na usługę (SOA) polega na usługach sieci Web do wysyłania i odbierania danych. Usługi mają ogólną zaletę luźno powiązane zamiast trwale zakodowanych z jednej aplikacji na drugą. Luźno połączona relacja oznacza, że każdy klient utworzony na dowolnej platformie może łączyć się z dowolną usługą, o ile są spełnione podstawowe kontrakty.
Współdziałanie
WCF implementuje nowoczesne standardy branżowe dla współdziałania usług internetowych. Aby uzyskać więcej informacji na temat obsługiwanych standardów, zobacz Współdziałanie i integracja.
Wiele wzorców komunikatów
Komunikaty są wymieniane w jednym z kilku wzorców. Najczęstszym wzorcem jest wzorzec żądania/odpowiedzi, w którym jeden punkt końcowy żąda danych z drugiego punktu końcowego. Drugi punkt końcowy odpowiada. Istnieją inne wzorce, takie jak jednokierunkowy komunikat, w którym pojedynczy punkt końcowy wysyła komunikat bez żadnego oczekiwania na odpowiedź. Bardziej złożonym wzorcem jest wzorzec wymiany dwukierunkowej, w którym dwa punkty końcowe ustanawiają połączenie i wysyłają dane tam i z powrotem, podobnie jak w przypadku programu do obsługi wiadomości błyskawicznych. Aby uzyskać więcej informacji na temat implementowania różnych wzorców wymiany komunikatów przy użyciu programu WCF, zobacz Contracts (Kontrakty).
Metadane usługi
Program WCF obsługuje publikowanie metadanych usługi przy użyciu formatów określonych w standardach branżowych, takich jak WSDL, Schemat XML i WS-Policy. Te metadane mogą służyć do automatycznego generowania i konfigurowania klientów na potrzeby uzyskiwania dostępu do usług WCF. Metadane można publikować za pośrednictwem protokołu HTTP i HTTPS lub przy użyciu standardu Exchange metadanych usługi sieci Web. Aby uzyskać więcej informacji, zobacz Metadane.
Kontrakty danych
Ponieważ program WCF jest kompilowany przy użyciu programu .NET Framework, zawiera również przyjazne dla kodu metody dostarczania kontraktów, które chcesz wymusić. Jednym z uniwersalnych typów kontraktów jest kontrakt danych. W istocie, ponieważ kodujesz usługę przy użyciu języka Visual C# lub Visual Basic, najprostszym sposobem obsługi danych jest utworzenie klas reprezentujących jednostkę danych z właściwościami należącymi do jednostki danych. WCF oferuje kompleksowy system do pracy z danymi w ten łatwy sposób. Po utworzeniu klas reprezentujących dane usługa automatycznie generuje metadane, które umożliwiają klientom zgodność z zaprojektowanymi typami danych. Aby uzyskać więcej informacji, zobacz Using Data Contracts (Korzystanie z kontraktów danych).
Bezpieczeństwo
Wiadomości mogą być szyfrowane w celu ochrony prywatności i można wymagać od użytkowników uwierzytelnienia się przed zezwoleniem na odbieranie wiadomości. Zabezpieczenia można zaimplementować przy użyciu dobrze znanych standardów, takich jak SSL lub WS-SecureConversation. Aby uzyskać więcej informacji, zobacz Zabezpieczenia.
Wiele transportów i kodowań
Komunikaty można wysyłać na dowolny z kilku wbudowanych protokołów transportu i kodowań. Najczęstszym protokołem i kodowaniem jest wysyłanie zakodowanych tekstu komunikatów PROTOKOŁU SOAP przy użyciu protokołu HTTP (HyperText Transfer Protocol) do użycia w sieci World Wide Web. Alternatywnie usługa WCF umożliwia wysyłanie komunikatów za pośrednictwem protokołu TCP, nazwanych potoków lub MSMQ. Te komunikaty mogą być kodowane jako tekst lub przy użyciu zoptymalizowanego formatu binarnego. Dane binarne można wysyłać wydajnie przy użyciu standardu MTOM. Jeśli żaden z podanych transportów lub kodowań nie odpowiada Twoim potrzebom, możesz utworzyć własny niestandardowy transport lub kodowanie. Aby uzyskać więcej informacji na temat transportu i kodowania obsługiwanych przez usługę WCF, zobacz Transports (Transports).
Niezawodne i kolejkowane komunikaty
Program WCF obsługuje niezawodną wymianę komunikatów przy użyciu niezawodnych sesji implementowanych za pośrednictwem usług WS-Reliable Messaging i korzystających z usługi MSMQ. Aby uzyskać więcej informacji na temat niezawodnej i kolejkowanej obsługi komunikatów w programie WCF, zobacz Kolejki i niezawodne sesje.
Trwałe wiadomości
Trwały komunikat jest taki, który nigdy nie jest utracony z powodu zakłóceń w komunikacji. Komunikaty w trwałym wzorcu komunikatów są zawsze zapisywane w bazie danych. W przypadku wystąpienia zakłóceń baza danych umożliwia wznowienie wymiany komunikatów po przywróceniu połączenia. Możesz również utworzyć trwały komunikat przy użyciu programu Windows Workflow Foundation (WF). Aby uzyskać więcej informacji, zobacz Usługi przepływu pracy.
Transakcje
Program WCF obsługuje również transakcje przy użyciu jednego z trzech modeli transakcji: WS-AtomicTransactions, interfejsów API w System.Transactions przestrzeni nazw i koordynatora transakcji rozproszonych firmy Microsoft. Aby uzyskać więcej informacji na temat obsługi transakcji w programie WCF, zobacz Transakcje.
Obsługa technologii AJAX i REST
REST to przykład rozwijającej się technologii Web 2.0. Program WCF można skonfigurować do przetwarzania "zwykłych" danych XML, które nie są opakowane w kopertę protokołu SOAP. Program WCF można również rozszerzyć tak, aby obsługiwał określone formaty XML, takie jak ATOM (popularny standard RSS), a nawet formaty inne niż XML, takie jak JavaScript Object Notation (JSON).
Możliwości rozszerzania
Architektura WCF ma wiele punktów rozszerzalności. Jeśli wymagana jest dodatkowa możliwość, istnieje kilka punktów wejścia, które umożliwiają dostosowanie zachowania usługi. Aby uzyskać więcej informacji na temat dostępnych punktów rozszerzalności, zobacz Rozszerzanie programu WCF.
Integracja programu WCF z innymi technologiami firmy Microsoft
WCF to elastyczna platforma. Ze względu na tę ekstremalną elastyczność usługa WCF jest również używana w kilku innych produktach firmy Microsoft. Poznając podstawy programu WCF, masz natychmiastową przewagę, jeśli używasz również dowolnego z tych produktów.
Pierwszą technologią do parowania z usługą WCF była Windows Workflow Foundation (WF). Przepływy pracy upraszczają tworzenie aplikacji przez hermetyzowanie kroków w przepływie pracy jako "działania". W pierwszej wersji programu Windows Workflow Foundation deweloper musiał utworzyć hosta dla przepływu pracy. Następna wersja programu Windows Workflow Foundation została zintegrowana z usługą WCF. Umożliwiło to łatwe hostowania dowolnego przepływu pracy w usłudze WCF. Możesz to zrobić, automatycznie wybierając typ projektu WF/WCF w programie Visual Studio 2012 lub nowszym.
Program Microsoft BizTalk Server R2 korzysta również z technologii WCF jako technologii komunikacyjnej. Usługa BizTalk jest przeznaczona do odbierania i przekształcania danych ze standardowego formatu na inny. Komunikaty muszą być dostarczane do centralnego pola komunikatu, w którym można przekształcić komunikat przy użyciu ścisłego mapowania lub przy użyciu jednej z funkcji BizTalk, takich jak aparat przepływu pracy. Usługa BizTalk może teraz używać adaptera WCF Line of Business (LOB) do dostarczania komunikatów do pola komunikatu.
Funkcje hostingu serwera aplikacji AppFabric systemu Windows Server zostały specjalnie zaprojektowane do wdrażania aplikacji korzystających z programu WCF do komunikacji i zarządzania nimi. Funkcje hostingu obejmują zaawansowane narzędzia i opcje konfiguracji specjalnie zaprojektowane dla aplikacji z obsługą platformy WCF.
Aplikacje mikrousług składają się z małych, niezależnych wersji i skalowalnych usług skoncentrowanych na klientach, które komunikują się ze sobą przy użyciu standardowych protokołów i dobrze zdefiniowanych interfejsów. Każda mikrousługa zwykle hermetyzuje prostą logikę biznesową, którą można skalować w poziomie lub w poziomie. Testujesz, wdrażasz mikrousługę i zarządzasz nią niezależnie. Mniejsze zespoły opracowują mikrousługę na podstawie scenariusza klienta i wybierają używane przez nich technologie. W ty