Come si può progettare un'applicazione web molto grande usando il rendering di server e / o client?

1

Ho recentemente terminato un progetto che contiene più di 30 pagine / caratteristiche diverse. Ognuno con alcuni CRUD e più sottopagine. Ogni pagina è totalmente diversa dall'altra nello scopo. Tutto è stato realizzato usando ASP.NET MVC Core e alcuni Ajax per interrogare alcune viste renderizzate.

Oggi sto iniziando un nuovo progetto che sarà simile a quello in complessità. Vorrei iniziare con qualche framework SPA come Angular4 o React. Tuttavia ho alcune opzioni:

  1. Crea una SPA gigante che conterrà tutte le 30 diverse pagine / caratteristiche e tutte le pagine secondarie e utilizza il sito Server solo per le query REST. (una SPA gigante)

  2. Crea un server MVC regolare e utilizza Angular o React solo in alcuni di questi quando necessario. un sacco di piccole app autonome. (un sacco di mini SPA)

  3. dimentica SPA.

Quando guardo alcune applicazioni popolari come YouTube, Facebook o anche Stack Exchange (che è anche costruito in ASP.NET MVC), ho notato che sembra che stiano usando la seconda opzione. Ogni pagina è una specie di ricca SPA. quando faccio clic su un link, come le impostazioni o il profilo, carica il DOM dal server e tutte le interazioni vengono effettuate utilizzando query restfull.

Mi piacerebbe sapere di un altro sviluppatore web esperto. Quale opzione è migliore?

Grazie

    
posta Daniel Santos 24.10.2017 - 20:02
fonte

1 risposta

2

Dopo aver letto articoli come " Cosa dovrebbe essere in una singola pagina di applicazione? " e molti altri sono abbastanza convinto che costruire un centro benessere molto grande (anche con il caricamento lento) non è una buona soluzione per i grandi sistemi con aree diverse .

The real reason one large SPA is wrong is because of coupling. If you build your whole application as a SPA then everything is coupled together. Making a small change in one obscure part of your application could have a global effect. With different pages the chance of an accidental global change is much smaller. It can only happen if the code is actually loaded on another page.

E

What that means in practice is that you split your application into functional parts. Just suppose for a moment you are building a large sales application. Then you probably need to build a customer management piece. There will also be an article management part. There will be an order entry part and finally there will be an order fulfillment part of the application. In reality there will be more but as an example these four are enough. These four are quite distinct, each has it’s own job to do and end users will not likely switch between them all the time to get their job done.

    
risposta data 03.11.2017 - 18:15
fonte

Leggi altre domande sui tag