Questa è stata più una discussione su quali sono le opinioni della gente in questi giorni su come dividere un'applicazione web.
Sono abituato a creare un'applicazione MVC con tutte le sue viste e controller. Normalmente creerei una vista completa e la ricondurrei al browser su una richiesta a pagina intera, a meno che non ci fossero aree specifiche che non volevo popolare subito e usassero quindi gli eventi di caricamento della pagina DOM per chiamare il server per caricare altre aree usando AJAX.
Inoltre, per quanto riguarda l'aggiornamento parziale della pagina, chiamerei un metodo di azione MVC che restituirebbe il frammento HTML che potrei quindi utilizzare per popolare parti della pagina. Questo sarebbe per le aree che non volevo rallentare il carico iniziale della pagina, o le aree che si adattano meglio alle chiamate AJAX. Un esempio potrebbe essere per il paging della tabella. Se si desidera passare alla pagina successiva, preferirei che una chiamata AJAX ottenga tali informazioni anziché utilizzare un aggiornamento a pagina intera. Ma la chiamata AJAX restituirebbe comunque un frammento HTML.
La mia domanda è. I miei pensieri sono arcaici perché provengo da uno sfondo .net piuttosto che da uno sfondo puramente frontale?
Uno sviluppatore front-end intelligente con cui lavoro, preferisce fare più o meno nulla nelle viste MVC e preferirebbe fare tutto sul front-end. Fino alle chiamate API web che popolano la pagina. Quindi, piuttosto che chiamare un metodo di azione MVC, che restituisce HTML, preferirebbe restituire un oggetto standard e usare javascript per creare tutti gli elementi della pagina.
La modalità di sviluppo front-end significa che tutti i vantaggi che ottengo normalmente con la convalida del modello MVC, inclusa la convalida del lato client, sarebbero andati. Significa anche che tutti i benefici che ottengo con la creazione delle viste, con template html strongmente tipizzati, sarebbero andati.
Credo che ciò significherebbe che avrei bisogno di scrivere la stessa validazione per la convalida del front end e del back end. Il javascript avrebbe anche bisogno di avere molti metodi per creare tutte le diverse parti del DOM. Ad esempio, quando si aggiunge una nuova riga a una tabella, normalmente utilizzerei la vista parziale MVC per creare la riga, quindi la restituisco come parte della chiamata AJAX, che viene quindi iniettata nella tabella. Usando un modo front-end puro, il javascript prenderebbe un oggetto (per esempio un prodotto) per la riga dalla chiamata api e quindi creerebbe una riga da quell'oggetto. Creazione di ogni singola parte della riga della tabella.
Il sito web in questione avrà molte aree diverse, dall'amministrazione, i moduli, la ricerca dei prodotti, ecc. Un sito web che non credo richieda di essere architettato in un modo di applicazione a singola pagina.
Quali sono i pensieri di tutti su questo?
Mi interessa ascoltare gli sviluppatori di front end e gli sviluppatori di back-end.