Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Windows Communication Foundation (WCF) ist ein Framework zum Erstellen dienstorientierter Anwendungen. Mithilfe von WCF können Sie Daten als asynchrone Nachrichten von einem Dienstendpunkt an einen anderen senden. Ein Dienstendpunkt kann Teil eines kontinuierlich verfügbaren Diensts sein, der von IIS gehostet wird, oder ein Dienst, der in einer Anwendung gehostet wird. Ein Endpunkt kann ein Client eines Diensts sein, der Daten von einem Dienstendpunkt anfordert. Die Nachrichten können so einfach wie ein einzelnes Zeichen oder Wort sein, das als XML gesendet wird, oder so komplex wie ein Datenstrom von Binärdaten. Einige Beispielszenarien umfassen:
Ein sicherer Dienst zum Verarbeiten von Geschäftstransaktionen.
Ein Dienst, der aktuelle Daten für andere bereitstellt, z. B. einen Verkehrsbericht oder einen anderen Überwachungsdienst.
Ein Chatdienst, der es zwei Personen ermöglicht, Daten in Echtzeit zu kommunizieren oder auszutauschen.
Eine Dashboardanwendung, die Daten von einem oder mehreren Diensten abfragt und in einer logischen Darstellung präsentiert.
Freigeben eines Workflows, der mit Windows Workflow Foundation implementiert und als WCF-Dienst bereitgestellt wird.
Während das Erstellen solcher Anwendungen vor dem Vorhandensein von WCF möglich war, macht WCF die Entwicklung von Endpunkten einfacher denn je. Zusammenfassend ist WCF darauf ausgelegt, einen überschaubaren Ansatz zum Erstellen von Webdiensten und Webdienstclients zu bieten.
gRPC als Alternative zu WCF
gRPC ist ein modernes RPC-Framework, das eine beliebte Alternative zu WCF ist. gRPC basiert auf HTTP/2, das eine Reihe von Vorteilen gegenüber WCF bietet, einschließlich:
- Leistung: gRPC ist viel effizienter als WCF, insbesondere für lang andauernde Verbindungen.
- Skalierbarkeit: gRPC ist darauf ausgelegt, auf eine große Anzahl von Clients und Servern zu skalieren.
- 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 zum Entwickeln oder Migrieren von WCF-Apps zu gRPC finden Sie unter:
- Warum wir gRPC für WCF-Entwickler empfehlen
- Vergleich von WCF mit gRPC
- Einführung in gRPC für WCF-Entwickler
Features von WCF
WCF enthält die folgenden Features. Weitere Informationen finden Sie unter WCF-Featuredetails.
Serviceorientierung
Eine Folge der Verwendung von WS-Standards ist, dass WCF es Ihnen ermöglicht, dienstorientierte Anwendungen zu erstellen. Dienstorientierte Architektur (SOA) ist die Abhängigkeit von Webdiensten zum Senden und Empfangen von Daten. Die Dienste haben den allgemeinen Vorteil, lose gekoppelt zu sein, anstatt von einer Anwendung zur anderen festcodiert zu werden. Eine lose gekoppelte Beziehung bedeutet, dass jeder Client, der auf jeder Plattform erstellt wurde, eine Verbindung mit einem beliebigen Dienst herstellen kann, solange die wesentlichen Vertragsbedingungen 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 häufigste Muster ist das Anforderungs-/Antwortmuster, bei dem ein Endpunkt Daten von einem zweiten Endpunkt anfordert. Der zweite Endpunkt antwortet. Es gibt andere Muster, z. B. eine unidirektionale Nachricht, in der ein einzelner Endpunkt eine Nachricht sendet, ohne dass eine Antwort erwartet wird. Ein komplexeres Muster ist das Duplexaustauschmuster, bei dem zwei Endpunkte eine Verbindung herstellen und Daten hin und her senden, ähnlich wie bei einem Instant Messaging-Programm. Weitere Informationen zum Implementieren verschiedener Nachrichtenaustauschmuster mithilfe von WCF finden Sie unter "Verträge".
Dienstmetadaten
WCF unterstützt Veröffentlichungsdienstmetadaten mithilfe von Formaten, die in Branchenstandards wie WSDL, XML-Schema und WS-Richtlinie angegeben sind. Diese Metadaten können verwendet werden, um Clients für den Zugriff auf WCF-Dienste automatisch zu generieren und zu konfigurieren. Metadaten können über HTTP und HTTPS veröffentlicht werden oder den Exchange-Standard für Webdienstmetadaten verwenden. Weitere Informationen finden Sie unter Metadaten.
Datenverträge
Da WCF mit .NET Framework erstellt wird, enthält es auch codefreundliche Methoden zum Bereitstellen der Verträge, die Sie erzwingen möchten. Einer der universellen Vertragstypen ist der Datenvertrag. Während Sie Ihren Dienst mit Visual C# oder Visual Basic codieren, besteht die einfachste Methode zum Behandeln von Daten darin, Klassen zu erstellen, die eine Datenentität mit Eigenschaften darstellen, die zur Datenentität gehören. WCF umfasst ein umfassendes System für die einfache Arbeit mit Daten. Nachdem Sie die Klassen erstellt haben, die Daten darstellen, generiert Ihr Dienst automatisch die Metadaten, mit denen Clients die von Ihnen entworfenen Datentypen einhalten können. Weitere Informationen finden Sie unter Verwenden von Datenverträgen.
Sicherheit
Nachrichten können zum Schutz der Privatsphäre verschlüsselt werden, und Sie können verlangen, dass sich Benutzer selbst authentifizieren, bevor Sie Nachrichten empfangen dürfen. Sicherheit kann mit bekannten Standards wie SSL oder WS-SecureConversation implementiert werden. Weitere Informationen finden Sie unter Sicherheit.
Mehrere Transporte und Codierungen
Nachrichten können auf mehreren integrierten Transportprotokollen und Codierungen gesendet werden. Das häufigste Protokoll und die Codierung ist das Senden von textcodierten SOAP-Nachrichten mithilfe des HyperText Transfer Protocol (HTTP) für die Verwendung im World Wide Web. Alternativ können Sie mit WCF Nachrichten über TCP, benannte Rohre oder MSMQ senden. Diese Nachrichten können als Text oder in einem optimierten Binärformat codiert werden. Binäre Daten können effizient mithilfe des MTOM-Standards gesendet werden. Wenn keiner der bereitgestellten Transporte oder Codierungen Ihren Anforderungen entspricht, können Sie einen eigenen benutzerdefinierten Transport oder eine eigene Codierung erstellen. Weitere Informationen zu Transporten und Codierungen, die von WCF unterstützt werden, finden Sie unter Transports.
Zuverlässige und in die Warteschlange eingereihte Nachrichten
WCF unterstützt einen zuverlässigen Nachrichtenaustausch mit zuverlässigen Sitzungen, die über WS-Reliable Messaging implementiert wurden und MSMQ verwenden. Weitere Informationen zur Unterstützung zuverlässiger Nachrichtenübertragung und Warteschlangen in WCF finden Sie unter Warteschlangen und zuverlässige Sitzungen.
Dauerhafte Nachrichten
Eine dauerhafte Nachricht ist eine Nachricht, die aufgrund einer Unterbrechung der Kommunikation nie verloren geht. Die Nachrichten in einem dauerhaften Nachrichtenmuster werden immer in einer Datenbank gespeichert. Wenn eine Unterbrechung auftritt, können Sie mit der Datenbank den Nachrichtenaustausch fortsetzen, wenn die Verbindung wiederhergestellt wird. Sie können auch eine dauerhafte Nachricht mithilfe von Windows Workflow Foundation (WF) erstellen. Weitere Informationen finden Sie unter Workflowdienste.
Transaktionen
WCF unterstützt auch Transaktionen mit einem von drei Transaktionsmodellen: WS-AtomicTransactions, die APIs im System.Transactions Namespace und Microsoft Distributed Transaction Coordinator. Weitere Informationen zur Transaktionsunterstützung in WCF finden Sie unter "Transaktionen".
AJAX- und REST-Unterstützung
REST ist ein Beispiel für eine sich entwickelnde Web 2.0-Technologie. WCF kann so konfiguriert werden, dass "einfache" XML-Daten verarbeitet werden, die nicht in einen SOAP-Umschlag eingeschlossen sind. WCF kann auch erweitert werden, um bestimmte XML-Formate wie ATOM (ein beliebter RSS-Standard) und sogar Nicht-XML-Formate wie JavaScript Object Notation (JSON) zu unterstützen.
Erweiterbarkeit
Die WCF-Architektur weist eine Reihe von Erweiterbarkeitspunkten auf. Wenn zusätzliche Funktionen erforderlich sind, gibt es eine Reihe von Einstiegspunkten, mit denen Sie das Verhalten eines Diensts anpassen können. Weitere Informationen zu verfügbaren Erweiterbarkeitspunkten finden Sie unter Erweitern von WCF.
WCF-Integration in andere Microsoft-Technologien
WCF ist eine flexible Plattform. Aufgrund dieser extremen Flexibilität wird WCF auch in mehreren anderen Microsoft-Produkten verwendet. Wenn Sie die Grundlagen von WCF verstehen, haben Sie einen sofortigen Vorteil, wenn Sie auch eines dieser Produkte verwenden.
Die erste Technologie, die mit WCF gekoppelt werden soll, war die Windows Workflow Foundation (WF). Workflows vereinfachen die Anwendungsentwicklung, indem Schritte im Workflow als "Aktivitäten" gekapselt werden. In der ersten Version von Windows Workflow Foundation musste ein Entwickler einen Host für den Workflow erstellen. Die nächste Version von Windows Workflow Foundation wurde in WCF integriert. Dadurch kann jeder Workflow einfach in einem WCF-Dienst gehostet werden. Dazu können Sie automatisch den WF/WCF-Projekttyp in Visual Studio 2012 oder höher auswählen.
Microsoft BizTalk Server R2 nutzt WCF auch als Kommunikationstechnologie. BizTalk wurde entwickelt, um Daten von einem standardisierten Format in ein anderes zu empfangen und zu transformieren. Nachrichten müssen an das zentrale Nachrichtenpostfach übermittelt werden, in dem die Nachricht mithilfe einer strengen Zuordnung oder mithilfe einer der BizTalk-Features wie der Workflow-Engine transformiert werden kann. BizTalk kann jetzt den WCF Line of Business(LOB)-Adapter verwenden, um Nachrichten an das Meldungsfeld zu übermitteln.
Die Hostingfeatures des Windows Server AppFabric-Anwendungsservers wurden speziell für die Bereitstellung und Verwaltung von Anwendungen entwickelt, die WCF für die Kommunikation verwenden. Zu den Hostingfeatures gehören umfangreiche Tools und Konfigurationsoptionen, die speziell für WCF-fähige Anwendungen entwickelt wurden.