Part II : Architecture(s) & Concepts
Non
Il n'y a pas de modèle d'architecture unique mais uniquement des patterns d'architecture qu'il faut savoir manipuler
Non
Habituellement ce que l'on appelle architecture n'est qu'une vision de l'infrastructure technique...
Architecture
"is the art of drawing lines"
En vrai...
On a juste rajouté une couche supplémentaire DEPENDANTE de tous les autres.
MVC n'est qu'un framework technique qui sert à organiser les choses que l'on présente au client
Donc
Il est important de comprendre le rôle de MVC pour comprendre son usage et fonctionnement
Et surtout ce qu'il est et n'est pas
ARCHITECTURE
is the art of drawing lines...
*
"...boundary lines"
Donc
MVC n'est pas une architecture
MVC
C'est un principe qui dit votre code doit être découpé en une partie qui manipule le modèle, une partie qui manipule l'affichage et une partie qui contrôle l'interaction et que chacune doit bien être isolée des autres
Intentions
L'architecture doit montrer les intentions, il n'est pas question ici de frameworks ou de patterns.
MVC en tant que framework n'est qu'un outil, ce sont les principes et les intentions qui comptent
MVC
à une échelle plus macro:
M : le modèle, le domaine, le métier
V : UI, l'interface utilisateur, par là ou passent les échanges avec lui
C: le workflow, celui qui fait (faire) des traitements
MVC Web
Les frameworks web sont des implémentations orientés traitement de la requête web.
Différent donc du pattern initial qui était positionné sur chaque objet.
ASP vs RAILS
Des intégrations similaires du pattern sur beaucoup de choses mais certains choix impactants différents
Le MODèle
Par choix, ASP.NET MVC ne traite pas du tout le modèle, même si il offre des mécaniques d'aide au traitement du modèle:
-
Aide à la génération de code (scaffolding)
-
Prise en compte d'attributs de modèle dans les vues
-
Prise en compte de validation
- ...
Le modèle
Dans le cadre d'un framework MVC en tant qu'infrastructure de delivery, le modèle n'est pas pris en compte, c'est mieux!
REduction
donc V et C !
mais ce n'est pas tout...
Workflow
- Query => Routing
- Filter => Controller
- Action => ActionResult
-
View => Response
Workflow