PV178 jaro 2011  Nástroj pre vývoj a nasadzovanie služieb vo Windows  Nachádza sa v System.ServiceModel  Framework pre budovanie aplikácií, ktoré komunikujú  Používame od vnútroprocesovej po internetovú komunikáciu  Služba je zverejnené jednotka funkcionality  Služby používame pre vývoj distribuovaných aplikácií, princíp SOA  Služby a klienti interagujú cez posialanie správ  Správy sú zväčša SOAP  Používajú mnoho transportov, nie len http  Definícia služby a technológie/standardu pre prenos správ služby je oddelená – transparentná  Poskytuje Metadata – môže komunikovať aj s non-WCF službami a klientmi  Klient vždy používa proxy pre komunikovanie so službou  Proxy poskytuje rovnaké metódy ako službazaobaľuje serializaci a réžiu komunikace  Svcutil.exe vygeneruje kód klientskej proxy zo skompilovaného kódu služby, alebo podľa metadát vystavenej služby  Visual Studio tiež vie vygenerovať proxy clienta  Vytvoriť WCF službu znamená definovať hlavne: ◦ Adresu služby - URI ◦ Binding – vybraťprotokol (prípadne nastaviť) ◦ Contract – definícia zverejnenej funkcionality  Týmto sme definovali Endpoint  Služba môže mať viac endpointov  Určuje kde sa služba nachádza  ://[:port]/[path] ◦ Príklady: http://example.com/ServiceA net.msmq://localhost  Musí byť unikátna pre každý endpoint  Určuje ako pristupovať k službe  Sú rôzne komunikačné vzory ◦ Synchrónne ◦ Asynchrónne – fire and forget ◦ Obojsmerné ◦ Instantné doručenie vs. Fronty ◦ Pesistentné správy ◦ Spolahlivosť  Kódovanie a formát správy  Bezpečnosť  Je predpripravený súbor nastavení  Jedna služba môže byť dostupná na cez viaceré bindings  Môžme detailne upravovať  Basic binding ◦ BasicHttpBinding ◦ Kompatibilné podľa starých WS  TCP binding ◦ NetTcpBinding ◦ Podporuje transakcie, spolahlivosť, bezpečnosť... ◦ Optimalizované pre WCF-to-WCF  IPC binding ◦ NetNamedPipeBinding ◦ Medziprocesová komunikace, najvýkonnejšia  Web Service binding ◦ WSHttpBinding ◦ http a https,možnosti podľa WS-* standardu  Dual WS binding ◦ WSDualHttpBinding ◦ Ako WS ale podporuje volania zo služby na klienta ◦ Nieje je na´to standard, teda nie je interoperable  MSMQ binding ◦ NetMsmqBinding ◦ Fronta hlavne pre výpadkové spojenia  Určuje čo služba poskytuje  Definuje operace zverejnené službou  Technologicky-neutrálny  Pomocou atribútov ◦ Trieda ktorá predstavuje službu sa označí  [ServiceContract] ◦ Metódy tejto triedy ktoré chceme zverejniť  [OperationContract]  Ak potrebujeme aby služba používala komplexný typ  DataContractSerializer serializuje náš typ do XML pre prenos  Definujeme pomocou atribútov podobne ako pri Service Contract ◦ [DataContract] ◦ [DataMember]  IIS  Narozdiel od webových služieb WCF služby možme hostovať aj vo vlastnom procese ◦ Class ServiceHost ◦ Je to nutné ak chceme iný ako http binding  WCF služba môže byť stavová ◦ PerCall ◦ PerSession ◦ Singleton  Endpointy sa dajú konfigurovať cez app.config ◦ VS2010 obsahuje konfiguračné „klikátko“  Konfigurace umožňuje zmenu nastavení aj po nasadení (napr pridať WS endpoint pre kompatibilitu)