vscode visual una studio snippets que integra funcionalidad facilita extensions conocida configurar como code autocompletar visual-studio design projects-and-solutions

snippets - Carpetas o proyectos en una solución de Visual Studio?



visual studio code integra una funcionalidad conocida como intellisense que facilita la (7)

Separar el código fuente en varios proyectos tiene sentido si ... ... Más desarrolladores participan y desea tratar su trabajo como una caja negra consumible. (no muy recomendado) ...

¿Por qué no se recomienda esto? Encontré que es una forma muy útil de administrar una aplicación con varios desarrolladores trabajando en diferentes porciones. Hace que checkins sea mucho más fácil, principalmente al eliminar virtualmente las fusiones. Muy rara vez dos desarrolladores tendrán que trabajar en el mismo proyecto al mismo tiempo.

Al dividir una solución en capas lógicas, ¿cuándo es mejor utilizar un proyecto separado que simplemente agruparlo en una carpeta?


Denny escribió:

Personalmente, creo que si el código reutilizable se divide en proyectos, es más sencillo usar otros lugares que si solo estuviera en carpetas.

Realmente estoy de acuerdo con esto: si puedes reutilizarlo, debería estar en un proyecto separado. Dicho esto, también es muy difícil de reutilizar con eficacia :)

Aquí en SO, hemos tratado de ser muy simples con tres proyectos:

  • Proyecto MVC Web (que hace un buen trabajo al separar tus capas en carpetas por defecto)
  • Proyecto de base de datos para el control fuente de nuestra base de datos
  • Pruebas unitarias contra modelos / controladores MVC

No puedo hablar por todos, pero estoy contento con lo simple que lo hemos mantenido, ¡realmente acelera las construcciones!


Normalmente hago un proyecto para la GUI, un proyecto para la lógica de negocios, un proyecto para acceso a datos y un proyecto para pruebas unitarias.

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

Supongo que la regla de oro con la que trabajo es que si puedes verlo como un componente que tiene una clara separación de preocupaciones, entonces un proyecto diferente podría ser prudente. Pero creo que las carpetas versus los proyectos podrían ser solo una preferencia o filosofía.

Personalmente, creo que si el código reutilizable se divide en proyectos, es más sencillo usar otros lugares que si solo estuviera en carpetas.


Por defecto, siempre solo crea una nueva carpeta dentro del mismo proyecto

  • Obtendrás ensamblaje único (sin ILMerge gimnástico adicional)
  • Es más fácil de ofuscar (porque tendrás menos tipos y métodos públicos, idealmente ninguno)

Separar tu código fuente en múltiples proyectos solo tiene sentido si ...

  • Tener algunas partes del código fuente que son parte del proyecto pero que no se pueden implementar por defecto o en absoluto (pruebas de unidades, complementos adicionales, etc.)
  • Más desarrolladores involucrados y quieres tratar su trabajo como caja negra consumible. (no muy recomendado)
  • Si puede separar claramente su proyecto en capas / módulos aislados y quiere asegurarse de que no puedan consumir miembros internos de forma cruzada. (tampoco recomendado porque tendrás que decidir qué aspecto es el más importante)

Si cree que algunas partes de su código fuente podrían ser reutilizables, aún así no las cree como un proyecto nuevo. Simplemente espere hasta que realmente desee reutilizarlo en otra solución y aislarlo del proyecto original según sea necesario. La programación no es un lego, la reutilización suele ser muy difícil y, a menudo, no ocurrirá según lo planeado.


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

Para proyectos más grandes, tengo proyectos para

  • acceso a datos (modelos)
  • servicios
  • Interfaz
  • pruebas

Obtuve el modelo de Rob Connery y su aplicación de escaparate ... parece funcionar muy bien.

mvc-storefront


Separar las características en los proyectos suele ser una optimización de la arquitectura YAGNI. ¿Con qué frecuencia ha reutilizado esos proyectos separados realmente? Si no es una ocurrencia frecuente, está complicando su desarrollo, construcción, despliegue y mantenimiento para su reutilización teórica.

Prefiero separarme en carpetas (usando espacios de nombres apropiados) y refactorizar para separar proyectos cuando tienes un caso de uso de reutilización real.


Si decide crear varios proyectos, asegúrese de que todos los que agreguen el código a la solución tengan plena conciencia de la intención de ellos y hagan todo lo posible para que comprendan las dependencias entre los proyectos. Si alguna vez ha tratado de resolver el problema cuando alguien se ha ido y ha agregado referencias que no deberían haber estado allí y se salió con la suya durante semanas, comprenderá este punto.