Dela via


Vad är Windows Communication Foundation?

Windows Communication Foundation (WCF) är ett ramverk för att skapa tjänstorienterade program. Med hjälp av WCF kan du skicka data som asynkrona meddelanden från en tjänstslutpunkt till en annan. En tjänstslutpunkt kan ingå i en kontinuerligt tillgänglig tjänst som hanteras av IIS, eller så kan den vara en tjänst som finns i ett program. En slutpunkt kan vara en klient för en tjänst som begär data från en tjänstslutpunkt. Meddelandena kan vara så enkla som ett enskilt tecken eller ord som skickas som XML, eller så komplexa som en dataström med binära data. Några exempelscenarier är:

  • En säker tjänst för att bearbeta affärstransaktioner.

  • En tjänst som tillhandahåller aktuella data till andra, till exempel en trafikrapport eller en annan övervakningstjänst.

  • En chatttjänst som gör att två personer kan kommunicera eller utbyta data i realtid.

  • Ett instrumentpanelsprogram som avsöker en eller flera tjänster för data och presenterar dem i en logisk presentation.

  • Exponera ett arbetsflöde som implementeras med Hjälp av Windows Workflow Foundation som en WCF-tjänst.

Även om det var möjligt att skapa sådana program innan WCF fanns, gör WCF utvecklingen av slutpunkter enklare än någonsin. Sammanfattningsvis är WCF utformat för att erbjuda en hanterbar metod för att skapa webbtjänster och webbtjänstklienter.

gRPC som ett alternativ till WCF

gRPC är ett modernt RPC-ramverk som är ett populärt alternativ till WCF. gRPC bygger på HTTP/2, vilket ger ett antal fördelar jämfört med WCF, inklusive:

  • Prestanda: gRPC är mycket effektivare än WCF, särskilt för långvariga anslutningar.
  • Skalbarhet: gRPC är utformat för att skala till ett stort antal klienter och servrar.
  • Säkerhet: gRPC stöder en mängd olika säkerhetsmekanismer, inklusive TLS och autentisering.
  • Plattformsoberoende: gRPC är plattformsneutralt och kan användas med en mängd olika programmeringsspråk.

Mer information om hur du utvecklar eller migrerar WCF-appar till gRPC finns i:

Funktioner i WCF

WCF innehåller följande uppsättning funktioner. Mer information finns i WCF-funktionsinformation.

  • Tjänstorientering

    En konsekvens av att använda WS-standarder är att WCF gör att du kan skapa tjänstorienterade program. Tjänstorienterad arkitektur (SOA) är beroendet av webbtjänster för att skicka och ta emot data. Tjänsterna har den allmänna fördelen att de är löst kopplade i stället för hårdkodade från ett program till ett annat. En löst kopplad relation innebär att alla klienter som skapas på valfri plattform kan ansluta till valfri tjänst så länge de grundläggande kontrakten uppfylls.

  • Samverkan

    WCF implementerar moderna branschstandarder för webbtjänstkompatibilitet. Mer information om de standarder som stöds finns i Samverkan och integrering.

  • Flera meddelandemönster

    Meddelanden utbyts i ett av flera mönster. Det vanligaste mönstret är mönstret för begäran/svar, där en slutpunkt begär data från en andra slutpunkt. Den andra slutpunkten svarar. Det finns andra mönster, till exempel ett enkelriktad meddelande där en enskild slutpunkt skickar ett meddelande utan några förväntningar på ett svar. Ett mer komplext mönster är duplex exchange-mönstret där två slutpunkter upprättar en anslutning och skickar data fram och tillbaka, ungefär som ett snabbmeddelandeprogram. Mer information om hur du implementerar olika mönster för meddelandeutbyte med hjälp av WCF finns i Kontrakt.

  • Tjänstmetadata

    WCF stöder publicering av tjänstmetadata med format som anges i branschstandarder som WSDL, XML-schema och WS-Policy. Dessa metadata kan användas för att automatiskt generera och konfigurera klienter för åtkomst till WCF-tjänster. Metadata kan publiceras via HTTP och HTTPS eller med hjälp av Exchange-standarden för webbtjänstmetadata. Mer information finns i Metadata.

  • Datakontrakt

    Eftersom WCF skapas med hjälp av .NET Framework innehåller det även kodvänliga metoder för att tillhandahålla de kontrakt som du vill tillämpa. En av de universella typerna av kontrakt är datakontraktet. När du kodar tjänsten med Visual C# eller Visual Basic är det enklaste sättet att hantera data att skapa klasser som representerar en dataentitet med egenskaper som tillhör dataentiteten. WCF innehåller ett omfattande system för att arbeta med data på det här enkla sättet. När du har skapat de klasser som representerar data genererar tjänsten automatiskt de metadata som gör det möjligt för klienter att följa de datatyper som du har utformat. Mer information finns i Använda datakontrakt.

  • Säkerhet

    Meddelanden kan krypteras för att skydda sekretessen och du kan kräva att användarna autentiserar sig innan de tillåts ta emot meddelanden. Säkerhet kan implementeras med välkända standarder som SSL eller WS-SecureConversation. Mer information finns i Säkerhet.

  • Flera transporter och kodningar

    Meddelanden kan skickas på något av flera inbyggda transportprotokoll och kodningar. Det vanligaste protokollet och kodningen är att skicka textkodade SOAP-meddelanden med hjälp av HyperText Transfer Protocol (HTTP) för användning på World Wide Web. Alternativt kan du med WCF skicka meddelanden via TCP, namngivna pipes eller MSMQ. Dessa meddelanden kan kodas som text eller med ett optimerat binärt format. Binära data kan skickas effektivt med hjälp av MTOM-standarden. Om ingen av de tillhandahållna transporterna eller kodningarna passar dina behov kan du skapa din egen anpassade transport eller kodning. Mer information om transporter och kodningar som stöds av WCF finns i Transporter.

  • Tillförlitliga och köade meddelanden

    WCF stöder tillförlitligt meddelandeutbyte med hjälp av tillförlitliga sessioner som implementeras via WS-Reliable Messaging och använder MSMQ. Mer information om tillförlitligt och köat meddelandestöd i WCF finns i Köer och Tillförlitliga sessioner.

  • Varaktiga meddelanden

    Ett varaktigt meddelande är ett meddelande som aldrig går förlorat på grund av ett avbrott i kommunikationen. Meddelandena i ett varaktigt meddelandemönster sparas alltid i en databas. Om ett avbrott inträffar kan du med databasen återuppta meddelandeutbytet när anslutningen återställs. Du kan också skapa ett varaktigt meddelande med hjälp av Windows Workflow Foundation (WF). Mer information finns i Arbetsflödestjänster.

  • Transaktioner

    WCF stöder också transaktioner med någon av tre transaktionsmodeller: WS-AtomicTransactions, API:erna i System.Transactions namnområdet och Microsoft Distributed Transaction Coordinator. Mer information om transaktionsstöd i WCF finns i Transaktioner.

  • AJAX- och REST-stöd

    REST är ett exempel på en utvecklande Web 2.0-teknik. WCF kan konfigureras för att bearbeta "oformaterade" XML-data som inte är inlindade i ett SOAP-kuvert. WCF kan också utökas för att stödja specifika XML-format, till exempel ATOM (en populär RSS-standard) och även icke-XML-format, till exempel JavaScript Object Notation (JSON).

  • Utökningsbarhet

    WCF-arkitekturen har ett antal utökningspunkter. Om extra kapacitet krävs finns det ett antal startpunkter som gör att du kan anpassa beteendet för en tjänst. Mer information om tillgängliga utökningspunkter finns i Utöka WCF.

WCF-integrering med andra Microsoft-tekniker

WCF är en flexibel plattform. På grund av denna extrema flexibilitet används WCF också i flera andra Microsoft-produkter. Genom att förstå grunderna i WCF har du en omedelbar fördel om du också använder någon av dessa produkter.

Den första tekniken som kopplades ihop med WCF var Windows Workflow Foundation (WF). Arbetsflöden förenklar programutvecklingen genom att kapsla in steg i arbetsflödet som "aktiviteter". I den första versionen av Windows Workflow Foundation var en utvecklare tvungen att skapa en värd för arbetsflödet. Nästa version av Windows Workflow Foundation integrerades med WCF. Det gjorde att alla arbetsflöden enkelt kunde hanteras i en WCF-tjänst. Du kan göra detta genom att automatiskt välja projekttypen WF/WCF i Visual Studio 2012 eller senare.

Microsoft BizTalk Server R2 använder även WCF som kommunikationsteknik. BizTalk är utformat för att ta emot och transformera data från ett standardiserat format till ett annat. Meddelanden måste levereras till den centrala meddelanderutan där meddelandet kan transformeras med antingen en strikt mappning eller genom att använda någon av BizTalk-funktionerna, till exempel arbetsflödesmotorn. BizTalk kan nu använda WCF Line of Business-adaptern (LOB) för att leverera meddelanden till meddelanderutan.

Värdfunktionerna i Windows Server AppFabric-programservern är särskilt utformade för att distribuera och hantera program som använder WCF för kommunikation. Värdfunktionerna omfattar omfattande verktyg och konfigurationsalternativ som är särskilt utformade för WCF-aktiverade program.

Se även