2012-04-16 10 views
15

Ho un'applicazione che sto costruendo e per il momento, ho creato alcuni servizi web usando ASMX. Alla fine, l'applicazione verrà distribuita in azzurro. I servizi Web sono davvero semplici in quanto tutto ciò che fanno è chiamare una classe nella cartella AppCode che gestisce tutto il lavoro.asmx to WCF o Web API

Sarà meglio/più facile/più veloce/più performante spostare i miei servizi Web in WCF o in Web API?

Grazie per i vostri suggerimenti.

PS: Voglio aggiungere che i servizi Web dovranno funzionare in HTTPS. Al momento, sono su HTTP perché sono in modalità di sviluppo.

+1

Io voto per ServiceStack - http://www.servicestack.net – Phill

risposta

18

One-liner: se si dispone già di un codice funzionante ed è rischioso spostarlo su un'altra tecnologia, mantenere il codice funzionante.

A seconda di chi sta rispondendo.

Web API abbraccia HTTP e offre flessibilità non possibile con ASMX e WCF. Se ti interessa HTTP, negoziazione dei contenuti, tipi di media e hai bisogno del tuo servizio per essere chiamato da qualsiasi client (incluso AJAX) allora Web API.

Se è necessario essere in grado di utilizzare gli standard di sicurezza WS * (ad esempio utilizzando certificati X509, ADFS, ecc.), È possibile modificare l'associazione, servire client diversi utilizzando associazioni, estensibilità, ecc. Utilizzare WCF.

Se si dispone già di un codice funzionante, tutto ciò che interessa è RPC ei client useranno sempre ASMX e quindi si collegheranno con ASMX.

prestazioni

Nessun punto di riferimento, ma la mia sensazione viscerale, in ordine decrescente: API Web, ASMX, WCF

Più facile

in ordine decrescente: ASMX (dal momento che tu lo sai), API Web, WCF

più rapido sviluppo

Se tutti loro, sai API Web e ASMX poi WCF


PS: è bello raccogliere nuove tecnologie. Il modo in cui stanno andando le cose (e visto che ti stai già spostando ad Azure) è importante investire sulle nuove tecnologie.

+0

Ciao! I WS stanno lavorando in ASMX perché sono in fase di sviluppo. Voglio uscire da ASMX. Grazie per le considerazioni sulla sicurezza che hai menzionato; Devo farli funzionare in HTTPS. – frenchie

+1

@frenchie in questo caso, vorrei andare per Web API. – Aliostad

+0

Il servizio ASMX funziona bene tramite HTTPS su Azure. Sarà sufficiente aggiungere l'endpoint e assegnarlo al certificato. Non sto votando per usare ASMX nella produzione, ma solo per farti sapere che funziona. –