ASP.NET MVC 5 vs. AngularJS / ASP.NET WebAPI [chiuso]


86

Attualmente sto valutando il modello di programmazione per la creazione di future applicazioni Web nella mia azienda. Quindi deciderò tra ASP.NET MVC 5 (con Razor Views) e AngularJS con ASP.NET WebAPI. Quali sono i vantaggi / svantaggi di questi due modelli di programmazione?


4
Bene ... se hai intenzione di ancorare AngularJS ad ASP.NET ... non gli stai davvero dando un confronto equo. È come se stessi cercando di togliere Javascript da Angular, e non è così che dovrebbe accadere. Angular è pensato per essere il tuo framework per il client e funziona meglio quando usi pochissimi modelli lato server: simple-talk.com/blogs/2013/10/16/… . Cose come l'autenticazione e simili hanno senso, ma lascia perdere il rasoio e vai direttamente a .NET e crea un livello API per Angular con esso.
Brian Vanderbusch

3
Penso che ciò di cui hai veramente bisogno sia solo AngularJS con ASP.NET WebAPI. Penso che abbia il meglio di entrambi i mondi. Ho provato a mescolare MVC con AngularJS e non è stata un'esperienza molto piacevole quando ho riscontrato problemi, quindi suggerirei di non entrare in quella trappola. Una cosa che mi manca di questo approccio sono le visualizzazioni basate sul dispositivo che MVC con il motore Razor può fornire. Ci deve essere un modo per superare questo problema, ma non ho ancora sperimentato abbastanza.
Kiran

Avendo lavorato con Angular solo per pochi mesi (anche se sembra un'eternità), non tornerei mai più a Razor. Più lavori con Angular, più lo apprezzi: flessibilità e potenza, a volte sembra una magia. Dovrei dire che l'API Web non funziona bene con Angular, almeno nel modulo POST, ma potrebbe essere risolto. Non è una transizione facile per un programmatore C # dal punto di vista della sintassi, poiché javascript non è un linguaggio fortemente tipizzato. Ma superando questo ostacolo, imparerai ad apprezzare Angular.
Florida G.

Il rasoio è una cosa orribile anche tra i motori di modellazione. Noterai un drastico aumento della produttività quando usi Angular su qualsiasi motore di template (Jade, manubrio, rasoio ecc.). Utilizza un backend che serve JSON (può essere web-api, node-express o PHP) e un front-end angolare. E giusto per notare, knockout non è così buono come angolare ...
Cordiali saluti

1
@BrianVanderbusch Non sono proprio sicuro di cosa stai parlando. Il backend non ha alcuna importanza. Potrebbe essere qualsiasi cosa. Sta dicendo che utilizzerà ASP.NET come backend e angolare come front-end lato client. Angular deve ancora effettuare chiamate al server per i dati. Questo non ha nulla a che fare con il non dare ad Angular un giusto confronto.
user441521

Risposte:


103

I miei 2 centesimi. Personalmente preferisco le visualizzazioni HTML pure, un front-end interamente angolare insieme a un back-end Web API / EF / SQL Server, praticamente senza Razor. Razor è un'astrazione per aiutare i programmatori a rendere HTML, in questi giorni tutti stanno arrivando alla conclusione che rimuovere queste astrazioni è un'idea migliore, da qui l'evoluzione di ASP.NET dai moduli Web, a MVC ecc. Non è davvero difficile per gli sviluppatori arrivare a gestisce l'HTML e utilizza un front-end angolare, inoltre questo semplifica il lavoro dei designer dell'interfaccia utente, hanno HTML puro e JSON / Javascript, non hanno bisogno di capire MVC, Razor, controller e azioni. Lavoravamo completamente su MVC, nel nostro ultimo progetto siamo passati a un back-end Web API e un front-end angolare, e abbiamo notato che la produttività del nostro designer dell'interfaccia utente è notevolmente migliorata.


3
E vorrei aggiungere a questo, con angular puoi aggiornare i tuoi modelli dinamicamente, il che è ovviamente fantastico
Willem D'Haeseleer

4
Sì, quando si tratta di sviluppare un front-end più dinamico e reattivo rispetto ai costi di sviluppo, non c'è davvero concorrenza.
Mohammad Sepahvand

@ user189756 come si distribuiscono le pagine HTML al client quando si utilizza l'approccio API Web?
Yoav

@Yoav Questa è una vecchia risposta, ma all'epoca era un host MVC con un controller singolo.
Mohammad Sepahvand

1
@Yoav Precisely. Ma aggiungerò che anche l'altra risposta è eccellente, soprattutto tenendo conto di cose come la SEO.
Mohammad Sepahvand

53

Credo che tu non possa fare paragoni. AngularJS è un framework SPA (Single Page Application) mentre ASP.Net MVC utilizza il modello standard in cui si naviga tra le pagine. Se vuoi costruire una SPA è deciso da fattori come

  • Vuoi SEO. Quale la maggior parte di questi ricchi framework JS hanno un supporto limitato.
  • Come puoi strutturare la tua app come SPA o più SPA.
  • Il passaggio da un linguaggio C # indipendente dai tipi alla programmazione JavaScript è una sfida.
  • Imparare AngularJS e usarlo in modo efficace.

Usiamo la vista standard MVC 5 razor per configurare le viste AngularJS iniziali in modo che tu possa persino combinarle insieme se necessario.

Vedi questa risposta Puoi usare AngularJS con Parse.com? per derivare più contesto.


12
"... mentre ASP.Net MVC utilizza il modello standard in cui si naviga tra le pagine." Questo è semplicemente falso. Le app MVC, utilizzando il rasoio, possono essere progettate come SPA molto facilmente.
Sam

7
AngularJS non è una SPA limitata, puoi benissimo costruire un sito web multipagina con angolare e deep linking ....
Giridhar Karnik

3
AngularJS non è una SPA. Puoi usarlo come una SPA, ma non è automatico o necessario. Devo aggiungere la dipendenza di routing ng-route per avere anche il routing. AngularJS è incredibile e può essere un'ottima SPA, ma è semplicemente sciocco dire AngularJS = SPA.
Tom Stickel

5
TypeScript è una buona opzione per js indipendente dai tipi.
Kyle JV

9
AngularJS è stato creato da Google. Se manca di SEO stanno facendo qualcosa di sbagliato.
Worthy7
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.