c# - retorno - proyecto de inversion
¿La mejor manera de organizar proyectos dependientes? (3)
¿Realmente necesitan las utilidades de inmediato, en el momento en que las cambias? Esto usualmente no es verdad.
Por lo general, es mejor dejar que los colegas "tiren" el último código en su próximo punto conveniente, cuando se fundan en sus propios cambios.
Estás usando un sistema de control de fuente, ¿verdad?
Si hace que todos utilicen una copia en un servidor compartido, es posible que tenga problemas para actualizar los archivos binarios mientras se usan, o puede causar que algunos usos produzcan resultados inconsistentes.
Si realmente necesitan actualizarse en un instante específico (por ejemplo, las utilidades funcionan poniéndose en contacto con alguna base de datos central con un esquema que está evolucionando, entonces necesita actualizar los binarios de todos en el mismo momento en que actualiza el esquema de la base de datos) entonces Sugeriría convertir las utilidades en servicios web. Hay muchas formas muy sencillas de hacer esto. Luego, los colegas pueden acceder a ellos a través de las páginas web si son interactivas, o a través de algo así como wget
si están automatizadas en línea de comandos. Puedes obtener wget para Windows aquí .
Tengo un conjunto de proyectos que dependen de otros proyectos (puede decir utilidades), el problema es que cada vez que cambio el código de cualquiera de estas utilidades mis colegas necesitan tomar el código más reciente y construir en sus máquinas para usar la última asambleas. ¿Hay una buena solución estándar? o simplemente centralizó los dlls en una carpeta compartida?
PD:
Estamos utilizando MS source safe 2005 y no quiero que mis colegas tomen el código fuente cada vez y que construyan en sus máquinas, ya que solo necesitan los binarios, no el código.
Cuando hemos compartido ensamblajes en muchos equipos, los promovemos a un directorio bin, de esa forma otros desarrolladores pueden hacer referencia / usar los ensamblajes actualizados sin tener que volver a compilar desde el origen.
Si usa Subversion como un sistema de control de fuente, puede usar SVN Externals para hacer esto. De esa forma, automáticamente extraerán las nuevas versiones de sus utilidades cuando hagan una actualización raíz de su carpeta. También puede darles el control de origen, de forma solo de lectura, para que puedan ver el código de la utilidad, pero no tienen derecho a realizar cambios.
Usamos esto en el trabajo, y funciona perfectamente. Pero tenga en cuenta que a veces no desea actualizar sus utilidades cada vez que hace una actualización, ya que puede estar rompiendo algo al usar la nueva versión. Esto es algo que su empresa debe tener una manera de manejar. Tenemos SVN Branches (o tags) para las versiones principales de las utilidades, por lo que si cambiamos algo mayor, hacemos una nueva versión, y las personas tendrán que cambiar manualmente su External SVN para que apunten a la nueva versión si así lo desean.