Mejores Prácticas: Entorno Colaborativo, Directorio Bin, SVN


¿Cuáles son las mejores prácticas para verificar directorios BIN en un entorno de desarrollo colaborativo utilizando SVN? ¿Deberían 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 multi-desarrollador, siempre es una gran tarea configurar el entorno correctamente.

El objetivo final (por supuesto) es tener un nuevo desarrollador checkout el tronco de SVN, restaurar la base de datos DNN y que todo simplemente 'funcione'...

Author: Gulzar Nazim, 2008-08-02

5 answers

Cualquier asamblea que se espera que esté en el GAC debe permanecer en el GAC. Esto incluye el Sistema.web.dll o cualquier otra dll de terceros que implementarás en el GAC en producción. Esto significa que un nuevo desarrollador tendría que instalar estos ensamblajes.

Todas las otras 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

Proyecto.La web y el proyecto hacen referencia relativamente a los ensamblados en la carpeta raíz/Referencias. Estos .se verifican las DLL en subversion.

Aparte de eso, */bin */bin/* obj debe estar en su ruta global de ignorados.

Con esta configuración, todas las referencias a ensamblajes son a través del GAC (por lo que debería funcionar en todos los equipos), o relativas a cada proyecto dentro de su solución.

 20
Author: Karl Seguin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-08-01 23:40:28

¿Es esta una pregunta específica de. Net?

Generalmente, la mejor práctica es no verificar nada que se construya automáticamente a partir de archivos que ya estén en SCM. Todo eso se crea idealmente como parte de su proceso de compilación automática.

Si el directorio bin al que se refiere contiene binarios de terceros, en lugar de una compilación de su proyecto, ignore (downvote?) este consejo.

 5
Author: Peter Burns,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-08-01 23:44:05

Tree Surgeon es una gran herramienta que crea un árbol de desarrollo.NET vacío. Se ha ajustado a lo largo de años de uso e implementa muchas de las mejores prácticas.

 4
Author: LaptopHeaven,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-11 13:03:13

Maven ayuda bastante con este problema cuando estoy codificando Java. Cometemos el pom.xml al scs y al repositorio maven contiene todas nuestras dependencias. Para mí eso parece una buena manera de hacerlo.

 3
Author: svrist,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-08-02 18:30:34

Seguimos la práctica de usar un directorio de proveedores que contiene todos los encabezados y binarios específicos del proveedor. El objetivo es que cualquiera sea capaz de construir el producto simplemente comprobándolo y ejecutando algún script de construcción de nivel superior.

 1
Author: stimms,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-08-13 22:25:16