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 enda 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 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 efter data och presenterar dem i en logisk presentation.
Exponera ett arbetsflöde som implementeras med 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.
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 beroende 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 skapats på valfri plattform kan ansluta till vilken tjänst som helst så länge de viktigaste 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 att förvänta sig ett svar. Ett mer komplext mönster är duplex-utbytesmönstret där två slutpunkter upprättar en anslutning och skickar data fram och tillbaka, ungefär som ett program för snabbmeddelanden. Mer information om hur du implementerar olika mönster för meddelandeutbyte med 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 webbtjänstmetadata Exchange standard. 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 framtvinga. En av de universella typerna av kontrakt är datakontraktet. När du kodar din tjänst med hjälp av 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å detta enkla sätt. När du har skapat de klasser som representerar data genererar tjänsten automatiskt de metadata som gör att klienterna kan uppfylla 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 hjälp av 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. Med WCF kan du också 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 med 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 beständigt 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 hållbart 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 omslutna 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 den här extrema flexibiliteten 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 omvandlas med antingen en strikt mappning eller genom att använda någon av BizTalk-funktionerna, till exempel arbetsflödesmotorn. BizTalk kan nu använda LOB-adaptern (WCF Line of Business) 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.