La mejor práctica para crear una nueva aplicación en el mismo espacio de nombres

Tenemos una gran solución .NET con varios proyectos, todos almacenados en una sola Colección TFS. Somos un pequeño equipo de desarrollo que desarrolla principalmente software interno y normalmente no hacemos muchas ramificaciones o fusiones. Estamos a punto de volver a desarrollar totalmente una de nuestras aplicaciones desde cero, por lo que vamos a empezar de cero con un nuevo proyecto. Este proyecto debe tener el mismo espacio de nombre, nombre, nombre de ensamblaje, etc. como el proyecto que está reemplazando, pero durante este time todavía necesitaremos respaldar y mantener el proyecto anterior, así como todos los otros proyectos en la solución.

¿Cuál es la forma correcta de hacer esto? ¿Debo ramificar toda la solución o solo el proyecto en cuestión? En este último caso, ¿cómo manejo las dependencies al rest de la solución?

Dado que la aplicación reconstruida va a replace por completo la aplicación existente, y suponiendo que tiene las twigs principales y de desarrollo existentes, así:

Main (solution containing live v1.x application) | +---> Development (solution containing v1.(x+1) application) 

Crearía una nueva twig para la solución desde la twig Principal, en la que se creará la aplicación v2.0:

 Main (solution containing live v1.x application) | +---> Development (solution containing v1.(x+1) application) | +---> Dev2.0 (solution containing v2.0 application) 

De esta manera:

  • los cambios en la base de código V1.x existente y sus otros proyectos se pueden trabajar dentro de la twig v1;
  • la twig v2 se usaría únicamente para la remodelación;
  • cualquier actualización de los proyectos existentes que requiera la aplicación v2.0 se puede recoger desde la twig Principal después de fusionarse desde la twig V1.0 Dev.

Probablemente sea mejor ramificar toda la solución. De esta manera, puede mantenerlo por separado mientras está en producción. Cuando la nueva base de código esté list, puede bloquear la twig original para mantenerla protegida. Es más fácil de administrar y siempre sabrás en qué versión de la aplicación estás trabajando.