DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / Développer une application ou un site / MVP (Modèle Vue Présentation)
  • Présentation
  • Principe
  • La notion de VUE
  • La notion de couche PRESENTATION
  • La notion de couche MODELE
  • La notion de couche Accès BDD
  • La notion de couche Applicative
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Présentation
MVP est le sigle pour MODELE - VUE - PRESENTATION.
C'est un "Design Pattern" qui propose de découper et de structurer l'architecture des interfaces utilisateur en couches. (On peut le combiner à un découpage de l'accès aux données, lui aussi en couches, qu'on peut appeler DAL : Data Access Layer, et qui sépare les informations en mémoire de l'accès physique à la base de données). Il permet de séparer le code de gestion de l'interface (UI), du code qui manipule les données métier.
Cette architecture en couches de l'application et de l'UI permet de rendre les projets plus faciles à maintenir et à faire évoluer.
Attention : Ce mode de développement utilise la POO : il est obligatoire d'en maîtriser les concepts. Ce mode de développement est un mode de développement avancé.
WINDEV et WINDEV Mobile, par l'intermédiaire du RAD et d'exemples, propose un cadre MVP de départ, librement adaptable en fonction de vos besoins et de vos propres choix architecturaux.
Principe
Un modèle de développement MVP se décompose en couches comme suit :
Principe MVP

La notion de VUE

Une VUE représente la partie UI de l'application. Elle correspond à l'interface utilisateur (UI). Une VUE peut être sous la forme d'une fenêtre, d'un état, d'une page Web ou d'une fenêtre mobile.
Certaines opérations peuvent nécessiter une interaction avec l'utilisateur (affichage d'erreur, confirmation, ...), ces interactions doivent être assurées par la VUE.
  • La VUE connaît la présentation.
  • La VUE peut utiliser le binding pour récupérer les données à afficher depuis la couche PRESENTATION, ou lui envoyer les informations saisies ou modifiées par l'utilisateur.
  • La VUE dispose d'un événement particulier pour effectuer les mises à jour nécessaires (événement "Demande de mise à jour de l'affichage"). Cet événement est appelé automatiquement lors de l'initialisation, puis sur demande de la couche PRESENTATION ou de la couche MODELE (fonction DemandeMiseAJourUI).

La notion de couche PRESENTATION

La couche PRESENTATION est une classe qui effectue la liaison entre la VUE et le MODELE. Elle organise et formate les données du MODELE à afficher dans la VUE. Elle regroupe les traitements concernant les actions de l'utilisateur.
La couche PRESENTATION n'a pas accès à la VUE, c'est-à-dire que la couche PRESENTATION ne doit pas accéder directement aux champs de la VUE.
Par contre, la couche PRESENTATION peut demander à la VUE de se mettre à jour (utilisation de la fonction DemandeMiseAJourUI).
Une même couche PRESENTATION peut être utilisée par plusieurs VUES (cas d'une fenêtre ou d'un état affichant les données provenant d'un même MODELE, par exemple : liste de clients).
Chaque VUE (fenêtre, état) doit posséder une instance distincte de la classe PRESENTATION.
Par contre, plusieurs PRESENTATIONS peuvent partager des instances MODELE.
La couche PRESENTATION contient et décide des "données" à afficher dans la VUE. Par exemple, changer l'état d'un champ, changer la couleur d'une ligne d'un champ Table,...
Les actions de l'utilisateur sont déportées dans les méthodes de la classe PRESENTATION, qui ensuite les redirigent éventuellement vers la couche MODELE. La couche PRESENTATION regroupe ainsi tous les traitements/événements concernant les actions de l'utilisateur. Le code est donc centralisé et partageable entre différentes VUEs.
En revanche, la couche PRESENTATION n'accède pas à l'UI, donc pas de fonctions Ouvre, Ferme, Info, Erreur, etc.
A l'inverse, la VUE connaît la couche PRESENTATION. La vue peut appeler ses Méthodes, lire ses Propriétés et utiliser le Binding. Une VUE possède une et une seule PRESENTATION.
En résumé , la VUE communique avec la couche PRESENTATION :
  • en appelant des méthodes de la classe.
  • en écrivant ou en lisant des propriétés de la classe.
  • en utilisant le DataBinding pour se lier à des propriétés de la classe.

La notion de couche MODELE

La couche MODELE contient les données "Métier" de l'application ainsi que la logique qui permet de les manipuler. Cette couche est constituée d'un ensemble d'objets basés sur des classes représentant les données à manipuler. La logique (donc les opérations) qui permet de manipuler ces données est représentée par des classes et des méthodes.
La couche MODELE est indépendante de la couche PRESENTATION et de la VUE. La couche PRESENTATION connaît sa couche MODELE, mais à l'inverse, la couche MODELE ne connaît pas la couche PRESENTATION et encore moins la VUE.
Les données à afficher dans la VUE sont contenues dans la couche MODELE.
Cependant, afin de centraliser les opérations de récupération des données, on va privilégier l'accès aux données en passant par la couche PRESENTATION plutôt que d'accéder directement aux objets de la couche MODELE. On va donc articuler la communication entre la couche PRESENTATION et la couche MODELE autour de l'association d'une classe de la couche PRESENTATION et d'une classe de la couche MODELE (à l'aide de l'attribut <Associé>).
En résumé, la couche PRESENTATION communique avec la couche MODELE :
  • en appelant des méthodes de la classe associée
  • en écrivant ou en lisant des propriétés de la classe associée

La notion de couche Accès BDD

La couche d'accès aux données de la Base de Données peut être constituée :
  • d'un ensemble de collections de procédures,
  • d'un ensemble de classes.
Ces collections ou ces classes permettent de gérer les consultations et les écritures des données de la couche MODELE depuis et vers la base de données physique.
L'intérêt de séparer cette couche est de pouvoir modifier et faire évoluer de manière centralisée la structure logique des données et du format de stockage (BDD relationnelle, BDD SQL, fichiers XML, Webservice, ...).
Il est possible, toutefois, d'inclure cette couche dans la couche MODELE.
Ces choix dépassent le cadre du MVP.

La notion de couche Applicative

La couche Applicative permet de gérer :
  • la logique de transition entre les VUEs,
  • des informations communes à l'application (par exemple, centraliser la connexion à une BDD, ...),
  • la couche métier de l'application.
Liste des exemples associés :
WD Découverte MVP - Partie 1 Exemples didactiques (WINDEV) : WD Découverte MVP - Partie 1
[ + ] Cet exemple didactique présente la mise en oeuvre d'une architecture MVP (Modèle Vue Présentation) dans un projet. Cet exemple est ici simplifié afin de pouvoir comprendre les concepts de cette architecture.
WD Découverte MVP - Partie 2 Exemples didactiques (WINDEV) : WD Découverte MVP - Partie 2
[ + ] Cet exemple didactique présente la mise en oeuvre d'une architecture MVP (Modèle Vue Présentation) dans un projet pour une analyse simple (Client - Commande - Ligne de commande - Produit).

Plusieurs types de vues (et leur présentation) sont proposés :
- table (avec ajout, modification, suppression et impression),
- fiche,
- recherche (avec filtre).
WM Découverte MVP Exemples multiplateforme (WINDEV Mobile) : WM Découverte MVP
[ + ] Cet exemple montre la mise en oeuvre d'une architecture MVP (Modèle Vue Présentation) dans un projet. Cet exemple est ici simplifié afin de pouvoir comprendre les concepts de cette architecture.
Version minimum requise
  • Version 20
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 25/05/2022

Signaler une erreur ou faire une suggestion | Aide en ligne locale