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 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 metodo doGet
di Java HttpServlet
.
Ma in questi giorni, sento sempre di più su framework più recenti come Django e Ruby on Rails, che sfruttano tutti l'architettura di "Model View Controller". Ho letto vari articoli che spiegano MVC, ma ho problemi a comprenderne davvero i vantaggi. Capisco che l'idea generale sia quella di separare la logica aziendale 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 dell'interfaccia utente (HTML lato client o Javascript), perché i due esistono in sfere di programmazione completamente diverse.
Domanda: cosa offre MVC su qualcosa come un servlet Java e, cosa più importante, che cos'è esattamente is MVC e in che modo è diverso da ciò che si farebbe normalmente 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 spieghi MVC, fornisci un esempio che illustra come viene applicato MVC al processo di sviluppo web e come è vantaggioso.