1.495 messaggi dal 27 dicembre 2005
Quale differenza c'è tra i servizi esposti da WCF e WebApi ?

A me sembra facciona la stessa cosa !!!???
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,
la differenza tra le due tecnologie consiste nel numero di funzionalità offerte e nell'ambito di utilizzo.
Web API serve a realizzare un servizio destinato ad essere consumato da client web, cioè da applicazioni che siano in grado di effettuare richieste HTTP e questo include una grande varietà di client, dall'applicazione web all'applicazione nativa su una varietà di piattaforme.
Le richieste dunque avvengono secondo il modello request/response e i dati inclusi nella risposta sono codificati in semplice JSON o in XML, che garantiscono il massimo dell'interoperabilità.

Inoltre, Web API è pensata per creare API con architettura REST, cioè incentrate sul concetto di risorsa. I metodi HTTP come GET, POST, PUT e DELETE sono usati, per convenzione, per esprimere operazioni su quella risorsa (es. con POST /prodotti si intende l'inserimento di un nuovo prodotto).
Questo è un tipo di API idoneo ad applicazioni data-driven, dove vuoi semplicemente poter leggere, inserire, modificare o cancellare delle risorse.

Un servizio WCF, invece, puoi ospitarlo non solo in IIS affinché sia consumato da client web, ma anche in applicazioni Windows o Console. Può esporre degli endpoint che usano il trasporto TCP e quindi client e server possono comunicare in maniera più efficiente, con un protocollo di serializzazione binaria, ed eventualmente in modalità duplex.
Dunque WCF è idoneo ad essere usato in scenari server-to-server, dove magari vuoi garantire la confidenzialità e l'attendibilità delle comunicazioni grazie a WS-Security, una specifica della famiglia WS-* che ad esempio consente l'autenticazione e la firma dei messaggi basate su certificati.
Anche con WCF puoi creare servizi RESTful (vedi ad esempio WCF Data Services) ma è pur sempre WCF e quindi è "appensatito" o "arricchito" (dipende dai punti di vista) dello stack WS-*. Puoi usarlo anche per esporre delle service operations, cioè procedure di business che puoi invocare da remoto. Questo tipo di architettura si presta maggiormente ad applicazioni con interfaccia task-based.

ciao,
Moreno

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.