Delen via


Inleiding tot uitbreidbaarheid

Het WCF-toepassingsmodel (Windows Communication Foundation) is ontworpen om het grotere deel van de communicatievereisten van een gedistribueerde toepassing op te lossen. Maar er zijn altijd scenario's die het standaardtoepassingsmodel en door het systeem geleverde implementaties niet ondersteunen. Het WCF-uitbreidbaarheidsmodel is bedoeld ter ondersteuning van aangepaste scenario's door u in staat te stellen systeemgedrag op elk niveau te wijzigen, zelfs tot het punt van het vervangen van het hele toepassingsmodel. In dit onderwerp vindt u een overzicht van de verschillende uitbreidingsgebieden en verwijst u naar meer informatie over elk gebied.

Gebieden om uit te breiden

U kunt het volgende uitbreiden:

  • De runtime van de toepassing. Dit breidt het verzenden en verwerken van berichten voor de toepassing uit. Dit gebied omvat ook het uitbreiden van het beveiligingssysteem, het metagegevenssysteem, het serialisatiesysteem en de bindings- en bindingselementen die de toepassing verbinden met het onderliggende kanaalsysteem.

  • Het kanaal en de kanaalruntime. Dit breidt het systeem uit dat op berichtniveau functioneert en ondersteuning biedt voor protocol, transport en codering.

  • De hostruntime. Dit breidt de relatie van het hosttoepassingsdomein uit naar het kanaal en de runtime van de toepassing.

De Toepassingsruntime uitbreiden

In WCF-toepassingen is er een onderscheid tussen berichten die zijn bestemd voor een bijbehorend kanaal en berichten die bestemd zijn voor de toepassing zelf. Kanaalberichten ondersteunen bepaalde functionaliteit die betrekking heeft op kanalen, zoals het tot stand brengen van een veilig gesprek of het tot stand brengen van een betrouwbare sessie. Deze berichten zijn niet beschikbaar voor de runtime van de toepassing; ze worden verwerkt voordat de toepassingslaag wordt betrokken.

Toepassingsberichten bevatten gegevens die zijn bestemd voor een client- of servicebewerking die u of uw klant heeft gemaakt. Deze berichten zijn beschikbaar voor het extensiesysteem op toepassingsniveau in bericht- of objectvorm, afhankelijk van uw behoeften.

Alle berichten passeren het kanaalsysteem; alleen toepassingsberichten worden vanuit het kanaalsysteem doorgegeven aan de toepassing. Als u nieuwe functionaliteit op kanaalniveau wilt maken, moet u het kanaalsysteem uitbreiden. Als u nieuwe functionaliteit op toepassingsniveau wilt maken, moet u de service of clientruntime uitbreiden (respectievelijk dispatchers en kanaalfactory's). Zie Uitbreiden van ServiceHost en de servicemodellaag voor meer informatie over het uitbreiden van de runtime van de toepassing.

Beveiliging uitbreiden

Als u aangepaste beveiligingsmechanismen zoals tokens en referenties wilt bouwen, moet u het beveiligingssysteem uitbreiden. Zie Beveiliging uitbreiden voor meer informatie.

Metagegevens uitbreiden

Als u uw metagegevens op een andere manier wilt weergeven dan de standaardwaarde, moet u het metagegevenssysteem uitbreiden. Zie Het metagegevenssysteem uitbreiden voor meer informatie.

Serialisatie uitbreiden

Als u aangepaste coderingsprogramma's wilt maken, gegevens surrogaten of ander werk wilt leveren met betrekking tot de aanpassing van overgedragen gegevens, moet u het serialisatiesysteem uitbreiden. Zie Uitbreidingsprogramma's en serialisatieprogramma's voor meer informatie.

Bindingen uitbreiden

Als u transport- of protocolkanalen wilt koppelen aan de toepassingslaag, moet u het bindingssysteem uitbreiden. Zie Uitbreidingsbindingen voor meer informatie.

Het kanaalsysteem uitbreiden

Zie De kanaallaag uitbreiden als u kanalen wilt maken die ondersteuning bieden voor aangepaste transporten of protocolfunctionaliteit.

Het servicehostingsysteem uitbreiden

Als u het servicebrede toepassingsmodel wilt wijzigen, moet u klasse uitbreiden System.ServiceModel.ServiceHostBase . Zie Uitbreiden van ServiceHost en de servicemodellaag voor meer informatie.

Als u de relatie tussen het domein van de hostingtoepassing en de servicehost wilt wijzigen, moet u de System.ServiceModel.Activation.ServiceHostFactory klasse uitbreiden. Zie Hosting uitbreiden met ServiceHostFactory voor meer informatie.

Zie ook