Oggi mentre stavo provando a testare il porting di alcuni Web Service basati sul framework .NET 1.1 in WCF mi sono trovato di fronte all'analisi del tipo di endpoint binding da adottare per quanto concerne il "service contract": in particolare mi sono concentrato sulla differenza tra WSHttpBinding o BasicHttpBinding. Avevo già letto da qualche parte che in realtà WSHttpBinding, a differenza di BasicHttpBinding, supporta le specifiche WS-* quindi permette di fatto di implementare un binding più "avanzato". Dopo un piccolo approfondimento sono riuscito a stilare alcune differenze che ritengo fondamentali (e che magari potreste aiutarmi a completare ;)).
WSHttpBinding
- E' basato su SOAP 1.2 e sulle specifiche WS-Addressing (supporto a messaggi asincroni, correlazione tra messaggi, meccanismi di indirizzamento "transport-neutral"), aumenta la complessità dell'interfacciamento con il servizio esposto.
- Supporta WS-Trust
- Supporta transazioni distribuite
- Supporta la sicurezza sia a livello di trasporto (SSL) che al ivello di messaggio (WS-Security).
BasicHttpBinding
- Permette di operare su un profilo WS-I, quindi assicura un alto livello di interoperabilità con i Web Service esistenti (client e service)
- E' basato su SOAP 1.1
- Supporta la sicurezza a livello di trasporto (SSL)
Dopo alcuni test ho notato una certa differenza di performace tra le due scelte... forse questo deriva dal fatto che in modalità BasicHttpBinding le feature riguardanti la sicurezza sono disabilitate di default al contrario di WSHttpBinding, implicando un overhead minore.
Technorati tags: WCF