2015-05-07 42 views
8

Ho una certa esperienza nelle tre tecnologie, MVC, Web API e AngularJS.ASP.NET MVC o API Web ASP.NET + AngularJS

Ma ho usato solo MVC + jQuery e solo Web API + AngularJS.

Ho trovato somearticles sulla combinazione di MVC + AngularJS, ma in realtà non ho capito: perché devo mescolarli?

Quindi la mia domanda ora: - Quali i pro ei contro di miscelazione "MVC + AngularJS" over "Web API + AngularJS"

Edit: Come ottenere il migliore dei mondi miscelando MVC + Angolare? Oppure utilizzando l'API Web + Angular non mi mancherà nulla (che è ciò che penso sia il caso)? Oppure cosa mi mancherà di MVC se ho deciso di utilizzare solo Web API + Angular, soprattutto quando utilizzo il targeting per SPA?

risposta

12

Il vantaggio principale dell'utilizzo di MVC + Angular over Web API + Angular è che il server può manipolare direttamente il markup html all'interno di una vista prima di inviarlo al client. Nel caso di Web API, il server produce solo un modello serializzato JSON e la vista è completamente preoccupante per Angular.

Un altro motivo per preferire l'approccio MVC sarebbe se non si desidera utilizzare l'intera gamma di funzionalità angolari. Ad esempio, è possibile scegliere di utilizzare MVC per il routing anziché il provider di route angolare.

Uno svantaggio dell'approccio MVC + Angular è che il codice html conterrà codice misto angolare e rasoio. Questo probabilmente lo renderà meno leggibile e chiunque lavori su di esso dovrà essere in grado di lavorare con entrambe le lingue.

Inoltre, se si finisce per utilizzare solo un piccolo sottoinsieme di angolari, potrebbe essere una buona indicazione che si potrebbe invece utilizzare un framework javascript più semplice. Ad esempio, se si utilizza solo l'associazione modello, è possibile utilizzare Knockout.

Infine, potresti prendere in considerazione l'utilizzo di MVC e Web API insieme a Angular nel tentativo di ottenere il meglio da entrambi i mondi. Ad esempio, potresti utilizzare le visualizzazioni MVC per il markup correlato SEO e utilizzare l'API Web per esporre il tuo modello.

+0

Questa è una visione piuttosto semplicistica di pro e contro direi? – BenjaminPaul

+3

@BenjaminPaul Sentitevi liberi di elaborare fornendo una risposta. – elolos

+0

Al primo paragrafo si menziona che il vantaggio principale di MVC è che il server può manipolare direttamente il markup html all'interno di una vista prima di inviarlo al client, ma non si menziona cosa sia così preciso in proposito? (eccetto la prospettiva SEO che hai già citato alla fine della tua risposta) – BornToCode

0

Si potrebbe davvero andare solo per WebAPI + AngularJS. Se inizi a costruire da zero, non c'è bisogno di MVC. Puoi semplicemente pubblicare uno statico index.html che attiva l'applicazione AngularJS e prendila da lì.

Ho realizzato progetti come questo in passato, ma ho anche realizzato un progetto in cui abbiamo anche deciso di installare un'app MVC con AngularJS e WebAPi. Con ciò abbiamo creato diverse SPA all'interno della webapp. Penso di aver sentito il termine "tasche di SPA" da qualche parte probabilmente in .NET Rocks !.

Quindi nel caso in cui sia necessario visualizzare dati statici, è sufficiente lanciare rapidamente qualcosa in MVC. Se c'è una pagina che utilizza molta interazione dell'utente, servila con un semplice controller + vista e aggancia tutto il comportamento attraverso AngularJS e WebApi. In breve: consente di utilizzare l'approccio "il meglio dei due mondi", in cui è possibile visualizzare rapidamente dati statici tramite MVC e sfruttare AngularJS nel caso in cui si disponga di una pagina molto interattiva.

0

Non sono sicuro che domande come questa abbiano una risposta corretta poiché la maggior parte delle volte le tecnologie utilizzate sono legate a requisiti aziendali specifici.

Se si sta sviluppando un'applicazione Web di back-office, accessibile solo per utenti registrati (o un piccolo gruppo di persone), utilizzando WebAPI + Angular aumenta l'esperienza utente complessiva in termini di velocità, prestazioni e reattività.

Se stai sviluppando un sito web che è dedicato principalmente agli "utenti ospiti", ha bisogno di SEO, ha bisogno di essere indicizzato, ha requisiti di usabilità complessi ecc. Dovresti dimenticare tutto ciò che è interessante connesso all'applicazione a singola pagina (I credi alla maggior parte delle app WebAPI + Angular) e passa agli strumenti che ti consentono di soddisfare esigenze specifiche.

Non penso che dovresti considerare le differenze tra MVC + Angular vs WebAPI + Angular - la domanda è di utilizzare Angular oltre all'app MVC + jQuery. Se hai molta logica nelle tue opinioni (non logiche di business ovviamente) e vuoi evitare di legare i dati a un intero gruppo di oggetti jQuery, richiedi Angular e rendi la tua vita più facile. Il core angolare non ha alcuna funzionalità di routing, quindi affermare che può essere utilizzato solo con l'applicazione SPA/SPI è un po 'stupido.

Per la maggior parte dei miei progetti uso jQuery per manipolare DOM e Angular per manipolare i dati.