28 votes

Meilleures pratiques pour ASP.NET MVC

En fait, cette "question" est destiné à mutualiser les informations sur les meilleures pratiques dans la communauté. Les raisons pour cela sont:

  • L'absence évidente d'une communauté basée ASP.NET MVC de ressources pour les meilleures pratiques. Oui, je suis conscient de wiki.asp.net.
  • Je suis douloureusement conscient que l'ASP.NET wiki sur ASP.NET MVC est très petite et terriblement obsolète et doit donner de la consistance plus par Microsoft avant que la communauté ne fait rien avec elle.
  • Je suis très intéressé par les meilleures pratiques en général, après en avoir eu une certaine expérience avec ASP.NET MVC au cours de la dernière année, mais je suis aussi conscient que je ne suis pas expert, et que je peux améliorer. Ce post, je crois, peut aider à cela, et vous.

J'ai donné beaucoup de réflexion sur si oui ou non je devrais poser cette question, allant même à la longueur de la création d'une question sur meta sur la création de cette question. :)

Ce que je cherche, c'est pour les meilleures pratiques de l'information sur tous les aspects de la ASP.NET MVC. Les contrôleurs, les modèles, les extensions HTML helpers, route des bâtisseurs, des TDD.

Dans le passé, j'ai trouvé des ressources, telles que Kazi Manzur Rashid's les meilleures pratiques (partie 1 et 2) post très utile, le long de avec Maarten Balliauw's de la pesée, mais ceux-ci ont séché un peu, et je m'attendais à une plus dynamique et en pleine croissance référentiel d'informations provenant de différentes personnes, plutôt que de simplement les occasionnels entrée de blog à partir d'individus instruits. Des informations de ce type est peu et loin entre, et ASP.NET MVC ressources de la communauté, encore moins.


MVC en général

Modèle

N'hésitez pas à ajouter les liens du modèle

Vues

Contrôleur

N'hésitez pas à ajouter contrôleur de liens


Lignes directrices:

  • Une "meilleure pratique" par réponse
  • Prendre le temps d'expliquer pourquoi il doit être privilégiée sur les solutions de rechange.
  • Lire les réponses existantes premier - si vous en voyez un, vous acceptez, en hausse de vote; si vous êtes en désaccord, en bas de voter et de laisser un commentaire en expliquant pourquoi.
  • N'hésitez pas à modifier toute réponse, si vous pouvez étendre la raison pour laquelle il est "meilleur"!

P. S. Merci de ne pas juste mettre "n'importe Quoi par Phil Haack, Scott Guthrie, Rob Conery ou Scott, Hanselman"!

10voto

Jason Points 11332

Utilisez T4MVC pour éliminer toutes les chaînes magiques et les types magiques anonymes de tout votre projet. Cela vous aidera à refactoriser plus tard dans votre projet et (en plus d'avoir à vous assurer que vos itinéraires sont bien définis) tous les appels à l'action obtiennent leurs paramètres appropriés. Il change les appels comme ceci:

 <%= Html.ActionLink("Link text", "Products", "Details", new { id = Model.Id }) %>
 

Dans:

 <%= Html.ActionLink("Link text", MVC.Products.Details(Model.Id)) %>
 

7voto

Hrvoje Points 4248
  1. Cio/DI pour le Contrôleur d'usine (donc je peux injecter IRepository, ISomeService dans les contrôleurs constructeur)
  2. ne jamais accéder à HttpContext directement, construire wrapper, de sorte qu'il peut être l'objet de tests unitaires
  3. Cadre de Validation pour le modèle de liaison de validations (xVal ou FluentValidation). La validation intégrée à l'intérieur de MVC 1 est de base
  4. ne jamais utiliser de la magie des cordes": pour l'appel aux contrôleurs/actions à partir de la Vue, pour RouteLink, RenderPartial, RenderAction, ...
  5. n'utilisez jamais de ViewData, construire DTO classes ViewModel. Utilisation AutoMapper pour la cartographie des données de domaine entités ViewModel DTO objets pour Afficher

ViewModel DTO objets:
BaseViewModel classe abstraite, avec des propriétés de rendu de la page méta-données, les menus et tous les autres trucs qui apparaît sur chaque page. Toutes les autres classes ViewModel hérite de BaseViewModel.

7voto

MunkiPhD Points 2610

Gardez toute logique hors de votre vue. Votre contrôleur doit déterminer ce qui est affiché - votre vue doit être stupide.

3voto

klabranche Points 15518

Bien qu'il ne s'agisse pas d'un site de bonnes pratiques, le site ci-dessous fait de grandes choses avec asp.net MVC qui pourraient probablement être considérées comme des meilleures pratiques.

http://www.codeplex.com/MVCContrib

3voto

Martin Points 7782

Il y a 2 chapitres gratuits disponibles pour le livre "MVC in Action".

http://www.manning.com/palermo/

Le chapitre 12 est les meilleures pratiques.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X