Was ist die Windows Communication Foundation?

Windows Communication Foundation (WCF) ist ein Framework zur Erstellung dienstorientierter 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.

  • Eine Silverlight-Anwendung zum Abfragen aktueller Datenfeeds von einem Dienst.

Zwar konnten solche Anwendung bereits vor WCF erstellt werden, allerdings ist mit WCF die Entwicklung von Endpunkten einfacher als je zuvor. WCF wurde im Grunde entwickelt, um Benutzern einen leichten Zugang zur Entwicklung von Webdiensten und Webdienstclients zu ermöglichen.

Funktionen von WCF

WCF enthält die folgenden Funktionen. Weitere Informationen finden Sie unter Details zur WCF-Funktion.

  • 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 enthält aktuelle Branchenstandards für Webdienstinteroperabilität. Weitere Informationen über 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 etwas komplexeres Muster ist das Duplex-Nachrichtenaustauschmuster, bei dem zwei Endpunkte eine Verbindung zueinander herstellen und sich wie bei einem Programm für Sofortnachrichten gegenseitig Daten zusenden. Weitere Informationen über zum Implementieren verschiedener Nachrichtenaustauschmuster 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-Richtlinie. Diese Metadaten können verwendet werden, um Clients für den Zugriff auf WCF-Dienste automatisch zu erstellen und zu 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 mit .NET Framework erstellt wird, enthält es auch codefreundliche Methoden für die Bereitstellung der Verträge, die erzwungen werden sollen. Einer der universalen Vertragstypen ist der Datenvertrag. Der einfachste Weg zur Verwaltung von Daten während der Codierung des Diensts mit Visual C# oder Visual Basic ist die Erstellung von Klassen, die eine Datenentität mit zur Datenentität gehörenden Eigenschaften darstellen. WCF enthält ein umfassendes System zur einfachen Arbeit 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

  • Sicherheit

    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 Windows Communication Foundation-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. Entspricht keine der bereitgestellten Transport- oder Codierungsmöglichkeiten Ihren Erfordernissen, können Sie eine benutzerdefinierte Transport- oder Codierungsmöglichkeit erstellen. Weitere Informationen über zu von WCF unterstützten Transport- und Codierungsmöglichkeiten finden Sie unter Transporte in Windows Communication Foundation.

  • Zuverlässige Nachrichtensendung und Nachrichten in Warteschlangen

    WCF unterstützt den zuverlässigen Nachrichtenaustausch mit per WS-Reliable Messaging implementierten zuverlässigen Sitzungen und der Verwendung von MSMQ. Weitere Informationen über zur Unterstützung von zuverlässigen Nachrichten und Nachrichten in 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 permanente Nachricht auch mit Windows Workflow Foundation (WF) erstellen. Weitere Informationen finden Sie unter Workflowdienste.

  • Transaktionen

    WCF unterstützt auch Transaktionen, bei denen eines der drei Transaktionsmodelle verwendet wird: WS-AtomicTtransactions, die APIs im System.Transactions-Namespace und Microsoft Distributed Transaction Coordinator. Weitere Informationen über zu den in WCF unterstützten Transaktionen 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 so konfiguriert werden, dass es "einfache" XML-Daten verarbeitet, die nicht von einem SOAP-Umschlag umgeben sind. WCF kann außerdem erweitert werden, sodass es spezifische XML-Formate wie ATOM (ein verbreiteter RSS-Standard) und sogar Nicht-XML-Formate wie JavaScript Object Notation (JSON) unterstützt.

  • Erweiterbarkeit

    Die WCF-Architektur verfügt über eine Reihe von Erweiterungspunkten. Sind erweiterte Möglichkeiten erforderlich, können Sie an verschiedenen Punkten ansetzen, um das Verhalten eines Diensts wunschgemäß anzupassen. Weitere Informationen über zu den verfügbaren Erweiterungspunkten finden Sie unter Erweitern von WCF.

WCF-Integration mit anderen Microsoft-Technologien

WCF ist eine flexible Plattform. Aufgrund der hohen Flexibilität wird WCF auch in zahlreichen anderen Produkten von Microsoft eingesetzt. Durch Kenntnisse der Grundlagen von WCF besitzen 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 Schritte als "Aktivitäten" in den Workflow integriert werden. In der ersten Version von Windows Workflow Foundation musste ein Host für den Workflow erstellt werden. Die darauffolgende Version von Windows Workflow Foundation war mit WCF kombiniert. Ein beliebiger Workflow kann seither nun leicht in einem WCF-Dienst gehostet werden. Wählen Sie hierzu in Visual Studio 2010 bzw. Visual Studio 2010 einfach WF/WCF als Projekttyp aus.

Microsoft BizTalk Server R2 nutzt u. a. ebenfalls WCF 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. Workflowmodul) umgewandelt werden können. BizTalk kann nun den Line of Business (LOB)-Adapter von WCF verwenden, um Nachrichten an den Posteingang zu senden.

Microsoft Silverlight ist eine Plattform für die Entwicklung interoperabler und leistungsfähiger Webanwendungen, mit denen Entwickler multimediale Websites (z. B. mit Videostreams) erstellen können. Seit Version 2 ist WCF als Kommunikationstechnologie in Silverlight integriert und verbindet so Silverlight-Anwendungen mit WCF-Endpunkten.

Microsoft .NET Services ist eine cloudverarbeitende Initiative, die WCF zur Erstellung internetaktivierter Anwendungen verwendet. Verwenden Sie .NET Services, um WCF-Dienste für die Vertrauensgrenzen übergreifende Arbeit zu erstellen.

Der Hostingfunktionen von Windows Server AppFabric-Anwendungsserver wurde speziell für die Bereitstellung und Verwaltung von Anwendungen entwickelt, die WCF zur Kommunikation verwenden. Der Hostingfunktionen-Server beinhaltet leistungsfähige Bearbeitungs- und Konfigurationsoptionen, die speziell für mit WCF kompatible Anwendungen konzipiert wurden.

Siehe auch

Verweis

System.ServiceModel

Konzepte

Wesentliche Windows Communication Foundation-Begriffe
Windows Communication Foundation-Architektur
Anleitung zur Dokumentation

Weitere Ressourcen

Richtlinien und bewährte Methoden
Lernprogramm "Erste Schritte"
Basis-WCF-Programmierung
Windows Communication Foundation Samples