trabajando - Buenas prácticas: entorno colaborativo, directorio Bin, SVN
tortoise svn server (5)
¿Es esta una pregunta específica de .Net?
En general, la mejor práctica es no registrar nada que se haya generado automáticamente a partir de archivos que ya están en SCM. Todo eso está idealmente creado como parte de su proceso de compilación automático.
Si el directorio bin
que se refiere contiene binarios de terceros, en lugar de una compilación de su proyecto, ignore (¿voto abajo?) Este consejo.
¿Cuáles son las mejores prácticas para verificar en directorios BIN en un entorno de desarrollo colaborativo utilizando SVN? ¿Deben excluirse las referencias a nivel de proyecto del registro? ¿Es más fácil simplemente agregar todos los directorios bin?
Desarrollo muchos sitios DotNetNuke y parece que en un entorno de múltiples desarrolladores siempre es una gran tarea configurar correctamente el entorno.
El objetivo final (por supuesto) es tener un nuevo desarrollador que descargue el tronco desde SVN, restaurar la base de datos DNN y tener todo simplemente ''trabajo'' ...
Cualquier asamblea que se espera que esté en el GAC debe permanecer en el GAC. Esto incluye System.web.dll o cualquier otra dll de terceros que implementará en el GAC en producción. Esto significa que un nuevo desarrollador tendría que instalar estos conjuntos.
Todas las demás asambleas de terceros deben ser referencias a través de una ruta relativa. Mi estructura típica es:
-Project
--Project.sln
--References
---StructureMap.dll
---NUnit.dll
---System.Web.Mvc.dll
--Project.Web
---Project.Web.Proj
---Project.Web.Proj files
--Project
---Project.Proj
---Project.Proj files
Project.Web y Project hacen referencia a los ensamblados en la carpeta raíz / Referencias relativamente. Estos .dlls se comprueban en subversión.
Aparte de eso, * / bin * / bin / * obj debería estar en tu ruta global de ignorar.
Con esta configuración, todas las referencias a ensamblajes se realizan a través del GAC (por lo que deben funcionar en todas las computadoras) o en relación con cada proyecto dentro de su solución.
Maven ayuda bastante con este problema cuando estoy codificando Java. Comprometemos el pom.xml con el scs y el repositorio maven contiene todas nuestras dependencias. Para mí eso parece una buena manera de hacerlo.
Seguimos la práctica de utilizar un directorio de proveedores que contiene todos los encabezados y binarios específicos del proveedor. El objetivo es que cualquiera pueda construir el producto con solo echarle un vistazo y ejecutar un script de compilación de alto nivel.
Tree Surgeon es una gran herramienta que crea un árbol de desarrollo .NET vacío. Ha sido modificado durante años de uso e implementa muchas de las mejores prácticas.