2011-08-25 18 views
9

Ho un'app di asp.net mvc scritta un paio di anni fa e più la aggiungo, tendo a fare chiamate REST/AJAX al controller per ottenere i dati da esso.Sarebbe meglio usare Asp.net mvc o servizi web?

La mia domanda è continuare a lavorare in questo modo o dovrei esporre i dati come servizi REST separati (modo WCF di fare le cose)?

Sembra che il limite di ciò che un'app per mvc è stata progettata per fare e il design del servizio web si stia confondendo. L'app Mvc (a parte la separazione) inizialmente produceva pagine Web, ora viene utilizzata per fornire dati basati sui servizi.

JD

risposta

4

vedo due possibili scenari

singolo web app. In questo caso si continuano ad aggiungere metodi al controller. Questo è utile perché mantiene le funzionalità del controller in un unico posto e ti farà risparmiare tempo. Non è adatto se il controller viene chiamato da un'altra applicazione Web. Semplice, brutto ma funziona, richiede poco tempo per lo sviluppo e molto tempo per la manutenzione.

Web app + servizio Web. È possibile separare i metodi di recupero dei dati nell'interfaccia del servizio. Il lato positivo è che il sistema diventa molto più modulare e indipendente, il che fa bene alla manutenzione. Se si prevede che ci saranno altri metodi che verranno aggiunti presto o se i metodi sono utilizzati da altre applicazioni Web, allora questo percorso è probabilmente migliore dell'estensione dell'attuale web app. Il lato negativo è che il nuovo servizio richiederà un refactoring per l'attuale applicazione web e richiederà tempo per essere sviluppato/testato ecc. Questa decisione porta più complessità, ma rende l'applicazione facile da estendere.

2

penso WCF ha diversi vantaggi rispetto MVC se si sta rigorosamente l'invio dei dati, in particolare in termini di formati di dati che sono inequivocabili (SOAP vs. utilizzando codifiche fatta in casa), strumento di supporto a livello di settore, eccellente supporto per diversi tipi di binding (cioè non solo HTTP), vari servizi di trasporto, buone capacità di registrazione e tracciamento, ecc.

Alla fine però, si riduce a: c'è un vantaggio abbastanza significativo per andare con WCF per il tuo caso. Questo è qualcosa che dovresti capire da solo.

Problemi correlati