Avantages des applications ASP.NET MVC

Karim

ASP.NET MVC est le Framework de développement web tendance poussé par Microsoft. Dans cet article on va découvrir les avantages principaux d’un tel Framework.

  • Une architecture orientée « Action » au lieu d’une architecture orientée « Vue » (l’approche ASP Webform) ce qui donne une approche plus cohérente avec le logique métier. Exemple : un utilisateur clique sur un bouton « Acheter » ; dans l’architecture MVC, la requête arrive d’abord à l’action d’achat (la méthode qui exécute l’achat) qui appartient à un controlleur, qui à son tour indique quelle vue à retourner à l’utilisateur avec le model approprié. A l’encontre, dans l’approche Webform, la requête utilisateur arrive à la vue (.aspx) qui donne le relai au code behind (.aspx.cs) qui exécute à son tour tout le cycle de vie d’une page web (compliqué) pour arriver finalement à exécuter l’action d’achat et retourner un résultat. Cette architecture permet également une meilleure performance étant donné qu’il n’est plus besoin de parcourir tout le cycle de vie (parfois long) d’une page pour avoir un résultat d’une requête.
  • Séparation des tâches (SoC): Le Framework MVC offre une séparation claire entre les différentes couches: Le logique business (représenté par le Controlleur C), la logique présentation (représentée par la vue V) et les entités business (représentées par le model M). Chaque couche est indépendante de l’autre. Cette logique permet une meilleure structuration de code, en conséquence une simplification de la maintenabilité des applications. Aussi, l’indépendance Controlleur-Vue permet d’avoir un output très propre.
  • Développement dirigé par les Tests (TDD) : Tous les contrats de base dans le Framework MVC sont basés sur des interfaces et peuvent être testés en utilisant des simulacres (Mock Objects), qui sont des objets simulés, imitant le comportement des objets réels de l’application.  On peut tester de façon unitaire l’application sans recours à l’exécution des contrôleurs dans un processus ASP.NET, ce qui rend les tests unitaires rapides et flexibles.
  • Plusieurs types de rendus de page : Pas seulement du rendu HTML qu’on peut avoir avec les applications MVC, mais aussi d’autres types tels que JSON. Ceci peut être spécifié au niveau de l’action.
  • Un Contrôle HTML Total: Contrairement à l’approche ASP Webform, l’approche MVC est « stateless », elle est conçue pour surmonter les défauts du « Viewstate » (notamment s’il s’agit d’un grand volume de données au niveau de la page ce que ralenti énormément le chargement des pages) et la programmation événementielle. Le MVC ne supporte ni «Viewstate» ni événements, en conséquence, le déclenchement des événements est remplacé par deux mécanismes – URLs et le POSTing et le maintien des états est assuré par les « Viewmodel » et certains d’autres techniques comme le « Viewbag », « tempdata » et le « Viewdata ». En outre, le MVC offre une intégration facile avec les frameworks JavaScript tels que jQuery et AngularJs ce que permet un rendu full HTML plus propre et facile.
  • Moteur de Recherche Optimisé (SEO): Les URL sont plus convivial pour les moteurs de recherche, ils sont basés sur le style d’architecture RESTful. Exemple : mywebapplication.com/users/ 1 – récupère l’utilisateur avec un ID = 1 alors que mywebapplication/users/getuser.aspx (id est passé en session)).
  • Support des fonctionnalités existantes d’ASP.NET webform. ASP.NET MVC permet d’utiliser des dispositifs tels que les formulaires d’authentification et l’authentification Windows, les autorisations sur les URL, les fonctionnalités d’appartenance à un groupe (membership) et de rôle, le mécanisme de cache de données et de code produit, les session et la gestion du profil, le système de configuration et l’architecture des fournisseurs.
  • Le modèle MVC fonctionne bien pour des applications Web développées et soutenues par de grandes équipes de développeurs et de designers, qui ont besoin d’un degré élevé de contrôle sur le comportement des applications

Pour finir, ci-dessous un résumé des différences principales à connaître entre ASP.NET Webform et ASP.NET MVC.

 

Webforms

MVC

Cycle de vie Le fonctionnement est géré par des évènements sur lesquels on peut s’abonner. Après il y a tout un cycle de vie de requête qui est fortement basé sur la « page active .aspx » Le cycle de vie est différent car il fait intervenir un contrôleur qui va charger des modèles de données puis sélectionner la vue à utiliser pour générer le rendu
Dépendances Les pages sont composées d’une vue et de code-behind. Ceci a un impact important car la vue et le contrôleur sont fortement dépendants Le contrôleur sélectionne la vue à afficher. Celle-ci ne dépend que du modèle qu’elle va utiliser pour le rendu.
Testabilité Les pages sont difficiles à instancier en dehors d’un fonctionnement normal. Ceci a pour effet de les rendre impossible à tester de manière automatique Les contrôleurs sont de « simples » classes qu’on peut instancier sans contexte Http. Elles sont donc plus faciles à tester avec des tests unitaires par exemple.
Gestion de l’état Les contrôles stockent leurs états dans le ViewState. Le ViewState est transmis dans chaque page. Il a tendance à grossir très rapidement. MVC ne maintient pas d’état des pages, ni de ViewState. Vous avez le contrôle complet de votre application.
Evènements L’extensibilité est gérée par les évènements. On doit donc s’abonner pour modifier certains comportements L’extensibilité est gérée par héritage ou des filtres. Le fonctionnement est simple à comprendre et à débugger
Les contrôles visuels Webforms est fortement basé sur des composants visuels comme Winforms. Ceci implique que le code est généré de manière automatique (sans grand contrôle) MVC n’utilise pas d’évènement ni de code généré. On doit donc écrire du code HTML propre comme on  le souhaite
Connaissances HTML, CSS et JS Etant donné la présence de contrôles visuels, on n’a pas besoin d’avoir de connaissances approfondies en HTML, JS et CSS pour créer des applications. Les composants vont générer le code pour vous L’absence de contrôles visuels et de drag & drop nécessite des compétences en développement HTML, CSS et Javascript. En contre-partie, On peut écrire du code jQuery et des requêtes Ajax très simplement
Apprentissage Webforms est plus facile à apprendre et permet de créer rapidement des écrans visuels grâce au drag & drop de composants. Le framework est intéressant pour débuter avec le Web quand on connait déjà Winforms Le temps d’apprentissage est un peu plus long car il faut bien comprendre les concepts du framework. Une fois qu’on a bien compris ces concepts, on peut développer très rapidement des applications web modernes

 

 

facebooktwittergoogle_plusmail

Laisser un commentaire