2010-09-18 5 views
3

Un peu une question stupide, mais si je veux créer une classe personnalisée qui n'est pas un contrôleur ou un modèle, où dois-je le mettre. Dans WebForms, j'ai stocké toutes mes classes dans le dossier App_Code, mais il semble que les classes ne sont pas stockées dans MVC.Où stocker des classes personnalisées dans ASP.NET MVC?

Cela importe-t-il même?

Répondre

10

Il existe de nombreuses options. Certaines personnes créent simplement de nouveaux dossiers dans le projet ASP.NET MVC. D'autres (moi compris) créent des projets entièrement nouveaux.

Une méthode que je suis plutôt satisfait est de briser vos projets en fin ...

  • MyApp.Core < - Toute la logique d'affaires, pas de choses DB/Web
  • MyApp.Infrastructure < - DB/smtp/journal des événements
  • MyApp.UI.Web < - le projet ASP.NET MVC
  • MyApp.Tests

J'ai aussi vu ces ...

  • MyApp.ApplicationServices
  • MyApp.UI.Controllers

Je suggère de prendre un coup d'oeil à tous les différents projets ASP.NET MVC là-bas dans le monde open source pour voir comment ils organisent leurs projets (Serveur Code Camp, Store avant, Sharp Architecture, Nerd Dinner 2, et beaucoup d'autres). Je pense que cela vous ouvrira sur un monde de nouvelles possibilités (inversion du contrôle, modèle de dépôt, etc.). Cela dit, c'est difficile et je l'assimilerais au scénario pilule bleue/pilule rouge.

EDIT: Pour répondre à votre autre question ...

Je dirais que ce qui importe, mais seulement dans le sens où tout casser en couches jusqu'à vous aide à réaliser un couplage lâche. Si vous gardez tout dans un projet, vous serez tenté de brouiller les lignes entre la présentation, les affaires et la base de données. Mais si vous divisez tout et que vous connaissez vos références de projet, le manque de couplage sera beaucoup plus apparent et vous aurez beaucoup plus de chances de parvenir à une séparation des préoccupations (SoC). SoC ouvre la porte aux tests unitaires et facilite la maintenance.

+0

SoC! = Emplacement du fichier physique – jfar

+3

Emplacement du fichier physique facilitant le transfert de données – Mayo

Questions connexes