4

Dans ASP/net MVC, le projet est divisé en modèles, vues et contrôleurs. Bien pour l'instant. Dites que j'ai une «personne» de classe, que le contrôleur de personnes remplit avec des données, en utilisant le modèle de personne.C# MVC - structure des dossiers - où placer les classes?

Où est-il préférable de mettre ma classe person.cs? Dans les contrôleurs ou dans le dossier des modèles? Que faire?

Merci

Frank

+1

Vous me confondez. Est-ce que Person n'est pas votre modèle? Qu'est-ce que c'est, si ce n'est pas le modèle? (et je suppose que vous le capitaliserez également) –

Répondre

5

Je créer un autre projet de bibliothèque de classes dans la solution, définir mes classes et ensuite référencer ma bibliothèque dans mon application ASP.Net MVC.

WebApp Solution 
|-MyMVCProject 
    |-Models 
    |-Controllers 
    |-Views 
|-MyMVCProject.Domain (you'd put your models here) 
    |-Person.cs 
|-MyMVCProject.Services (you'd put entity services here) 
+0

Maintenant, cela a du sens ... –

5

Je considérerais personne un modèle et le mettre dans le dossier Modèles. C'est là que je garde mes modèles de vue. Les modèles d'entreprise sont normalement conservés dans un projet de données distinct - j'aime que ma couche de données soit autonome afin que je puisse l'utiliser dans d'autres projets si je le souhaite. Vous pouvez envisager de créer des bibliothèques de classes distinctes pour d'autres types de classes (méthodes d'extension, aides, etc.) qui ne rentrent pas dans la catégorie des contrôleurs ou des modèles.

+0

Merci beaucoup - je n'étais pas sûr, pensais-je. –

1

Actuellement projet assez grand, j'ai mes cours divisé en différents projets de bibliothèque de classe qui sont nommés Repository (pour les interfaces d'accès aux données et classes de données d'affaires), Utils (pour les classes utilitaires) et DataAccess (implémentations d'interfaces de référentiel). Sous ceux-ci, je les ai divisés en sous-répertoires (ou devrais-je dire espaces de noms), puis utiliser Resharper pour appliquer ces espaces de noms.