Domanda

Ho fatto un po 'di lavoro in passato usando WCF Webapi e ho apprezzato molto le sue caratteristiche, sto giocando con API Web ASP.NET al momento e sembra completamente diverso (cioè completamente rimosso daWCF).

Qualcuno sa quali caratteristiche di WCF WebAPI sono incluse in ASP.NET 4 Web API?

È stato utile?

Soluzione

Ive ha fatto un po 'più di lettura attorno a questo e ho trovato alcune pagine da MS People su questo:

http://wcf.codeplex.com/wikipage?title=How%20to%20Migrati%20Di%20WCF%20Deb%20API%20To%20asp.net%20To%20asp.net%20Ta%20api :

Le astrazioni WCF Web API mappa su ASP.NET Web API approssimativamente come segue

WCF API Web -> ASP.NET Web API

    .
  • Service -> Controller API Web
  • Funzionamento -> Azione
  • Contratto di assistenza -> Non applicabile
  • Endpoint -> Non applicabile
  • URI Modelli -> ASP.NET Routing
  • gestori di messaggi -> STESSO
  • Formatters -> STESSO
  • Guarisatori di funzionamento -> Filtri, Binding del modello

    e http://wcf.codeplex.com/discussioni/319671

    Lo stack integrato supporta le seguenti funzionalità:

      .
    • Modello di programmazione HTTP moderno
    • Supporto completo per routing ASP.NET
    • Negoziazione del contenuto e formattes personalizzati
    • Modello vincolante e convalida
    • filtri
    • composizione query
    • Test facile da unità
    • Impostazioni migliorate di controllo (IOC) tramite DEPENDENDRESOLVER
    • Configurazione basata su codice
    • Auto-host

Altri suggerimenti

Da quello che ho imparato, Microsoft ha fatto un po 'di confusione di denominazione qui.

Suppongo che tu sappia che cosa riguarda il WCF, questo grande quadro è creato in cima a XML per consentire all'utente di creare servizi distribuiti con un'ampia varietà di tecnologie (dal sapone per riposare a MSMQ ecc.). È difficile da usare l'inferno (per me almeno) e richiede un sacco di bootstrap per averlo funzionato, e alla fine ci hanno capito e ha iniziato a fornire una configurazione predefinita per i servizi HTTP semplici (WCF REST Starter Kit?). ASP.NET MVC stava guadagnando slancio e alcune delle caratteristiche fornite (ad esempio Argomenti automatici corrispondenti) Iniziati a presentarsi in WCF.

Ora è la situazione:

.

Annuncio: WCF Web API è ora API ASP.NET Web API! API ASP.NET Web Rilasciato con ASP.NET MVC 4 Beta. L'API Web WCF e il supporto WCF per JQuery Content su questo sito rimosso entro la fine del 2012.

http://wcf.codeplex.com/wikipage? Titolo= Ottenere% 20Starting:% 20building% 20A% 20Simple% 20Web% 20pi

E questo è migliore IMHO.

Sono abbastanza sicuro che dovrebbe essere possibile ospitare ASP.NET MVC4 Webapi in cima al WCF (se ne hai mai bisogno), ma non riesco a trovare la documentazione che può dimostrarmi giusto (o sbagliato). .

Aggiorna (non può adattarsi come commento): Aspetta, c'è un enorme diverso tra "spostare un sottoinsieme della tecnologia di comunicazione da una libreria / framework a un altro" e "Sostituisci wcf". Personalmente ritengo che WCF sia stato progettato per qualche tipo di concetto di comunicazione e ha un design piuttosto cool, ma il calcolo distribuito è in qualche modo spostamento su nuove (e più semplici) soluzioni (guarda il sapone ricco di funzionalità contro il riposo flessibile magro e flessibile Sebbene molte persone usino ancora il riposo in modo rpc), e penso che questo tipo di schemi di programmazione si adatta meglio all'architettura MVC rispetto al WCF. Lo sforzo è stato messo a progettare un semplice modo di costruire / consumare servizi web in cima al WCF, ma alla fine hanno scoperto che non era la soluzione giusta.

Per non parlare del fatto che molti sviluppatori ora usano ASP.NET MVC e vuoi fare i servizi Web di riposo per la loro app Web, scherzare con il WCF è spesso eccessivo per questo tipo di cose, e l'ho sperimentato sulla mia pelle.

Penso che il meccanismo di routing sia fantastico e il modo giusto per andare, e se guardi da vicino, comprendono parte di esso (con nomi e tipi diversi, ma il modello era lì) in WCF. Quindi sì, penso che se MS non respinge quella parte del WCF Noi dovrebbe farlo. Per rispondere rigorosamente, no, non penso che avrai mai trovato il webget / webinvoke in ASP.NET MVC *, non è adatto.

Yeah L'auto-host è probabilmente l'unico bit di WCF contenuto in ASP.NET MVC4 in questo momento.

Sembra che WCF stesso sia in qualche modo morente o almeno diventando molto meno importante, allora avrebbe dovuto essere e per questo ha anche uno sforzo di sviluppo molto meno messo nel suo set di funzionalità. Le nuove funzionalità in WCF sono più di più cosmetico.

WCF è stato progettato come trasporto / protocollo indipendente per la comunicazione INTER del processo. Anche l'idea è stata astrazione indipendente, è stata per lo più costruita sopra la pila di sapone. Quando WCF 3.5 ha portato il supporto per il riposo è stato per lo più hackerato perché il riposo è tutto sulla dipendenza dei trasporti. L'utilizzo dell'API indipendente da trasporto per supportare la comunicazione Inter Process che viene effettuata attraverso l'uso diretta tramite caratteristiche di trasporto è apparsa. Poiché il risultato MS ha rilasciato il kit di avviamento API a riposo WCF che non ha mai raggiunto RTM, ma è stata l'anteprima delle funzionalità che è stata successivamente inclusa in WCF 4 e infine in API web .NET 4.5 o WCF. Poiché il riposo è dipendente dal trasporto e attualmente utilizzato solo con HTTP (anche è teoricamente possibile utilizzare altri protocoli di trasporto) L'API è stato spostato in .NET Part che è più adatto per l'elaborazione HTTP - Attualmente molto popolare ASP.NET MVC.

WCF Web API è sostituito da ASP.NET Web API che prende funzioni da WCF Web API e si unisce con le funzionalità da ASPNET MVC. ASP.NET Web API è un quadro nuovo (02/2012) per costruire e consumare servizi HTTP e una piattaforma per la costruzione di servizi riposanti.

Sebbene non sia nella domanda originale che vale la pena notare che il WCF è vivo e il suo supporto per il resto rimane utile quando si dispone di servizi SOAP (WS- *) esistenti, ma si desidera aggiungere riposo per raggiungere più client.

.

Riferimento

    .
  1. Codeplex: WCF Web API è ora API ASP.NET Web API
  2. codeplex: Daniel Roth sul futuro del wcf
  3. .
  4. Chanel9: Dan Roth sulla nuova API Web ASP.NET

Il seguente estratto trovato su Questa pagina MSDN riassume bene questo dilemma.

Utilizzare WCF per creare servizi Web affidabili e sicuri accessibili su una varietà di trasporti.Utilizzare ASP.NET Web API per creare servizi basati su HTTP accessibili da un'ampia varietà di clienti.Utilizzare API ASP.NET Web se stai creando e progettando nuovi servizi di riposo. Sebbene il WCF fornisca un po 'di supporto per la scrittura dei servizi di stile di riposo, il supporto per il riposo in ASP.NET Web API è più completo e tutti i futuri miglioramenti della funzione di riposo saranno effettuati in ASP.NET Web API. Se tuAvere un servizio WCF esistente e si desidera esporre gli endpoint di riposo aggiuntivi, utilizzare il WCF e il WebHTTTPINGING.

Qui è un buon articolo sul servizio Web, wcf e web API http://goo.gl/t29a5b

.

Servizio Web

    .
  • in base al sapone e ritorno dati XML
  • Supporta solo il protocollo HTTP. Supporta solo il protocollo HTTP.
  • consumato dal cliente che è in grado di capire i servizi di sapone XML.
  • può ospitare su IIS. Può essere ospitato solo su IIS.
  • facile da imparare e capire.

    WCF

      .
    • in base al sapone e restituire i dati XML. Sapone è pesante Confronta poi JSON e il suo sovraccarico su rete anche.
    • La versione avanzata dei servizi Web supporta più protocolli come TCP, http, https, pipe denominati, MSMQ tramite configurazione.
    • Più affidabile quando sia il client che il server hanno .NET.
    • La sua implementazione e configurazione è complessa
    • consumato dal cliente che è in grado di capire i servizi di sapone XML.
    • Auto-hosting, IIS e utilizzando i servizi Windows.

      Web API (Web API 2.0)

        .
      • Design specificamente per costruire servizi di riposo HTTP su .NET Framework.
      • API Web facilmente leggibile facilmente e utile come JSON.
      • Supporta tutte le funzionalità di HTTP come URL, Richiesta / Risposta, Intestazioni, Caching e Versioning.
      • Web API Supporta molti verbi HTTP come ottenere, post, mettere, eliminare ecc.
      • API Web è apolidi.
      • API Web supporta le funzioni MVC (controller, risultati d'azione, routing, filtro, raccoglitori di modelli, contenitore IOC o iniezione di dipendenza)
      • L'API Web può essere ospitato in auto-ospitato, ospitato con l'applicazione e su IIS.
      • Owin (Apri interfaccia Web per .NET) è utilizzato per l'auto-hosting.

ASP.NET Web API è leggero e supporto di riposo incorporato.È più adatto per applicazioni mobili. WCF è gonfio con più opzioni.Dipende dalla complessità del sistema per selezionare uno di questi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top