WCF-programmering: maak op service gebaseerde Windows-toepassingen

Openbaarmaking: Uw steun helpt de site draaiende te houden! We verdienen een verwijzingsvergoeding voor sommige van de services die we op deze pagina aanbevelen.


Windows Communication Foundation (WCF) is een runtime-omgeving en een set API’s in .NET Framework die worden gebruikt bij het maken van servicegerichte, verbonden applicaties. WCF is het uniforme programmeermodel van Microsoft voor het bouwen van servicegerichte applicaties.

Korte geschiedenis

De toegenomen populariteit van servicegerichte communicatie en applicaties in het afgelopen decennium had een grote invloed op de softwareontwikkeling. Toepassingen zijn afhankelijk van verschillende services, omdat interactie de norm is geworden. Op het Windows-ontwikkelingsplatform van Microsoft werden deze wijzigingen mogelijk gemaakt door het Windows Communication Platform (WCF).

WCF werd voor het eerst geïntroduceerd als onderdeel van .NET Framework 3.0 in 2006 en verder bijgewerkt in .NET Framework-versies 3.5 en 4.0. De nieuwste versie van de WCF is beschikbaar als onderdeel van .NET Framework-versie 4.5.

Windows Communication Foundation wordt gebruikt in veel van de software die is gebaseerd op .NET Framework.

WCF-functies

WCF is een tool voor ontwikkelaars die servicegerichte applicaties maken, waarbij ze vertrouwen op webservices om gegevens te verzenden en te ontvangen. Webservices hebben het algemene voordeel dat ze losjes zijn gekoppeld, in plaats van specifiek te zijn gecodeerd voor elke toepassing. Met andere woorden, elke applicatie die op elk platform is gemaakt, kan verbinding maken met elke service.

WCF implementeert moderne industriestandaarden voor interoperabiliteit van webservices, zoals HTTP, SOAP, XML, WS-Addressing, W3C Web Services Addressing en nog veel meer. Berichten (of moeten we zeggen gegevens) kunnen in verschillende patronen worden uitgewisseld.

Het meest voorkomende communicatiepatroon is verzoek-antwoord, maar WCF ondersteunt ook andere patronen, zoals eenrichtingsberichten of het duplexuitwisselingspatroon. Berichten kunnen worden versleuteld voor gegevensbescherming en gebruikersverificatie kan worden afgedwongen. Beveiliging wordt geïmplementeerd met behulp van standaardoplossingen zoals SSL of WS-SecureConversation. Berichten kunnen worden getransporteerd met behulp van verschillende protocollen en coderingen, meestal als tekstgecodeerde SOAP-berichten via HTTP. WCF ondersteunt ook het verzenden van berichten via TCP, MSMQ of named pipes, gecodeerd als tekst of met een geoptimaliseerd binair bestand met behulp van de MTOM-standaard. Er kunnen ook aangepaste transportprotocollen en coderingen worden gemaakt.

WCF ondersteunt betrouwbare berichtenuitwisseling met sessies die zijn geïmplementeerd via WS-ReliableMessaging en berichten in de wachtrij met MSMQ. Ondersteuning voor duurzame berichten is ook ingebouwd in WCF, waardoor gegevensverlies als gevolg van communicatieproblemen wordt voorkomen.

Uitgebreide transactieondersteuning is beschikbaar in WCF, met behulp van een van de drie transactiemodellen: WS-AtomicTransactions, de API’s uit de System.Transaction-naamruimte of de Microsoft Distributed Transaction Coordinator.

WCF is een zeer flexibel platform dat gemakkelijke uitbreidbaarheid en integratie met andere Microsoft-technologieën mogelijk maakt, bijvoorbeeld de Windows Workflow Foundation (WF), Microsoft BizTalk en Silverlight.

WCF gebruiken

WCF is in feite een generiek communicatiemechanisme dat wordt gebruikt voor het opzetten van client-hostcommunicatie tussen twee partijen. Dat is wat het zo handig maakt, omdat u serviceparameters zoals transportprotocol, beveiliging, codering, enzovoort kunt configureren – zonder enige wijziging aan de clienttoepassingscode. U kunt ook communicatie instellen tussen services en klanten die zijn geschreven in verschillende programmeertalen die op verschillende platforms worden uitgevoerd.

Het maken van een WCF-service en een client in de Visual Studio IDE vereist zes stappen:

  1. Het definiëren van een WCF-servicecontract specificeert de bewerkingen die door een service worden ondersteund. Contracten worden gemaakt door een C ++ -, C # – of Visual Basic-interface te definiëren en elke methode in de interface moet overeenkomen met een specifieke servicebewerking. Op elke interface moet het ServiceContractAttribute zijn toegepast en op elke bewerking moet het OperationContractAttribute zijn toegepast, anders worden ze niet weergegeven.
  2. Het implementeren van een servicecontract wordt gedaan door een klasse te maken die de door de gebruiker gedefinieerde interface voor de service implementeert.
  3. Het hosten en uitvoeren van een WCF-service bestaat uit de volgende taken: het maken van een URI-instantie voor het basisadres van de service, het hosten van de service, het toevoegen van een eindpunt dat de service zichtbaar maakt, de uitwisseling van metagegevens mogelijk maakt en de servicehost opent.
  4. Het aanmaken van een Client omvat het genereren van een proxy voor de service en een configuratiebestand met behulp van de opdrachtregel Service Model Metadata Utility Tool.
  5. Het configureren van een client bestaat uit het specificeren van het eindpunt dat de client gebruikt om toegang te krijgen tot de service. Een eindpunt heeft een adres, een binding en een contract, en elk van deze moet worden gespecificeerd tijdens het configureren van de client.
  6. Als u een client gebruikt, wordt de service daadwerkelijk aangeroepen vanuit de gegenereerde proxy en wordt de client gesloten zodra de operatie-oproep is voltooid.

Het gebruik van de WCF Service Library-sjabloon of de WCF Service Application-sjabloon in Visual Studio kan de hierboven genoemde stappen aanzienlijk vereenvoudigen, aangezien de meeste beschreven taken automatisch worden uitgevoerd.

Moet ik WCF leren en gebruiken?

In de meeste gevallen komt het neer op een specifieke taak: hoe kan deze worden opgelost en wat is de meest efficiënte en toekomstbestendige oplossing? Misschien is een eenvoudig voorbeeld het beste antwoord op deze vraag.

U ontwikkelt een softwaresuite voor verkooppunten voor een klant met veel verspreide verkooplocaties en u moet verbinding maken met de bestaande core business SQL-database van de klant. Er zijn twee mogelijke oplossingen. De eerste is het opzetten van een WAN en het verbinden van alle verkooplocaties van de klant met de kerndatabase via routers of VPN-verbindingen.

De tweede oplossing is om eenvoudig een WCF-client-serveroplossing te implementeren en via internet toegang te krijgen tot de database. In veel scenario’s kan het gebruik van WCF erg nuttig en economisch zijn.

WCF-middelen

Als u werkt aan het ontwikkelen van client-servertoepassingen voor het Microsoft-platform, moet u de volgende bronnen op WCF eens bekijken:

  • De hoofdpagina van Microsoft Developer Network (MSDN) Windows Communication Foundation biedt een volledig overzicht van WCF – inclusief documentatie, referentiebronnen, handleidingen en tutorials.
  • De WCF van Microsoft Developer Network (MSDN) in Visual Studio beschrijft de WCF-tools die beschikbaar zijn in Visual Studio en biedt korte instructies.
  • De WCF Application Deployment Scenarios van het Microsoft Developer Network (MSDN) is een mooi artikel met verschillende WCF-gebruiksscenario’s en use-cases.

WCF-boeken

We hebben een aantal van de meest gerespecteerde boeken over WCF geselecteerd:

  • WCF-services programmeren: onderhoudbare servicegerichte systemen ontwerpen en bouwen (2015) door Juval Lowy en Michael Montgomery: dit boek biedt uniek inzicht in plaats van documentatie om u te helpen de onderwerpen en vaardigheden te leren die u nodig hebt voor het bouwen van onderhoudbaar, uitbreidbaar en herbruikbaar WCF-gebaseerde applicaties.
  • WCF Multi-Layer Services Development with Entity Framework (2014) door Mike Liu: als je een C #, VB.NET of C ++ ontwikkelaar bent en aan de slag wilt met WCF en Entity Framework, dan is dit boek voor jou. Dit boek leert u alle essentiële zaken om WCF-services te ontwikkelen met Entity Framework als backend.

Conclusie

Omdat WCF een Microsoft-product is, vertrouwt het op het .NET Framework voor het creëren van service-georiënteerde softwareoplossingen en heeft het uithoudingsvermogen. Het is niet nieuw, maar het is nog steeds relevant en zal waarschijnlijk nog jaren duren.

We hebben al enkele gevallen geschetst waarin WCF technisch gezien een groot verschil kan maken. Hoewel het een Microsoft-technologie is, ondersteunt WCF interoperabiliteit met de meeste niet-Windows-systemen, zolang ze Java gebruiken.

Verder lezen en bronnen

We hebben meer handleidingen, tutorials en infographics met betrekking tot codering en ontwikkeling:

  • Microsoft Visual Basic / Visual Studio: dit is onze basisprimer op Visual Studio met een focus op Visual Basic.
  • Inleiding tot ADO.NET: het belangrijkste .NET-systeem voor interactie met databases.
  • C # -bronnen: als een van de meest populaire talen aan het .NET-firmament is C # erg handig om te weten.

Welke code moet je leren?

Weet u niet zeker in welke programmeertaal u moet leren coderen? Bekijk onze infographic Welke code moet u leren? Het bespreekt niet alleen verschillende aspecten van de talen, het beantwoordt belangrijke vragen zoals: “Hoeveel geld zal ik verdienen met het programmeren van Java voor de kost?”

Welke code moet je leren?
Welke code moet je leren?

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me