Pregunta

Estoy tratando de presentar las mejores prácticas en la estructura de directorios del proyecto.

mi último pensamiento es que no debería haber clases en el directorio raíz de un proyecto. Todas las clases deben ir bajo uno de los siguientes directorios

  • UI
  • BusinessObjects
  • BusinessLogic
  • DataAccess

Me gustaría escuchar a otras personas pensar si hay casos de uso para poner las cosas en el nivel raíz o encontrar clases que no encajan

¿Fue útil?

Solución

Si está hablando de C #, entonces separaría su DAL, BLL, GUI a diferentes proyectos en lugar de un proyecto. Y tiene una solución. Esto obligará a cada archivo de código a estar dentro de uno de los proyectos.

He agregado un ejemplo:

  • Solución: ProjectName
    • Proyecto: DAL (Espacio de nombres: ProjectName.DAL)
      • Carpeta: repositorios (espacio de nombres: ProjectName.DAL.Repositories)
      • Carpeta: Contratos (espacio de nombres: ProjectName.DAL.Contracts)
      • Archivos: su configuración de mapeo de entidad
    • Proyecto: BLL (Espacio de nombres: ProjectName.BLL)
      • Carpeta: Servicios (espacio de nombres: Project.BLL.Services)
      • Carpeta: Entidades (espacio de nombres: Project.BLL.Entities)
      • Archivos: clases de configuración de IoC / lógica de negocios general
    • Proyecto: Compartido (Espacio de nombres: ProjectName.Shared)
      • Archivos: lógica compartida general a través de toda su aplicación (por ejemplo, una constante InvalidIdentifier) ??
      • Este proyecto no debe hacer referencia a otros proyectos en la solución ..
    • Proyecto: Sitio web (Espacio de nombres: ProjectName.Website)
      • La interfaz de usuario de su sitio web asp.net
    • Proyecto: Winforms (Espacio de nombres: ProjectName.Winforms)
      • La interfaz de usuario de tu winforms

Si es posible, debe dar al sitio web y al proyecto winforms un nombre relativo a su aplicación.

Otros consejos

Este blog debería proporcionarle una lectura interesante, a pesar de tener tres años . Podría darle ideas además de las de la estructura de directorios.

Los únicos archivos que pongo en la carpeta raíz son Program.cs y Program.ico (si es una aplicación ejecutable).

No lo hago, pero no tiene nada que ver con la estructura de directorios (para mí). Quiero todo mi código en espacios de nombres significativos.

Siempre pongo la clase base para las excepciones de mis proyectos en la raíz.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top