Quali funzionalità mancano dall'implementazione del resto di WCF

2

In questa domanda sull'utilizzo di WCF e / o WebAPI, c'è questa citazione:

I was asking myself the same question until I found this WCF and ASP.NET Web API comparison page on MSDN (with my own emphasis below):

Use WCF to create reliable, secure web services that accessible over a variety of transports. Use ASP.NET Web API to create HTTP-based services that are accessible from a wide variety of clients. Use ASP.NET Web API if you are creating and designing new REST-style services. Although WCF provides some support for writing REST-style services, the support for REST in ASP.NET Web API is more complete and all future REST feature improvements will be made in ASP.NET Web API. If you have an existing WCF service and you want to expose additional REST endpoints, use WCF and the WebHttpBinding.

Parafrasato: "Il supporto per REST in WebAPI è più completo e i miglioramenti futuri saranno in WebAPI"

Domanda: In che modo WebAPI è più "completo" e "ricco di funzionalità"? Cosa è incompleto su WCF? Cosa è stato aggiunto a WebAPI?

E al contrario, per quanto riguarda il REST, c'è qualcosa in WCF che non è in WebAPI?

    
posta WernerCD 03.09.2017 - 19:18
fonte

1 risposta

2

WCF può essere piuttosto complicato se lo si lascia, ma è piuttosto facile se si ha bisogno di SOAP di base e questo è vero anche se occorrono qualche opzione fronzoli e più esotica per il trasporto, l'autenticazione o il protocollo. È anche utile perché l'interfaccia viene descritta (se lo si desidera) tramite WSDL. Non lo otterrai con WebAPI ma è una cosa REST vs SOAP.

L'API REST / Web è anche abbastanza semplice ma, a mio parere, almeno in realtà è più difficile di WCF in alcuni modi. Ci sono un sacco di annotazioni sui metodi, mark up, valori di testo magico interpretati con metodi, uso di riflessioni, ecc. Che rendono difficile seguirli se cambi nomi e cose. Inoltre non esiste alcun equivalente WSDL, quindi è necessario conoscere già i metodi e le strutture.

Cavalli per i corsi. Personalmente utilizzo REST dal browser al sito Web DMZ AJAX, quindi WCF per l'interfaccia utente del sito Web ai servizi all'interno della LAN.

Browser < ---- > REST < ----- > Website < ---- > WCF < ------- > ServiceLayer < ---- > DB, altro le cose.

Se dovessi scegliere uno e uno solo sarebbe REST semplicemente perché si adatta meglio al browser. Non lo faccio però, quindi uso WCF per il back-end perché offre maggiore semplicità e sicurezza di tipo. Questa potrebbe essere una funzione della mia conoscenza limitata e non generalmente vera.

    
risposta data 04.09.2017 - 07:10
fonte

Leggi altre domande sui tag