asp.net mvc vs associazione modello angular.js

2

Quindi ho notato una tendenza negli ultimi anni degli sviluppatori web .net usando angular.js sul lato client delle applicazioni e sono diventato più curioso mentre gioco con angolare e lo paragono a come farei le cose in asp .net mvc.

Darò un rapido esempio di cosa mi ha davvero fatto pensare.

Recentemente mi sono imbattuto in una situazione al lavoro (lavoro in un ambiente .net) in cui avevo bisogno di creare una tabella vincolata ad una collezione di oggetti che aveva la capacità di aggiungere e rimuovere righe / elementi dalla collezione. Avevo un pulsante di aggiunta che creava un nuovo oggetto e aggiungeva una riga alla fine della tabella, e un pulsante di rimozione in ogni riga per rimuovere un particolare oggetto / riga. Usando asp.net mvc, mi sono trovato per la prima volta a fare una chiamata ajax al server per ogni operazione, aggiornando il modello lato server e aggiornando parte della pagina per mostrare il risultato nella tabella. Questo ha funzionato, ma non mi piaceva l'idea di chiamare il server per aggiornare il modello ogni volta, quindi ho cercato di trovare una soluzione per farlo sul lato client. Si è rivelato un compito piuttosto impegnativo, in quanto dovevo generare l'html on add con la convalida e tutto e l'indicizzazione corretta per il binding del modello. È andata peggio rimuovendo, dato che ho finito con una pazza funzione di sostituzione delle stringhe per ricreare gli indici su ciascun elemento per soddisfare i requisiti di binding (se un elemento diverso dall'ultimo viene rimosso, gli indici non sono più corretti). Ora, per curiosità, ho provato a ricreare questo a casa in angolare (che non avevo esperienza con) e mi ci sono voluti tutti circa 10 minuti con semplici funzioni per aggiungere e rimuovere elementi dal modello lato client.

Questo è solo un esempio, ma mi sembra che io sia in grado di ottenere gli stessi risultati con molte meno chiamate al server in modo angolare per il fatto che si lega a un modello lato client.

Quindi la mia domanda è, è questo un netto vantaggio dell'utilizzo di un framework mvc javascript o sono in qualche modo sotto l'uso della potenza di asp.net mvc e ho ragione nel pensare che queste operazioni dovrebbero essere fatte sul client e non avere attività che richiede chiamate al server?

    
posta aw04 12.04.2014 - 16:51
fonte

5 risposte

3

Sembra che quello che stai descrivendo sia l'associazione dati lato client, che è una piccola parte di ciò che fa AngularJS. (Inoltre esegue il routing, visualizza i modelli e una tonnellata di altre cose.)

Se ciò che ti interessa è solo aggiungere il pezzo di binding dei dati lato client al tuo framework ASP.NET MVC, altrimenti di semplice fine, ci sono altre opzioni (come knockout.js) che dovresti investigare prima di decidere ciò che funziona meglio per te.

Non esiste una risposta alla domanda su quanta funzionalità dovrebbe essere lato client o lato server.

    
risposta data 22.04.2014 - 18:47
fonte
3

Ho lavorato in Angular (con ASP.Net WebAPI per il livello di accesso ai dati) per un po 'di tempo e ho dovuto tornare a ASP.Net MVC. Una cosa che ho notato subito su ASP.Net MVC era l'imbarazzo di dover passare frequentemente da javascript / C # e dover mescolare il codice lato server e lato client. Per quanto amassi ASP.Net MVC, Angular mi ha fatto davvero apprezzare la possibilità di lavorare con una lingua per la maggior parte di un progetto; in particolare un linguaggio orientato al cliente. Qualcosa di semplice come la visualizzazione delle notifiche del growl dalle azioni sul lato server è un problema in ASP.Net MVC, mentre in Angular è una seconda natura.

Ho anche notato che le mie opinioni in Angular sono molto più pulite e semplici, non avendo tutti i tipi di javascript (cioè la logica aziendale) che li inquinano. In ASP.Net MVC, quasi inevitabilmente inquinerai le tue visualizzazioni con la logica di business.

Alla fine, preferisco di gran lunga Angular su ASP.Net MVC, e questo deriva da qualcuno che ha lavorato quasi esclusivamente con piattaforme di sviluppo MS per tutta la sua carriera.

    
risposta data 25.03.2016 - 15:29
fonte
1

È assolutamente il potere di angularjs, quando mai c'è un cambiamento nel modello, lo osserverà e aggiornerà la vista. ASP.Net è tutto basato sulla gestione dei dati sul lato server, devi essenzialmente fare chiamate ajax e può essere qualsiasi server non solo un'applicazione asp.net mvc. Stiamo usando angolare in uno dei nostri progetti, ha aumentato in modo assoluto la produttività degli sviluppatori. È ancora in evoluzione e è molto divertente ....

    
risposta data 22.04.2014 - 18:35
fonte
0

Il più grande vantaggio dell'utilizzo del framework AngularJS (MVC) sul lato client è BINDING A DUE STRATI . In sostanza, Asp MVC è sul lato server. È possibile utilizzare angularjs sul lato client per i dati di associazione.

    
risposta data 02.06.2014 - 16:21
fonte
0

Alla fine dipende da cosa stai cercando di ottenere. Che si tratti di un'interfaccia utente piacevole e di una funzionalità elegante o di un'implementazione di base.

In caso di utilizzo di AngularJS per l'implementazione dell'interfaccia utente, hai alcune funzionalità di base di cui le persone hanno già scritto. "Two Way Binding"

La bellezza di questo è che devi fare troppo per manipolare i dati poiché funziona come il modello e la raccolta in .NET, una volta modificati i dati, sono lì e non devi preoccuparti di aggiornare, gestire i dati anche ha un modo semplice per aggiornare qualsiasi modifica senza ricaricare l'intera pagina per tutto il tempo. Credo che questo sia il motivo principale per cui le persone lo stanno utilizzando e faremo di più (è semplice, veloce per fornire risultati agli utenti e sembra bello).

spero che questo aiuti

    
risposta data 16.06.2014 - 11:54
fonte

Leggi altre domande sui tag