Mis proyectos son enormes.
Separamos cada "módulo" en diferentes conjuntos, creando bibliotecas de clases. Algo como esto:
Client.ProjectName (Solution)
Client (Class Library)
- SectionHandler...
- ComponentModels...
- Utilities...
Client.Web (Class Library)
- Handelrs
- Extenders
Client.Net (Class Library)
- MailQueue
Client.Blog.WebControls.UI (Class Library)
- TopContent.ascx
- PostsList.ascx
Client.News.WebControls.UI (Class Library)
- TopContent.ascx
- PostsList.ascx
Client.Website
Cada Class Library
es un proyecto en la solución Client.ProjectName
o bajo alguna otra solución compartida.
El sistema de archivos tiene el siguiente aspecto:
Client
|- Framework
|- Client
|- files...
|- Client.Web
|- files...
|- Client.Net
|- files...
|- SolutionName
|- Client.Blog.WebControls.UI
|- Client.News.WebControls.UI
|- Website
libs cliente compartido va inmediatamente debajo de la carpeta Client\Framework
, que está destinado a ser utilizado en todos los proyectos para este cliente. Los proyectos específicos quedan bajo la solución. También tenemos una carpeta llamada Company
donde guardamos proyectos que se pueden usar en cualquier otro proyecto para cualquier cliente, es como el marco de trabajo de la compañía.
Las soluciones que utilizan:
- Uno para el marco empresa
- Uno para un marco cliente
- Uno para cada solución de cliente
El mismo proyecto se puede hacer referencia en múltiples soluciones, por lo que no necesariamente es necesario crear todas esas soluciones.
Con este formato podríamos usar muchas cosas en otros proyectos simplemente haciendo referencia a una DLL. Sin esta estructura, algunos proyectos no serían posibles en el tiempo dado.
¿cómo se asigna a soluciones/proyectos/carpetas? –