La mia esperienza con lo sviluppo di siti Web dinamici è limitata principalmente ai servlet Java. Ho usato Tomcat per sviluppare vari servlet Java e non esiterei a dire che sono abbastanza abile con questa tecnologia, così come con HTML / CSS / Javascript sul lato client per il front-end.
Quando penso a "sito Web dinamico", penso: l'utente richiede un URL con una stringa di query, il server riceve la query e quindi procede all'output HTML in modo dinamico per rispondere alla query. Ciò comporta spesso la comunicazione con un database al fine di recuperare i dati richiesti per la visualizzazione. Questa è fondamentalmente l'idea alla base del doGet
metodo di Java HttpServlet
.
Ma oggigiorno sto ascoltando sempre di più nuovi framework come Django e Ruby on Rails, che sfruttano tutti l'architettura "Model View Controller". Ho letto vari articoli che spiegano MVC, ma ho difficoltà a capire davvero i vantaggi. Capisco che l'idea generale è quella di separare la logica di business dalla logica dell'interfaccia utente, ma non riesco a vedere come questo sia qualcosa di veramente diverso dalla normale programmazione web. La programmazione Web, per sua natura, ti costringe a separare la logica di business (programmazione lato server back-end) dalla programmazione UI (HTML o Javascript lato client), perché i due esistono in sfere di programmazione completamente diverse.
Domanda: Che cosa MVC offerta per qualcosa come un servlet Java, e ancora più importante, che cosa esattamente è MVC e come è diverso da quello che normalmente fare per sviluppare un sito web dinamico utilizzando un approccio più tradizionale, come un servlet Java (o anche qualcosa di più vecchio come CGI)? Se possibile, quando si spiega MVC, fornire un esempio che illustri come MVC viene applicato al processo di sviluppo Web e come sia vantaggioso.