Was ist die Windows Communication Foundation?
Windows Communication Foundation (WCF) ist ein Framework zum Erstellen von dienstorientierten Anwendungen. Mit WCF können Sie Daten als asynchrone Nachrichten von einem Dienstendpunkt an einen anderen senden. Ein Dienstendpunkt kann Teil eines fortwährend verfügbaren von IIS gehosteten Diensts oder ein in einer Anwendung gehosteter Dienst sein. Ein Endpunkt kann ein Client eines Diensts sein, der Daten von einem Dienstendpunkt anfordert. Die Nachrichten können einfach aus einem als XML gesendeten einzelnen Zeichen oder Wort oder aus einem komplexen Strom binärer Daten bestehen. Einige Beispielszenarios enthalten Folgendes:
Ein sicherer Dienst zur Verarbeitung von Geschäftstransaktionen.
Ein Dienst, der aktuelle Daten für andere Dienste bereitstellt, z. B. für Netzwerkverkehrberichtsdienste oder andere Überwachungsdienste.
Ein Chatdienst, mit dem zwei Personen in Echtzeit kommunizieren oder Daten austauschen können.
Eine Dashboardanwendung, die Daten von einem oder mehreren Diensten abfragt und logisch darstellt.
Macht einen mit Windows Workflow Foundation implementierten Workflow als WCF-Dienst verfügbar.
Die Entwicklung solcher Anwendungen war zwar schon vor der Einführung von WCF möglich, aber mit WCF ist die Entwicklung von Endpunkten einfacher denn je. Kurz ausgedrückt: WCF wurde entwickelt, um einen einfachen Ansatz für die Erstellung von Webdiensten und Webdienstclients zu bieten.
gRPC als Alternative zu WCF
gRPC ist ein modernes RPC-Framework und eine beliebte Alternative zu WCF. gRPC basiert auf HTTP/2, das eine Reihe von Vorteilen gegenüber WCF bietet, einschließlich:
- Leistung: gRPC ist deutlich effizienter als WCF, insbesondere bei Verbindungen mit langer Ausführungszeit.
- Skalierbarkeit: gRPC ist darauf ausgelegt, auf eine große Anzahl von Clients und Servern skaliert zu werden.
- Sicherheit: gRPC unterstützt eine Vielzahl von Sicherheitsmechanismen, einschließlich TLS und Authentifizierung.
- Plattformübergreifend: gRPC ist plattformneutral und kann mit einer Vielzahl von Programmiersprachen verwendet werden.
Weitere Informationen zur Entwicklung oder zum Migrieren von WCF-Apps zu gRPC finden Sie unter:
- Darum empfehlen wir WCF-Entwickler*innen gRPC
- Vergleichen von WCF mit gRPC
- Einführung in gRPC für WCF-Entwickler*innen
Funktionen von WCF
WCF umfasst die folgenden Features. Weitere Informationen finden Sie unter WCF-Featuredetails.
Dienstausrichtung
Ein Vorteil der Verwendung des WS-Standards ist die Möglichkeit, mit WCF dienstorientierte Anwendungen zu erstellen. Dienstorientierte Architektur (SOA) wird von Webdiensten für das Senden und Empfangen von Daten verwendet. Der allgemeine Vorteil der Dienste ist, dass sie untereinander lose verknüpft und nicht hartcodiert sind. Eine lose verknüpfte Beziehung impliziert, dass ein beliebiger Client, der auf einer beliebigen Plattform erstellt wurde, mit einem beliebigen Dienst verbunden werden kann, so lange die wesentlichen Vereinbarungen erfüllt sind.
Interoperabilität
WCF implementiert moderne Branchenstandards für die Interoperabilität von Webdiensten. Weitere Informationen zu den unterstützten Standards finden Sie unter Interoperabilität und Integration.
Mehrere Nachrichtenmuster
Nachrichten werden in einem von mehreren Mustern ausgetauscht. Das gängigste Muster ist das Anforderung-Antwort-Muster, bei dem ein Endpunkt Daten von einem zweiten Endpunkt abfragt. Der zweite Endpunkt antwortet. Es gibt noch weitere Muster, wie z. B. eine unidirektionale Nachricht, bei der ein einzelner Endpunkt eine Nachricht ohne Erwartung einer Antwort sendet. Ein komplexeres Muster ist das Duplex-Nachrichtenaustauschmuster, bei dem zwei Endpunkte eine Verbindung herstellen und sich wie bei einem Programm für Sofortnachrichten gegenseitig Daten senden. Weitere Informationen zur Implementierung verschiedener Muster für den Nachrichtenaustausch mit WCF finden Sie unter Verträge.
Dienstmetadaten
WCF unterstützt das Veröffentlichen von Metadaten in den Formaten der Branchenstandards, z. B. WSDL, XML-Schema und WS-Policy. Mithilfe dieser Metadaten lassen sich automatisch Clients für den Zugriff auf WCF-Dienste erstellen und konfigurieren. Metadaten können per HTTP und HTTPS oder mit dem Austauschstandard für Webdienstmetadaten veröffentlicht werden. Weitere Informationen finden Sie unter Metadaten.
Datenverträge
Da WCF auf dem .NET Framework aufbaut, umfasst es außerdem codefreundliche Methoden zur Bereitstellung der Verträge, die Sie erzwingen möchten. Einer der universalen Vertragstypen ist der Datenvertrag. Beim Codieren des Diensts mit Visual C# oder Visual Basic lassen sich Daten am einfachsten durch das Erstellen von Klassen verwalten, die eine Datenentität mit zur Datenentität gehörenden Eigenschaften darstellen. WCF bietet ein umfassendes System für das einfache Arbeiten mit Daten. Nachdem Sie die Klassen erstellt haben, die Daten darstellen, werden vom Dienst automatisch die Metadaten erstellt, mit denen Clients die von Ihnen entworfenen Datentypen verarbeiten können. Weitere Informationen finden Sie unter Verwenden von Datenverträgen.
Security
Nachrichten können zu Datenschutzzwecken verschlüsselt werden, und die Benutzer können zur Authentifizierung aufgefordert werden, bevor Sie Berechtigung zum Empfangen von Nachrichten erhalten. Sicherheit kann mit bekannten Standards wie SSL oder WS-SecureConversation implementiert werden. Weitere Informationen finden Sie unter Sicherheit.
Mehrfache Transporte und Codierungen
Nachrichten können mithilfe der zahlreichen integrierten Transportprotokolle und -codierungen versendet werden. Die gängigste Protokoll- und Codierungsmethode ist das Senden von textcodierten SOAP-Nachrichten mit dem HyperText Transfer Protocol (HTTP) zur Verwendung im World Wide Web. Alternativ können Sie mit WCF Nachrichten über TCP, Named Pipes oder MSMQ senden. Diese Nachrichten können als Text oder mit einem optimierten Binärformat codiert werden. Binärdaten können mit dem MTOM-Standard effizient gesendet werden. Wenn keine der bereitgestellten Transport- oder Codierungsmöglichkeiten Ihren Erfordernissen entspricht, können Sie eine benutzerdefinierte Transport- oder Codierungsmöglichkeit erstellen. Weitere Informationen zu den von WCF unterstützten Transporten und Codierungen finden Sie unter Transporte.
Zuverlässige Nachrichtensendung und Nachrichten in Warteschlangen
WCF unterstützt den zuverlässigen Nachrichtenaustausch unter Verwendung zuverlässiger Sitzungen, die über WS-Reliable Messaging und MSMQ implementiert werden. Weitere Informationen zur Unterstützung von zuverlässigen Nachrichten und Warteschlangen in WCF finden Sie unter Warteschlangen und zuverlässige Sitzungen.
Permanente Nachrichten
Bei einer permanenten Nachricht handelt es sich um eine Nachricht, die niemals aufgrund einer Unterbrechung der Kommunikation verloren geht. Die Nachrichten in einem Muster für permanente Nachrichten werden immer in einer Datenbank gespeichert. Wird die Verbindung unterbrochen, kann mit der Datenbank der Nachrichtenaustausch nach der erneuten Herstellung der Verbindung fortgesetzt werden. Sie können eine dauerhafte Nachricht auch über Windows Workflow Foundation (WF) erstellen. Weitere Informationen finden Sie unter Workflowdienste.
Transaktionen
WCF unterstützt zudem Transaktionen, bei denen eines von drei Transaktionsmodellen verwendet wird: WS-AtomicTransactions, die APIs im System.Transactions-Namespace und Microsoft Distributed Transaction Coordinator. Weitere Informationen zur Transaktionsunterstützung in WCF finden Sie unter Transaktionen.
Unterstützung für AJAX und REST
REST ist ein Beispiel für eine sich weiterentwickelnde Web 2.0-Technologie. WCF kann für die Verarbeitung einfacher XML-Daten konfiguriert werden, die nicht von einem SOAP-Wrapper umschlossen sind. WCF kann außerdem für die Unterstützung spezifischer XML-Formate, z. B. ATOM (ein verbreiteter RSS-Standard), und sogar für die Unterstützung von Nicht-XML-Formaten, z. B. JavaScript Object Notation (JSON), erweitert werden.
Erweiterbarkeit
Die WCF-Architektur umfasst eine Reihe von Erweiterungspunkten. Wenn zusätzliche Fähigkeiten benötigt werden, können Sie an verschiedenen Punkten ansetzen, um das Verhalten eines Diensts anzupassen. Weitere Informationen zu den verfügbaren Erweiterungspunkten finden Sie unter Erweitern von WCF.
WCF-Integration mit anderen Microsoft-Technologien
WCF ist eine flexible Plattform. Aufgrund dieser enormen Flexibilität wird WCF auch in verschiedenen anderen Microsoft-Produkten eingesetzt. Wenn Sie die Grundlagen von WCF verstehen, haben Sie einen unmittelbaren Vorteil, wenn Sie auch eines dieser Produkte verwenden.
Die erste Technologie, die mit WCF kombiniert wurde, war Windows Workflow Foundation (WF). Workflows vereinfachen die Anwendungsentwicklung, indem sie Schritte im Workflow als „Aktivitäten“ kapseln. In der ersten Version von Windows Workflow Foundation mussten die Entwickler*innen einen Host für den Workflow erstellen. Die nächste Version von Windows Workflow Foundation wurde in WCF integriert. Dadurch konnte jeder Workflow problemlos in einem WCF-Dienst gehostet werden. Dies geschieht durch die automatische Auswahl des WF/WCF-Projekttyps in Visual Studio 2012 oder höher.
Microsoft BizTalk Server R2 nutzt WCF ebenfalls als Kommunikationstechnologie. BizTalk wurde zum Empfangen und Umwandeln von Daten aus einem Standardformat in ein anderes entwickelt. Nachrichten müssen an den zentralen Posteingang der Anwendung gesendet werden, wo sie entweder per strikter Zuordnung oder mit einer der BizTalk-Funktionen (z.B. Workflow-Engine) umgewandelt werden können. BizTalk kann jetzt den branchenspezifischen WCF-Adapter nutzen, um Nachrichten an den Posteingang zu übermitteln.
Die Hostingfeatures des Windows Server-AppFabric-Anwendungsservers sind speziell für die Bereitstellung und Verwaltung von Anwendungen konzipiert, die WCF für die Kommunikation nutzen. Zu den Hostingfeatures gehören umfangreiche Tool- und Konfigurationsoptionen, die speziell für WCF-fähige Anwendungen entwickelt wurden.