Technologie WCF je od FW v. 3.0 hlavní technologii pro komunikace na platformě .NET. Jedna o dosti obsáhlou technologii, řešící problematiku komunikací velmi komplexně. WCF služby se dají provozovat tj. hostovat buď na IIS nebo self host kódem pomoci ServiceHost nejčastěji například v NT service. U WCF služby nastavujeme její endpoint (nebo více endpointů). Pro každý endpoint nastavujeme Address, Binding a Contract. Pokud neuvedeme adresu bude služba dostupná na své základní adrese baseAddress (ta je pro hostování na IIS odvozena sama). Pro binding pak nastavujeme typ (atributem binding) a konfiguraci bindingu (atributem bindingConfiguration, pokud nechceme použít výchozí nastavení). Jako contract pak uvádíme interface naší služby. Jak k celé službě, tak k jednotlivým endpoitns pak ještě můžeme konfigurovat tzv. chování behaviors – tedy serviceBehaviors a endpointBehaviors. Veškěré toto nastavení můžeme provést buď pomoci konfiguračních souborů web.config / app.config nebo kódem (např. ServiceHostFactory třída apod.) Nejdůležitějším nastavením je právě typ bindings, kterým s volí způsob komunikace. Hlavní jsou: BasicHttpBinding - výchozí binding, přenos přes http/s protokol. Používá ASMX styl SOAP 1.1, podporuje streaming. Podporuje zabezpečení pouze na transportní vrstvě. Nejvíce se využívá pro komunikaci mezi .NET WCF a něčím jiným než .NET WCF (nedotnetová Web service). WsHttpBinding - je hlavní z bindingů WCF služeb, používá SOAP 1.2 protokol a využívá WS-* funkce. Podporuje transport i message zabezpečení a autentizaci. Není kompatibilní s klasickými webovými službami (ASMX), nepodporuje streaming. Nejvíce se používá pro internetové http/s komunikace NET WCF to .NET WCF. netTcpBinding - používá TCP protokol a je tak úspornější na objem než SOAP. Nahrazuje starší technologii .NETu – .NET remoting. Nejčastěji se používá pro intranetové přenosy .NET to .NET, podporuje Transport i Message security. webHttpBinding - služba pro klasické HTTP requesty ve formátu čistého XML (POX - plain old XML) nebo JSON (JavaScript Object Notation) pro Javascript klienty. Tento binding je již dnes ale nahrazován za plain/RESTful služby pomoci ASP.NET Web API. pollingDuplexHttpBinding - duální komunikace A teprve pak je jako poslední binding netNamedPipeBinding, ten se používá pro komunikaci mezi dvěma klienty (procesy) na stejném stroji.
|