Scrivo applicazioni web da quasi 10 anni. Lo stack ASP.net è stato il mio pane e burro e anche se ha un sacco di cose belle su di esso, onestamente non ho mai scelto ASP.net. È solo una questione di ciò che i miei datori di lavoro e clienti volevano.
Recentemente, ho avuto l'opportunità di prototipare qualcosa che stavo lavorando sullo stack MEAN. Non sono mai riuscito a superare il prototipo prima di essere indirizzato a tornare su ASP.net.
Mi rendo conto che nel corso del mio prototipo nello stack MEAN, ci sono molti aspetti dello stack MEAN che ho trascurato e non ho familiarità con le best practice dello stack MEAN.
Tuttavia, mi è sembrato che scrivendo il codice nello stack MEAN, c'era molto meno codice da scrivere per una ragione particolare: tutto è Javascript e potrei usare le stesse strutture di dati Javascript dattilografate ovunque: sul browser , sul server web e nelle query del mio database.
Nello stack ASP.net, la logica è la seguente per alcune operazioni sui dati:
-
L'utente fa qualcosa nel browser.
-
Il Javascript invia una stringa JSON al server web.
-
Il server web lo indirizza a un gestore e deserializza il JSON in una classe del modello.
-
Il gestore effettua una chiamata a un oggetto business che mappa la classe del modello su una classe di entità, che a sua volta rappresenta una struttura di dati in SQL.
-
L'oggetto business effettua una o più chiamate a SQL utilizzando la classe entity e ottiene un risultato che viene serializzato su un'altra classe di entità.
-
La classe di entità viene mappata su un'altra classe di modello e passata di nuovo al gestore.
-
Il gestore serializza la classe del modello in JSON, che restituisce la stringa JSON al browser.
Semplice come una torta, vero?
Nello stack MEAN, la logica è la seguente per la stessa operazione di dati.
-
L'utente fa qualcosa nel browser.
-
Il server web lo indirizza a un gestore che riceve l'oggetto JSON.
-
Il gestore effettua una chiamata a un oggetto business, passando nel JSON.
-
L'oggetto business effettua una o più chiamate a Mongo utilizzando il JSON e ottiene un risultato in JSON.
-
Il risultato JSON di Mongo viene passato al gestore.
-
Il gestore passa il risultato JSON al browser.
Oh wow! Era molto più semplice perché nel caso ASP.net avevo diversi tipi di strutture dati su ciascuno dei miei tre livelli e dovevo scrivere codice per tradurre i dati tra le diverse strutture dati, un processo che è sia noioso che errore -prone. Inoltre, ho dovuto scrivere con attenzione le definizioni delle strutture dati su tutti e tre i livelli e accertarmi che corrispondano, e anche quando le strutture dei dati sono "le stesse", sono ancora diverse. (per esempio, i dati DateTime sono completamente diversi sotto le copertine in SQL vs ASP.net)
Non sono un esperto di stack MEAN, quindi volevo sapere se e come questi vantaggi che ho osservato si svolgono nel mondo reale con applicazioni mature.
In breve, usare lo stack MEAN significa che posso scrivere meno codice perché non devo scrivere tre set separati di strutture dati e il codice che le mappa tra loro?