Meilleures pratiques dans ASP.Net MVC

Ceci est un autre article sur la série d'articles sur les meilleures pratiques. Dans celui-ci, je présenterai les meilleures pratiques à suivre tout en travaillant avec le framework ASP.Net MVC.

En quoi consiste le modèle de conception MVC?

Tout d'abord, faisons un rapide tour d'horizon des bases. En quoi consiste le modèle de conception MVC (Model View Controller)? Pourquoi est-ce nécessaire, de toute façon? Eh bien, l'interface utilisateur contient souvent beaucoup de code encombré, principalement en raison de la logique compliquée qu'elle doit gérer. Les modèles de présentation sont conçus principalement avec un objectif en tête: réduire le code complexe dans la couche de présentation et rendre le code de l'interface utilisateur propre et gérable.

Le framework MVC vous aide à créer des applications plus faciles à tester et à maintenir. Il comprend trois composants principaux, à savoir, le modèle (représente les données et la logique métier de l'application), la vue (cela représente la couche de présentation) et le contrôleur (cela représente généralement la logique métier de votre application). Le modèle de conception MVC vous permet d'isoler les problèmes et facilite le test et la maintenance du code de votre application.

Le controlle

Vous devez supprimer les fichiers de code de démonstration - le fichier AccountController.cs car vous n'en auriez pas besoin de toute façon. Le AccountController est créé par défaut et n'est pas nécessaire - supprimez-le! Vous devez également réduire le couplage entre vos contrôleurs et d'autres dépendances comme le composant d'accès aux données, les blocs d'exception et de journalisation, etc. Vos contrôleurs doivent être aussi minces que possible et contenir beaucoup moins de code. Idéalement, vous devez simplement déléguer le flux de contrôle à un composant de logique métier à l'intérieur de votre classe de contrôleur. Le contrôleur d'une application ASP.Net MVC doit être isolé de la couche d'accès aux données - le contrôleur est responsable de rendre la vue appropriée au moment de l'exécution en fonction de certaines actions.

Regroupement et réduction du script et des fichiers CSS

Vous devez regrouper les ressources que votre application doit utiliser comme des fichiers CSS dans une ressource téléchargeable. Ce processus est également connu sous le nom de regroupement. Vous devez également réduire au minimum les scripts et les fichiers CSS que vous utiliseriez pour supprimer les caractères inutiles, les commentaires et les espaces blancs.

L'extrait de code suivant illustre comment vous pouvez créer un objet bundle pour le CSS que votre application doit utiliser.

public static void RegisterBundles (

                       BundleCollection)

{

   bundles.Add (nouveau StyleBundle ("~ / Content / Styles")

       .Include ("~ / Contenu / Styles / bootstrap.css",

                "~ / Contenu / Styles / .css"));

}

Le code suivant montre comment vous pouvez regrouper les fichiers de script que vous devez utiliser dans votre application.

  .Comprendre(

     "~ / Content / Scripts / -1.0.0.js",

     "~ / Content / Scripts / knockout-3.0.0.js")

);

Notez comment la classe ScriptBundle est utilisée pour regrouper le contenu du script. De même, la classe StyleBundle (comme indiqué dans l'exemple précédent) est utilisée pour regrouper le contenu css dont nous avons parlé précédemment.

Vous devez également désactiver la vérification des itinéraires à moins que cela ne soit absolument nécessaire afin d'éliminer les frais généraux de traitement inutiles impliqués.

Vues

Dans la mesure du possible, vous devez utiliser des vues fortement typées - je vous recommande d'envoyer des POCO aux vues de votre application ASP.Net MVC. Vous devez effectuer tout le traitement dans vos contrôleurs et non dans les vues - les vues doivent être allégées et ne doivent contenir aucun code de logique métier. Vous devez utiliser une quantité minimale de TagHelpers dans vos helpers Html et vous devez vous rappeler d'utiliser HtmlHelpers uniquement lorsque vous avez besoin de prendre des décisions conditionnelles sur les données via les vues. Si une instruction conditionnelle est nécessaire dans votre vue, vous devez la déplacer vers un HtmlHelper. Les HtmlHelpers ne doivent jamais contenir de code qui appelle la couche d'accès aux données, c'est-à-dire que vous devez vous abstenir d'écrire une logique d'accès aux données à l'intérieur des HtmlHelpers. Vous ne devez pas mettre de code JavaScript dans votre vue - séparez-les dans des fichiers de script distincts.

Cachez vos données

Pour améliorer les performances et la réactivité de votre application, vous pouvez profiter de la mise en cache. La mise en cache est une technique qui vous permet de stocker des données relativement obsolètes dans la mémoire afin de réduire la consommation de bande passante du réseau. L'extrait de code suivant montre comment vous pouvez utiliser la mise en cache dans vos contrôleurs.

Contrôleur de classe publique: Contrôleur

{

    [OutputCache (Durée = 3600,

VaryByParam = "aucun")]

    Index ActionResult public ()

    {

    }

}

Vous devez également mettre en cache les pages fréquemment consultées qui contiennent des données partagées et qui n'ont pas besoin d'être autorisées. L'extrait de code suivant montre comment procéder.

[OutputCache (Durée = 3600)]

Index ActionResult public ()

{

  return View ("Index", myDataObject);

}

Le modèle de conception MVC permet d'appliquer une séparation nette des préoccupations entre les modèles, les vues et les contrôleurs de votre application. Cela permet à votre code d'être facilement testé et maintenu. J'ai discuté de certains points importants que vous pouvez prendre en compte lorsque vous travaillez avec ASP.Net MVC pour créer des applications hautement performantes, plus faciles à tester, à maintenir et à mettre à l'échelle. J'en discuterai plus sur ASP.Net MVC dans les prochains articles ici. Alors restez à l'écoute!