Pregunta

Cuando desdoblamiento una solución en la lógica de las capas, cuando es la mejor para utilizar en un proyecto separado, sobre la agrupación por una carpeta?

¿Fue útil?

Solución

Por defecto, siempre acaba de crear una nueva carpeta dentro del mismo proyecto

  • Usted recibirá una sola asamblea (sin adicionales ILMerge de gimnasia)
  • Más fácil para ofuscar (porque tendrá menos público, tipos y métodos, idealmente ninguno en absoluto)

La separación de su código fuente en varios proyectos sólo tiene sentido si usted...

  • Tiene algunas partes del código fuente de la que son parte del proyecto, pero no se desplieguen por defecto o en todos (unidad de pruebas, complementos extra, etc.)
  • Más desarrolladores involucrados y desea para el tratamiento de su trabajo como de los consumibles de caja negra.(no muy recomendado)
  • Si se puede separar claramente su proyecto en capas aisladas/módulos y usted quiere asegurarse de que no pueden cruzar-consumir interna los miembros de la.(no se recomienda debido a que usted tendrá que decidir qué aspecto es el más importante)

Si usted piensa que algunas partes de su código fuente puede ser reutilizable, todavía no crear un nuevo proyecto.Sólo tiene que esperar hasta que usted realmente desea volver a utilizarlo en otra solución, y aislarlo de proyecto original como sea necesario.La programación no es un lego, la reutilización es generalmente de muy difícil y a menudo no sucede como estaba previsto.

Otros consejos

La separación de funciones en los proyectos, es a menudo un YAGNI arquitectura de optimización.¿Con qué frecuencia ha reutilizado los proyectos independientes, en realidad?Si no es una ocurrencia frecuente, estás complicando su desarrollo, construcción, implementación y mantenimiento de reutilización teórica.

Yo prefiero separar en carpetas (uso apropiado de los espacios de nombres) y refactorización de código para proyectos independientes cuando tienes una vida real de la reutilización de casos de uso.

denny escribió:

Yo, personalmente, siento que si reutilizables de código está dividido en los proyectos es más fácil de usar otros lugares que si es sólo en carpetas.

Estoy muy de acuerdo con esto - si se puede reutilizar, debe ser en un proyecto independiente.Con eso dicho, es también muy difícil reutilización efectivamente :)

De aquí a ENTONCES, hemos tratado de ser muy simple con tres proyectos:

  • MVC Web del proyecto (lo que hace un buen trabajo de separación de las capas en carpetas por defecto)
  • Proyecto de base de datos para control de código fuente de nuestra DB
  • La unidad de pruebas contra MVC modelos de controladores/

No puedo hablar por todos, pero yo estoy feliz con lo fácil que nos lo han mantenido - realmente velocidades de las generaciones a lo largo de!

Yo suelo hacer un proyecto para la interfaz de usuario de un proyecto para la lógica de negocio de un proyecto para el acceso a datos y un proyecto para la unidad de pruebas.

Pero a veces es prudente tener una separación basada en servicios (si usted está utilizando una arquitectura orientada a servicios), Tales como la Autenticación, Ventas, etc.

Supongo que la regla general de que yo trabajo fuera de es que si se puede ver como un componente que tiene una clara separación de preocupaciones, a continuación, un proyecto diferente podría ser prudente.Pero yo creo que las carpetas frente a los proyectos podría ser simplemente una preferencia o la filosofía.

Yo, personalmente, siento que si reutilizables de código está dividido en los proyectos es más fácil de usar otros lugares que si es sólo en carpetas.

La separación de su código fuente en varios proyectos sólo tiene sentido si usted......Más desarrolladores involucrados y usted quiere tratar a su trabajo como consumibles de caja negra.(no muy recomendado) ...

¿Por qué no esta recomendado?He descubierto que es una forma muy útil para administrar una aplicación con varios desarrolladores trabajando en diferentes porciones.Hace confirmaciones mucho más fácil, principalmente por prácticamente la eliminación de las combinaciones.Muy raramente dos desarrolladores tienen que trabajar en el mismo proyecto al mismo tiempo.

Si usted va para la creación de varios proyectos, asegúrese de que todos los que se agrega código a la solución es plenamente consciente de la intención de ellos y hacer todo lo posible para llegar a comprender las dependencias entre los proyectos.Si alguna vez has tratado de arreglar el desastre cuando alguien ha ido y agregar las referencias que no debería haber estado allí y salí con él durante semanas usted va a entender este punto

Realmente creo que es mejor dividir el proyecto, pero todo depende del tamaño del proyecto y el número de personas que trabajan en ella.

Para proyectos más grandes, tengo proyectos para

  • de acceso a datos (modelos)
  • servicios
  • front end
  • pruebas

Tengo el modelo de Rob Connery y su tienda de aplicaciones...parece que funciona muy bien.

mvc-tienda

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