Delen via


Wat is Windows Communication Foundation?

Windows Communication Foundation (WCF) is een framework voor het bouwen van servicegerichte toepassingen. Met WCF kunt u gegevens verzenden als asynchrone berichten van het ene service-eindpunt naar het andere. Een service-eindpunt kan deel uitmaken van een continu beschikbare service die wordt gehost door IIS, of het kan een service zijn die wordt gehost in een toepassing. Een eindpunt kan een client zijn van een service die gegevens van een service-eindpunt aanvraagt. De berichten kunnen net zo eenvoudig zijn als één teken of woord dat als XML wordt verzonden, of zo complex als een stroom binaire gegevens. Enkele voorbeeldscenario's zijn:

  • Een beveiligde service voor het verwerken van zakelijke transacties.

  • Een service die actuele gegevens aan anderen levert, zoals een verkeersrapport of een andere bewakingsservice.

  • Een chatservice waarmee twee personen in realtime gegevens kunnen communiceren of uitwisselen.

  • Een dashboardtoepassing die een of meer services voor gegevens peilt en deze weergeeft in een logische presentatie.

  • Het beschikbaar maken van een werkstroom die is geïmplementeerd met Windows Workflow Foundation als een WCF-service.

Hoewel het maken van dergelijke toepassingen mogelijk was vóór het bestaan van WCF, maakt WCF de ontwikkeling van eindpunten eenvoudiger dan ooit. Kortom, WCF is ontworpen om een beheerbare benadering te bieden voor het maken van webservices en webserviceclients.

gRPC als alternatief voor WCF

gRPC is een modern RPC-framework dat een populair alternatief is voor WCF. gRPC is gebouwd op HTTP/2, wat een aantal voordelen biedt ten opzichte van WCF, waaronder:

  • Prestaties: gRPC is veel efficiënter dan WCF, met name voor langlopende verbindingen.
  • Schaalbaarheid: gRPC is ontworpen om te schalen naar grote aantallen clients en servers.
  • Beveiliging: gRPC ondersteunt verschillende beveiligingsmechanismen, waaronder TLS en verificatie.
  • Platformoverschrijdend: gRPC is platformneutraal en kan worden gebruikt met verschillende programmeertalen.

Zie voor meer informatie over het ontwikkelen of migreren van WCF-apps naar gRPC:

Functies van WCF

WCF bevat de volgende set functies. Zie WCF-functiedetails voor meer informatie.

  • Servicestand

    Een gevolg van het gebruik van WS-standaarden is dat u met WCF servicegerichte toepassingen kunt maken. Servicegeoriënteerde architectuur (SOA) is de afhankelijkheid van webservices voor het verzenden en ontvangen van gegevens. De services hebben het algemene voordeel dat ze losjes worden gekoppeld in plaats van in code van de ene toepassing naar de andere. Een losjes gekoppelde relatie impliceert dat elke client die op elk platform is gemaakt, verbinding kan maken met elke service zolang aan de essentiële contracten wordt voldaan.

  • Interoperabiliteit

    WCF implementeert moderne industriestandaarden voor interoperabiliteit van webservices. Zie Interoperabiliteit en integratie voor meer informatie over de ondersteunde standaarden.

  • Meerdere berichtpatronen

    Berichten worden uitgewisseld in een van de verschillende patronen. Het meest voorkomende patroon is het patroon aanvraag/antwoord, waarbij één eindpunt gegevens van een tweede eindpunt aanvraagt. Het tweede eindpunt reageert. Er zijn andere patronen, zoals een eenrichtingsbericht waarin één eindpunt een bericht verzendt zonder dat er een antwoord wordt verwacht. Een complexer patroon is het dubbelzijdige uitwisselingspatroon waarbij twee eindpunten een verbinding tot stand brengen en gegevens heen en weer verzenden, vergelijkbaar met een chatprogramma. Zie Contracten voor meer informatie over het implementeren van verschillende patronen voor berichtuitwisseling met WCF.

  • Servicemetagegevens

    WCF biedt ondersteuning voor het publiceren van servicemetagegevens met indelingen die zijn opgegeven in industriestandaarden zoals WSDL, XML-schema en WS-Policy. Deze metagegevens kunnen worden gebruikt voor het automatisch genereren en configureren van clients voor toegang tot WCF-services. Metagegevens kunnen worden gepubliceerd via HTTP en HTTPS of met behulp van de standaard voor metagegevens van de webservice. Zie Metagegevens voor meer informatie.

  • Gegevenscontracten

    Omdat WCF is gebouwd met behulp van .NET Framework, bevat het ook codevriendelijke methoden voor het leveren van de contracten die u wilt afdwingen. Een van de universele typen contracten is het gegevenscontract. Als u uw service codeert met Behulp van Visual C# of Visual Basic, is de eenvoudigste manier om gegevens te verwerken door klassen te maken die een gegevensentiteit vertegenwoordigen met eigenschappen die deel uitmaken van de gegevensentiteit. WCF bevat een uitgebreid systeem voor het werken met gegevens op deze eenvoudige manier. Zodra u de klassen hebt gemaakt die gegevens vertegenwoordigen, genereert uw service automatisch de metagegevens waarmee clients kunnen voldoen aan de gegevenstypen die u hebt ontworpen. Zie Gegevenscontracten gebruiken voor meer informatie.

  • Beveiliging

    Berichten kunnen worden versleuteld om privacy te beschermen en u kunt vereisen dat gebruikers zich verifiëren voordat ze berichten mogen ontvangen. Beveiliging kan worden geïmplementeerd met behulp van bekende standaarden zoals SSL of WS-SecureConversation. Zie Beveiliging voor meer informatie.

  • Meerdere transporten en coderingen

    Berichten kunnen worden verzonden op een van de verschillende ingebouwde transportprotocollen en coderingen. Het meest voorkomende protocol en codering is het verzenden van tekst gecodeerde SOAP-berichten met behulp van het HyperText Transfer Protocol (HTTP) voor gebruik op het World Wide Web. U kunt met WCF ook berichten verzenden via TCP, named pipes of MSMQ. Deze berichten kunnen worden gecodeerd als tekst of met een geoptimaliseerde binaire indeling. Binaire gegevens kunnen efficiënt worden verzonden met behulp van de MTOM-standaard. Als geen van de geleverde transporten of coderingen aan uw behoeften voldoet, kunt u uw eigen aangepaste transport of codering maken. Zie Transporten voor meer informatie over transporten en coderingen die worden ondersteund door WCF.

  • Betrouwbare en in wachtrij geplaatste berichten

    WCF ondersteunt betrouwbare berichtenuitwisseling met behulp van betrouwbare sessies die zijn geïmplementeerd via WS-Reliable Messaging en MSMQ. Zie Wachtrijen en betrouwbare sessies voor meer informatie over ondersteuning voor betrouwbare en in wachtrij geplaatste berichten in WCF.

  • Duurzame berichten

    Een duurzaam bericht is een bericht dat nooit verloren gaat vanwege een onderbreking in de communicatie. De berichten in een duurzaam berichtpatroon worden altijd opgeslagen in een database. Als er een onderbreking optreedt, kunt u de berichtenuitwisseling hervatten wanneer de verbinding wordt hersteld. U kunt ook een duurzaam bericht maken met de Windows Workflow Foundation (WF). Zie Workflow Services voor meer informatie.

  • Transacties

    WCF ondersteunt ook transacties met behulp van een van de drie transactiemodellen: WS-AtomicTransactions, de API's in de System.Transactions naamruimte en Microsoft Distributed Transaction Coordinator. Zie Transacties voor meer informatie over transactieondersteuning in WCF.

  • AJAX- en REST-ondersteuning

    REST is een voorbeeld van een veranderende Web 2.0-technologie. WCF kan worden geconfigureerd voor het verwerken van 'gewone' XML-gegevens die niet in een SOAP-envelop zijn verpakt. WCF kan ook worden uitgebreid ter ondersteuning van specifieke XML-indelingen, zoals ATOM (een populaire RSS-standaard) en zelfs niet-XML-indelingen, zoals JavaScript Object Notation (JSON).

  • Uitbreidbaarheid

    De WCF-architectuur heeft een aantal uitbreidbaarheidspunten. Als er extra mogelijkheden nodig zijn, zijn er een aantal toegangspunten waarmee u het gedrag van een service kunt aanpassen. Zie WCF uitbreiden voor meer informatie over beschikbare uitbreidbaarheidspunten.

WCF-integratie met andere Microsoft-technologieën

WCF is een flexibel platform. Vanwege deze extreme flexibiliteit wordt WCF ook gebruikt in verschillende andere Microsoft-producten. Door inzicht te krijgen in de basisprincipes van WCF, hebt u een direct voordeel als u ook een van deze producten gebruikt.

De eerste technologie die moet worden gekoppeld aan WCF, was de Windows Workflow Foundation (WF). Werkstromen vereenvoudigen de ontwikkeling van toepassingen door stappen in de werkstroom in te kapselen als 'activiteiten'. In de eerste versie van Windows Workflow Foundation moest een ontwikkelaar een host voor de werkstroom maken. De volgende versie van Windows Workflow Foundation is geïntegreerd met WCF. Hierdoor kan elke werkstroom eenvoudig worden gehost in een WCF-service. U kunt dit doen door automatisch het WF/WCF-projecttype in Visual Studio 2012 of hoger te kiezen.

Microsoft BizTalk Server R2 maakt ook gebruik van WCF als communicatietechnologie. BizTalk is ontworpen voor het ontvangen en transformeren van gegevens van één gestandaardiseerde indeling naar een andere. Berichten moeten worden bezorgd in het centrale berichtvak waar het bericht kan worden getransformeerd met behulp van een strikte toewijzing of met behulp van een van de BizTalk-functies, zoals de werkstroomengine. BizTalk kan nu de WCF Line-Of-Business-adapter (LOB) gebruiken om berichten aan het berichtvak te bezorgen.

De hostingfuncties van de Windows Server AppFabric-toepassingsserver zijn speciaal ontworpen voor het implementeren en beheren van toepassingen die gebruikmaken van WCF voor communicatie. De hostingfuncties omvatten uitgebreide hulpprogramma's en configuratieopties die speciaal zijn ontworpen voor WCF-toepassingen.

Zie ook