2008-11-22 15 views
5

J'essaie de trouver une meilleure pratique sur la structure du répertoire de projet.Est-il correct d'avoir du code à la racine d'un projet?

ma dernière idée est qu'il ne devrait pas y avoir de classes dans le répertoire racine d'un projet. Toutes les classes doivent passer sous l'un des répertoires suivants

  • UI
  • BusinessObjects
  • BusinessLogic
  • DataAccess

je voudrais entendre d'autres personnes pensaient que le cas il y a des cas d'utilisation pour mettre les choses à la racine ou trouver des classes qui ne rentre pas dans

Répondre

8

Si vous parlez de C# alors je séparerais votre DAL, BLL, GUI à différents projets au lieu d'un projet. Et avoir une solution. Cela forcera chaque fichier de code à être à l'intérieur de l'un des projets.

J'ai ajouté un exemple:

  • Solution: ProjectName
    • projet: DAL (namespace: ProjectName.DAL)
      • Dossier: Référentiels (namespace: ProjectName.DAL. Repositories)
      • Dossier: Contrats (Espace de nommage: ProjectName.DAL.Contracts)
      • Fichiers: Votre Entité configuration Mapping
    • du projet: BLL (namespace: ProjectName.BLL)
      • Dossier: Services (Espace de noms: Project.BLL.Services)
      • Dossier: Entités (Espace de noms: Project.BLL. entités)
      • fichiers: classes de configuration générale/IoC Logic Business
    • projet: partagé (namespace: ProjectName.Shared)
      • Fichiers: logique générale partagée throught l'ensemble de votre application (par exemple une constante de InvalidIdentifier) ​​
      • Ce projet ne doit pas faire référence à d'autres projets dans la solution ..
    • Projet: Site Web (namespace: ProjectName.Website
      • Votre asp.site net UI
    • Projet: Winforms (namespace: ProjectName.Winforms)
      • Votre WinForms UI

Si possible, vous devez donner le site et WinForms projet une nom relatif à votre application.

1

blog devrait vous fournir une lecture intéressante, en dépit d'avoir trois ans. Il pourrait vous donner des idées autres que celles de la structure de répertoire.

0

Les seuls fichiers que je mets dans le dossier racine sont Program.cs et Program.ico (si elle est application exécutable).

0

Je ne le fais pas, mais cela n'a rien à voir avec la structure du répertoire (pour moi). Je veux tout mon code dans des espaces de noms significatifs.

0

Je place toujours la classe de base pour mes exceptions de projets dans la racine.