Il n'y a pas vraiment de définition stricte du MVC.. et l'appliquer au web (ce pourquoi il n'était pas destiné, en '79) peut être assez particulier.
Je le considère plutôt comme une orientation générale ou tu sépares:
la source de données (modèle)
les actions possibles avec ces données (contrôleur)
une interface vers ses actions (vue)
Dire qu'il n'y aura pas de code dans la vue est faux, puisqu'il y en aura pour traduire les actions vers le medium visé (une interface java, web, ligne de commande, service web,etc..), juste qu'elles n'auront aucune "intelligence" vis-à-vis du contenu, c'est la porte vers l'extérieur.
Le modèle, c'est la DB, une autre Vue (d'une autre application), la couche d'abstraction entre la DB et l'appli, ce qui sert à amener les données à l'application.
Le contrôleur, c'est l'action sur les données, en réaction aux opérations transmises par la vue, sur les données originaires du modèle, avant de renvoyer les données modifiées au modèle, et le résultat de l'action à la vue.
C'est un peu théorique et très simplifié, et à la longue on peut avoir du mal à s'attacher à ses principes (en perdant de vue certains aspects de la séparation, parfois des excroissances assez bizarres peuvent se développer pendant qu'on code à longueur de journée. D'où l'utilité du refactoring

)
Dans l'idéal, tu devrais pouvoir passer d'une interface web à une interface en ligne de commande rien qu'en créant une nouvelle vue. Et si c'est toute la DB qui change de techno, il n'y à que le contrôleur qui devrait être modifié.
Certaines implantations font agir la vue sur le modèle, mais c'est pas la voie que j'utilise. En tout cas, c'est un sujet assez vague

Il n'y a pas vraiment de définition stricte du MVC.. et l'appliquer au web (ce pourquoi il n'était pas destiné, en '79) peut être assez particulier.
Je le considère plutôt comme une orientation générale ou tu sépares:
la source de données (modèle)
les actions possibles avec ces données (contrôleur)
une interface vers ses actions (vue)
Dire qu'il n'y aura pas de code dans la vue est faux, puisqu'il y en aura pour traduire les actions vers le medium visé (une interface java, web, ligne de commande, service web,etc..), juste qu'elles n'auront aucune "intelligence" vis-à-vis du contenu, c'est la porte vers l'extérieur.
Le modèle, c'est la DB, une autre Vue (d'une autre application), la couche d'abstraction entre la DB et l'appli, ce qui sert à amener les données à l'application.
Le contrôleur, c'est l'action sur les données, en réaction aux opérations transmises par la vue, sur les données originaires du modèle, avant de renvoyer les données modifiées au modèle, et le résultat de l'action à la vue.
C'est un peu théorique et très simplifié, et à la longue on peut avoir du mal à s'attacher à ses principes (en perdant de vue certains aspects de la séparation, parfois des excroissances assez bizarres peuvent se développer pendant qu'on code à longueur de journée. D'où l'utilité du refactoring :mrgreen: )
Dans l'idéal, tu devrais pouvoir passer d'une interface web à une interface en ligne de commande rien qu'en créant une nouvelle vue. Et si c'est toute la DB qui change de techno, il n'y à que le contrôleur qui devrait être modifié.
Certaines implantations font agir la vue sur le modèle, mais c'est pas la voie que j'utilise. En tout cas, c'est un sujet assez vague :twisted: