Cómo configurar el control de origen con múltiples productos, todo depende de una sola biblioteca de clases

StackOverflow https://stackoverflow.com/questions/1406653

Pregunta

Soy el CTO y el único desarrollador de mi empresa. Me estoy preparando para contratar a nuestro primer desarrollador y posiblemente a un segundo dentro de los próximos 6-12 meses. Me avergüenza decir que nunca he usado el control de código fuente como parte de mi flujo de trabajo. Supongo que ser un equipo de desarrollo de 1 miembro me ha permitido ser un poco perezoso. No es que no haya querido hacerlo, solo tengo un poco de bloqueo mental sobre cómo empezar a usarlo.

Tenemos 5 aplicaciones web que construyo y mantengo. Utilizamos ASP.NET, y cada aplicación web hace referencia a una única Biblioteca de clases .NET (DLL) que se ha copiado en el " bin " Carpeta para cada aplicación. He estado desarrollando con una única solución de Visual Studio " " que incluye la biblioteca de clases y todas las aplicaciones web. Estoy un poco hinchado, estoy seguro, pero este método me ha facilitado la minimización de errores al permitirme realizar operaciones globales de búsqueda y reemplazo en todas mis aplicaciones (y la biblioteca de clases) al mismo tiempo.

Me doy cuenta de que implementar el control de código fuente es un gran cambio en mi flujo de trabajo por sí solo, pero al introducir a otro desarrollador en mi proceso me siento un poco abrumado. Estoy buscando ayuda sobre cómo desarrollar un flujo de trabajo que permita a mi pequeño equipo moverse rápidamente sin procesos engorrosos. Me gustaría evitar las discusiones sobre qué sistema SCC elegir (vamos a utilizar Mercurial). Estoy más interesado en discutir los aspectos de la estructura y el flujo de trabajo de esto.

Aquí están las preguntas con las que necesito ayuda:

  1. ¿Debo dividir cada aplicación en un " proyecto " " o manténgalos todos juntos para que podamos continuar beneficiándonos de las operaciones globales de búsqueda y reemplazo cuando sea necesario. Me preocupa dividirlos debido a la situación de la biblioteca de la clase (ver # 2).

  2. Si se dividen las aplicaciones en proyectos separados, no estoy seguro de cómo proceder con la biblioteca de clases de la que cada proyecto necesita una copia. Por ejemplo, digamos que los cambios en una de las aplicaciones (llamémoslo " proyecto 1 ") requieren un cambio en la biblioteca de clases ... si la biblioteca de clases está en un proyecto separado (llamémoslo " proyecto 2 ") , parece " desordenado " Para mí, el proyecto 1 dependería de los últimos cambios en el proyecto 2 para funcionar correctamente. O, simplemente realiza los cambios en el proyecto 2 (la biblioteca de clases), los registra y luego copia la nueva dll compilada en el proyecto 1 (pero la copia nueva de la dll que se está copiando en el proyecto 1 no debe grabarse en el SCC de alguna manera). Me estoy confundiendo incluso mientras escribo esto ...

Gracias de antemano por tu ayuda.

¿Fue útil?

Solución

Primero, felicitaciones por decidir finalmente usar el control de código fuente. Sé que cambiar tus hábitos puede ser frustrante, pero a largo plazo estoy seguro de que verás los beneficios.

  1. No hay nada de malo en una solución que tenga múltiples proyectos. Generalmente mantengo el mío a aproximadamente 10, pero eso es simplemente para mejorar los tiempos de carga. Si mantenerlos juntos funciona mejor para ti, déjalo así. El uso del control de código fuente no tendrá ningún efecto en esto.
  2. En cuanto a la biblioteca de clases, creo que lo que debe hacer es cambiar la forma en que realiza los cambios en el proyecto de la biblioteca en lugar de cómo utiliza los proyectos que lo hacen referencia. Implemente pruebas unitarias en el proyecto de la biblioteca para imponer la compatibilidad con versiones anteriores para que sepa que al descartar la última versión de la biblioteca no se interrumpirá su aplicación. Probablemente encontrará que esto no será cierto varias veces, pero a medida que desarrolle más pruebas unitarias para manejar los casos perimetrales, esto sucederá cada vez menos.

Otros consejos

Puede tener múltiples proyectos en una sola solución de Visual Studio. Lo que he hecho en el pasado es tener el proyecto ASP.NET y el proyecto de biblioteca de clases en la misma solución. Puede hacer que su proyecto ASP.NET haga referencia al proyecto de la biblioteca de clases (Agregar referencia y luego vaya a la pestaña Proyectos para mostrar otros proyectos en la misma solución). De esa manera, siempre que cambie la biblioteca de clases, la aplicación ASP.NET se construirá utilizando la última versión de la biblioteca de clases. Puede configurar múltiples soluciones, una para cada aplicación ASP.NET con cada solución, incluido el proyecto de biblioteca de clase.

También puede configurar una gran solución con todos sus proyectos ASP.NET, así como su biblioteca de clases, pero puede ser un poco difícil trabajar con ellos, especialmente con múltiples desarrolladores que trabajan en las diferentes páginas ASP.NET.

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