2012-12-14 21 views
6

Sto testando ASP.NET MVC 3.Perché dovrei usare WCF con MVC?

E per una chiamata Ajax, posso utilizzare un metodo controller MVC o un servizio WCF. Ma perché dovrei usare WCF, se posso farlo con MVC?

Le mie domande sono: Devo utilizzare i servizi WCF con MVC o no? E perché ? E in tal caso?

Grazie,

risposta

3

MVC va bene, davvero non hanno bisogno di WCF per questo. MVC crea una sorta di API REST (tutti i metodi di azione ottengono il proprio URL che è possibile utilizzare per chiamare il metodo), quindi è possibile utilizzarlo.

+0

Grazie, è quello che pensavo. Ma ora ne sono sicuro;) – Tkanos

7

WCF è un framework utilizzato per lo sviluppo di servizi Web. L'idea di un servizio web è che disaccoppia le funzionalità utilizzate per fornire dati grezzi dalle funzionalità utilizzate per il trattamento dei dati e per fornirli all'utente finale. Ci sono alcuni vantaggi:

  • Se si fornisce un'API, non si sa come verranno utilizzati i dati. Vuoi semplicemente fornire dati grezzi a un set di applicazioni e lasciare che quelle applicazioni gestiscano il resto. Un servizio web fa proprio questo ... apre il livello dati di un'applicazione lasciando il resto chiuso.
  • È possibile migliorare la maneggevolezza del livello dati applicando un accoppiamento lento. Accoppiamento lento significa che i componenti della vostra applicazione non sono intrecciati l'uno con l'altro. Questa è una buona cosa perché rende più facile apportare modifiche a parti della tua applicazione senza interrompere il resto. Ad esempio, se si capisce che una determinata chiamata di funzione restituirà un oggetto JSON impostato, è possibile apportare modifiche alla struttura della tabella del database che fornisce dati per quell'oggetto senza interferire con il codice dell'applicazione che consuma. Questo funziona finché si mantiene il contratto dati predefinito fornendo sempre lo stesso tipo di dati nello stesso formato. D'altra parte, se le query del database, le stringhe di connessione e simili sono tutte codificate nell'applicazione, è molto più difficile modificare la logica del database.

Nel tuo caso, se stai solo sviluppando un'applicazione web di piccole e medie dimensioni e non hai intenzione di avviare un'API o un servizio simile, probabilmente non c'è bisogno di WCF.

Tenete presente tuttavia che, mentre probabilmente non c'è bisogno di scrivere un servizio WCF per l'applicazione, si dovrebbe comunque cercare di loosely-paio i livelli di applicazione come si farebbe con un servizio. Puoi farlo dividendo il codice di accesso ai dati o il codice di definizione dell'oggetto (entità) in proiezioni separate. L'accoppiamento lento, che sia implementato con WCF o solo MVC, rende la manutenzione del progetto più semplice, più semplice e più economica ed è generalmente una pratica molto buona da rispettare.

+0

Grazie, è quello che pensavo. Ma ora ne sono sicuro;) – Tkanos