La couche de présentation

Dans toutes les versions précédentes on s’est peu intéressé à la couche de présentation (l'interface graphique) on a toujours utilisé les contrôles les plus simples sans aucune validation des données.

Que peut-on ajouter?

On peut utiliser le databinding pour lier une source de données avec un contrôle.

On peut aussi utiliser le DataGridView qui est le contrôle le plus puissant pour afficher des données.

Comment organiser la couche de présentation ?

Une question se pose souvent, le pattern MVC étant très populaire, beaucoup d’étudiants souhaitent l’utiliser. Que faut-il en penser ?

Le problème vient du pattern MVC sa définition est assez floue et varie suivant les ouvrages. Le pattern MVC est assez vieux il date des années 80 et a beaucoup évolué. Nous aborderons le pattern MVC en détail dans le projet Web.

Tout d’abord pendant les formations présentant une application se connectant à une base de données de nombreux participants s’exclament : « Mais ceci est une application basée sur le pattern MVC ! ». Effectivement il y a un Windows Form (le V pour View), il y a une couche de liaison avec la base de donnée (le M du modèle) et il y a une couche comprenant la logique du programme (le C du contrôleur). Avec ceci toutes les applications sont basées sur le MVC ! Le MVC est souvent mis à toutes les sauces.

Voilà le schéma du MVC dans sa forme initiale :

le schéma du MVC

On peut en discuter mais le MVC est un pattern orienté présentation de données, il n’interdit aucunement une construction en couche comme nous l’avons vu auparavant.

Ensuite le MVC dans sa forme initiale n’a jamais été beaucoup utilisé chez Microsoft avec les Windows Form. Je pense que c’est aussi le cas dans le monde Java desktop. On peut penser que la difficulté vient de l’interaction entre le Modèle et la Vue qui n’est pas facile à réaliser.

Ce pattern a été inventé dans les années 80 pour des applications de bureau mais il n’a vraiment rencontré le succès que dans les applications Web dans une forme un peu différente toutefois.

Il vaut mieux ne pas utiliser le pattern MVC avec les Windows Form. Trop souvent ce n’est pas vraiment le pattern MVC qui est utilisé mais une mauvaise adaptation.

Par contre, si vous le voulez, vous pouvez utiliser le pattern MVP dans sa version Passive View. Le principal intérêt de ces patterns est de supprimer toute la logique des écrans de présentation pour pouvoir réaliser des tests unitaires. Le problème vient du fait que cela ajoute énormément de complexité à votre projet.

Le pattern que préconise le plus Microsoft en ce moment est le MVVM (Modèle-Vue-VueModèle).

Pour conclure il n’y a vraiment aucun intérêt à présenter un projet en utilisant un pattern pour la couche de présentation. Il vaut mieux réserver le MVC (et encore) à votre projet Web. On peut se contenter d’une couche de présentation utilisant le fichier de code-behind pour gérer les événements. Il est déjà difficile de bien utiliser les contrôles complexes comme le DataGridView. Généralement la couche de présentation ne pose pas trop de problèmes car on est beaucoup assisté avec Windows Form (c'est l'intérêt). On peut même obtenir une application à l'aspect professionnel avec un peu de travail. Il faut bien maîtriser les contrôles de base (textbox, button label...) pour pouvoir facilement les utiliser le jour de l'examen.