Tutoriel ASP.NET MVC pour les débutants : qu'est-ce que c'est, Architecture

⚡ Résumé intelligent

ASP.NET MVC est un logiciel libre Microsoft Un framework qui sépare une application web en couches Modèle, Vue et Contrôleur, offrant aux développeurs un contrôle total sur le HTML, un code testable, un routage propre et une alternative légère aux formulaires web classiques.

  • Archi Le modèle contient les données du domaine, la vue affiche l'interface utilisateur avec Razor et le contrôleur assure la médiation de chaque requête entre les deux.
  • | Pourquoi MVC : Il corrige les problèmes de ViewState et de surcharge de performances des formulaires Web et permet un routage propre ainsi qu'un développement piloté par les tests.
  • 🔀 Routage: Basé sur un itinéraire URLassocie les requêtes entrantes aux actions du contrôleur, remplaçant ainsi les fichiers .aspx URLavec des chemins optimisés pour le référencement.
  • 🧪 Testabilité : Le contrôleur et le modèle peuvent être testés unitairement de manière isolée car les vues ne contiennent aucune logique métier.
  • Comparaison des formulaires Web : Web Forms utilise des contrôles serveur événementiels ; MVC utilise des actions pilotées par requête avec une gestion manuelle de l’état.
  • Meilleure pratique : Conservez la logique métier dans le modèle, limitez la taille des contrôleurs et utilisez des vues partielles ou des mises en page pour réutiliser le balisage.

Tutoriel ASP.NET MVC

Qu'est-ce qu'ASP.NET MVC ?

ASP.NET MVC est un framework de développement Web open source de Microsoft ASP.NET MVC propose une architecture Modèle-Vue-Contrôleur (MVC). Il offre une alternative aux formulaires Web ASP.NET pour la création d'applications Web. Faisant partie de la plateforme .NET, il permet de développer, déployer et exécuter des applications Web. Vous pouvez développer des applications Web et des sites Web à l'aide de HTML, CSS et jQuery. JavaScénario, etc.

Apprenez MVC avec ce didacticiel ASP.NET MVC qui couvre tous les concepts de base de MVC pour les débutants :

Pourquoi ASP.NET MVC ?

Même si les formulaires Web ont connu un grand succès, Microsoft pensée de développementping ASP.NET MVC. Le principal problème des webForms ASP.NET réside dans leurs performances.

Dans une application web, quatre aspects principaux définissent la performance : -

  • Problèmes de temps de réponse
  • Problème de tests unitaires
  • Personnalisation HTML
  • Réutilisabilité de la classe code-behind

ASP.NET MVC excelle sur les paramètres ci-dessus.

Historique des versions de MVC

ASP.NET MVC1

  • Sorti le 13 mars 2009
  • Il fonctionne sous .NET 3.5
  • Visual Studio 2008
  • Architecture de modèle MVC avec WebForm Engine
  • Les fonctionnalités principales incluent HTML et Tests unitaires, Aides Ajax, Routage, etc.

ASP.NET MVC2

  • Cette version est sortie le 10 mars 2010
  • Fonctionne sous .NET 3.5, 4.0 et avec Microsoft Visual Studio 2008
  • Inclure des fonctionnalités telles que des assistants basés sur des modèles, des assistants d'interface utilisateur avec génération automatique de code et des modèles personnalisables.
  • Il prend en charge les attributs DataAnnotations pour appliquer la validation du modèle côté client et côté serveur.

ASP.NET MVC3

  • Il est sorti le 13 janvier 2011
  • Fonctionne sur .NET 4.0 et avec Microsoft Visual Studio 2010
  • Utilisation de NuGet pour fournir des logiciels et vous permet de gérer les dépendances sur toute la plateforme
  • Rapidité JavaPrise en charge des scripts avec validation jQuery et liaison JSON
  • Il offre des fonctionnalités telles que le moteur de vues Razor et des attributs d'annotations de données améliorés pour la validation des modèles côté client et côté serveur.

ASP.NET MVC4

  • Cette version est sortie en août 2012
  • Il fonctionne sur .NET 4.0, 4.5 et avec Visual Studio 2010 et Visual Studio 2012
  • Améliorations apportées aux modèles de projet par défaut
  • Offre des fonctionnalités telles que le modèle de projet mobile utilisant jQuery Mobile, la prise en charge des tâches pour les contrôleurs asynchrones, le regroupement, la minification, etc.

ASP.NET MVC5

  • Sortie le 17 octobre 2013
  • Fonctionne avec .NET 4.5, 4.5.1 et avec Visual Studio 2012 et Visual Studio 2013.
  • Prend en charge le routage d'attributs dans MVC

Caractéristiques de MVC

  • Testabilité facile et sans friction
  • Contrôle total sur votre HTML, JavaScénario, et URLs
  • Tirer parti de l'existant ASP.NET Fonctionnalité
  • Une nouvelle option de présentation pour ASP.NET
  • Une façon plus simple de programmer en ASP.NET
  • Séparation claire de la logique : modèle, vue, contrôleur
  • Développement piloté par les tests
  • Prise en charge du développement parallèle

Choses à retenir lors de la création d'une application MVC

Voici quelques éléments utiles de ce didacticiel ASP.NET MVC dont vous devez vous souvenir pour créer une application MVC :

  • Il est important de rappeler qu'ASP.NET MVC ne remplace PAS les applications basées sur les formulaires Web ASP.NET.
  • L'approche de développement d'applications MVC doit être décidée en fonction des exigences de l'application et des fonctionnalités offertes par ASP.NET MVC afin de répondre aux besoins spécifiques de développement.
  • Le processus de développement d'applications avec ASP.NET MVC est plus complexe que celui des applications basées sur les formulaires Web.
  • La maintenabilité des applications est toujours plus élevée avec la séparation des tâches applicatives.

Modèle architectural MVC

Modèle architectural MVC

MVC est un modèle d'architecture logicielle qui suit le principe de séparation des préoccupations. Dans ce modèle, les applications .NET sont divisées en trois parties interconnectées : le Modèle, la Vue et le Contrôleur.

L'objectif du modèle MVC est que chacune de ces parties puisse être développée, testée de manière relativement isolée et également combinée pour créer une application très robuste.

Examinons-les tous en détail :

Modèles

Les objets de modèle sont des parties de l'application qui implémentent la logique de l'application. domaine de données. Il récupère et stocke l'état du modèle dans une base de données. Par exemple, un objet produit peut récupérer des informations à partir d'un base de données, opérer dessus. Écrivez ensuite les informations dans la table products du serveur SQL.

Vues

Les vues sont les composants utilisés pour afficher l'interface utilisateur (UI) de l'application, également appelée modèle de vue dans MVC. Elles affichent l'application .NET MVC créée à partir des données du modèle.

L'exemple courant serait une vue d'édition d'une table Item. Il affiche des zones de texte, des fenêtres contextuelles et des cases à cocher en fonction de l'état actuel des produits et des objets.

Contrôleur

Les contrôleurs gèrent l'interaction utilisateur, interagissent avec le modèle et sélectionnent une vue pour afficher l'interface utilisateur. Dans une application .NET MVC, la vue se contente d'afficher des informations ; le contrôleur gère et répond aux entrées et interactions de l'utilisateur grâce aux filtres d'action du modèle MVC.

Par exemple, le contrôleur gère les valeurs de chaîne de requête et transmet ces valeurs au modèle.

Formulaires Web contre MVC

Paramètres Formulaires Web MVC
Modèle Les formulaires Web ASP.NET suivent un modèle de développement piloté par les événements. ASP.NET MVC utilise un modèle de développement basé sur le modèle MVC.
Utilisé depuis Présent depuis 2002 Il est sorti pour la première fois en 2009
Prise en charge de l'état d'affichage ASP.NET Web Forms prend en charge la gestion de l'état côté client. .NET MVC ne prend pas en charge l'état d'affichage.
URL type ASP.NET Web Forms utilise des fichiers. URLs. Cela signifie que le nom du fichier existe dans le URLet ils doivent exister physiquement. ASP.NET MVC est basé sur les routes URLs cela signifie URLqui sont redirigés vers des contrôleurs et des actions.
Syntaxe Les formulaires Web ASP.NET suivent la syntaxe des formulaires Web. ASP.NET MVC suit une syntaxe personnalisable.
Type de vue Formulaire Web, les vues sont étroitement liées à Code derrière (ASPX-CS), c'est-à-dire la logique. MVC, les vues et la logique sont toujours conservées séparément.
Aspect et sensation uniformes Il comporte des pages maîtres pour une apparence cohérente. ASP.NET MVC propose des mises en page pour une apparence cohérente.
Code Réutilisable Web Form propose des contrôles utilisateur pour la réutilisation du code. ASP.NET MVC propose des vues partielles pour la réutilisation du code.
Contrôle pour HTML Less contrôle sur le rendu HTML. Contrôle total sur HTML
Gestion de l'État Gestion automatique de l'état des contrôles. Gestion manuelle de l'état.
Prise en charge du TDD TDD faible ou personnalisé requis. Encourage et inclut le TDD.

Avantages d'ASP.NET MVC

  • Applications hautement maintenables par défaut
  • Il vous permet de remplacer n'importe quel composant de l'application.
  • Meilleur support pour le développement piloté par les tests
  • Les applications complexes sont faciles à gérer grâce aux divisions Modèle, Vue et Contrôleurs.
  • Offrant un mécanisme de routage robuste avec un modèle de contrôleur frontal
  • Offre un meilleur contrôle sur le comportement des applications avec l'élimination de l'état d'affichage et des formulaires basés sur le serveur
  • Les applications .NET MVC sont prises en charge par de grandes équipes de développeurs et de concepteurs Web.
  • Il offre plus de contrôle sur les comportements de l'application. Il utilise également une bande passante optimisée pour les requêtes adressées au serveur

Inconvénients d'ASP.NET MVC

  • Vous ne pouvez pas visualiser l'aperçu de la page de conception comme pour une page .aspx.
  • Vous devez exécuter le programme à chaque fois pour voir sa conception réelle.
  • Comprendre le flux de l'application peut être difficile
  • C'est assez compliqué à mettre en œuvre, ce n'est donc pas une option idéale pour les applications de petit niveau.
  • Il est difficile d'apprendre MVC pour ASP.NET, car cela nécessite une grande compréhension du modèle MVC.

Meilleures pratiques lors de l'utilisation d'ASP.NET MVC

  • Créez un assembly séparé pour le MODÈLE en cas de code volumineux et complexe afin d'éviter toute situation indésirable.
  • Le modèle doit inclure la logique métier, la maintenance de session, la partie validation et la partie logique des données.
  • VIEW ne doit contenir aucune logique métier ni maintenance de session, utilisez ViewData pour accéder aux données dans View
  • La logique métier et l'accès aux données ne doivent jamais avoir lieu dans le contrôleur.
  • Le contrôleur ne doit être responsable que de la préparation et du renvoi d'une vue, de l'appel du modèle, de la redirection vers l'action, etc.
  • Supprimez le code de démonstration de l'application lors de sa création (Supprimer AccountController).
  • Utilisez uniquement un moteur de vue spécifique pour créer un balisage HTML à partir de votre vue, car il s'agit d'une combinaison de HTML et de code de programmation.

FAQ

Oui. GitHub Copilot peut générer une classe Controller avec des méthodes d'action, des attributs de route et des vues Razor correspondantes. RevVérifiez le code généré pour vous assurer de la liaison de modèle et de l'autorisation correctes avant de l'ajouter au projet.

Les assistants d'apprentissage automatique peuvent associer les pages Web Forms aux contrôleurs et aux vues, traduire le code-behind en méthodes d'action et signaler l'utilisation de ViewState. Le développeur doit néanmoins valider le routage, la liaison de modèles et chaque règle métier migrée.

ViewData est un dictionnaire d'objets indexés par des chaînes de caractères et conservé après une requête. ViewBag est un conteneur dynamique pour ViewData. TempData utilise l'état de session et est conservé après une redirection ; il sert donc à transmettre des données entre deux requêtes consécutives.

Le moteur de routage associe un flux entrant à un autre. URL par rapport aux modèles enregistrés dans RouteConfig. Lorsqu'un modèle correspond, MVC sélectionne le contrôleur et l'action, lie les paramètres éventuels et appelle l'action pour renvoyer un ActionResult.

Razor est une syntaxe compacte permettant d'intégrer du code C# ou VB.NET dans des fichiers .cshtml ou .vbhtml. Elle utilise le symbole @ pour passer du HTML au code, préserve la lisibilité des modèles et compile à l'exécution en classes performantes et fortement typées.

ASP.NET MVC classique s'exécute sur l'intégralité du framework .NET et Windows uniquement. ASP.NET Core MVC s'exécute sur .NET Core. Windows, Linux et macOS, utilise un modèle de contrôleur unifié avec une API Web et offre une injection de dépendances intégrée.

Utilisez ASP.NET Identity ou un fournisseur externe tel que Azure Utilisez AD pour vous connecter. Décorez un contrôleur ou une action avec l'attribut [Authorize] pour restreindre l'accès, et utilisez des paramètres de rôle ou de stratégie pour des règles plus précises.

Instanciez le contrôleur dans une méthode de test, injectez des services factices ou simulés via le constructeur, invoquez l'action et vérifiez que l'ActionResult renvoyé correspond au nom de vue, au modèle ou à la cible de redirection attendus.

Résumez cet article avec :