Vengo da un ambiente non informatico e sto cercando di capire come mi avvicino agli approcci di progettazione MVC e ai framework in generale. Io "ottengo" il riutilizzo del codice e la separazione della logica dal display, e "ottengo" l'incapsulamento e il disaccoppiamento, ma non capisco questo.Coldfusion, qual è il vantaggio del design del front controller rispetto al controller di pagina?
Al momento ho semplicemente messo tutto in root, una sottocartella separata per immagini, cfcs e _include, tutta l'interazione del database tramite cfcs. Faccio tutte le mie elaborazioni nella parte superiore della pagina, quindi una riga di commento, quindi la visualizzazione/il layout della pagina sotto.
La maggior parte dei quadri che ho guardato sembrano favorire un front controller, quindi la mia versione semplicistica di un controller superiore di progettazione MVC sarebbe una sottocartella per CFC, controller, e punti di vista e un grande switch in index.cfm
<cfif not IsDefined("URL.event")>
<cflocation url="index.cfm?event=home" addtoken="No">
</cfif>
<cfswitch expression="#url.event#">
<cfcase value="home">
<cfinclude template="controllers/home.cfm"/>
<cfinclude template="views/home.cfm"/>
</cfcase>
<cfcase value="about">
<cfinclude template="controllers/about.cfm"/>
<cfinclude template="views/about.cfm"/>
</cfcase>
</cfswitch>
.. ma quale vero vantaggio mi dà rispetto al design di un controller di pagina? A meno che non sia solo il tipo di siti che scrivo, sembra sempre che la logica del controller sia specifica per una vista, non è come se un controller potesse adattarsi a più viste o diversi controller potessero produrre in un'unica vista, quindi quale sarebbe il punto di separandoli?
La luce non è ancora arrivata per me, nessun suggerimento?
OK pienamente accettare che il suo livello di servizio che dovrebbe essere progettato per essere incapsulato. Ma a parte i problemi di riscrittura degli URL (supponendo che non lo si faccia sul server web) quale vantaggio offre un front controller su un controller di pagina? Mi sembra solo un altro file da aprire nell'editor invece del controller nella parte superiore della pagina, guarda il fondo della pagina. – Saul
@ Saul: vedere il mio aggiornamento. – orangepips
Che MSDN era buono, in particolare attorno a ciò che hai chiamato l'orchestrazione dei processi. Questo è un problema che ho riscontrato con i moduli a più pagine. – Saul