Una de las primeras tareas, relacionadas con la organización de un proyecto dentro del control de versiones que debe de realizar un equipo de desarrollo, es la de definir una estructura de directorios en la que los integrantes del equipo puedan encontrar fácilmente los ficheros que necesitan y que además, incentive la correcta ubicación los dichos ficheros.

Aunque la estructura de directorios puede ser distinta en dependencia del tipo de proyecto y sobre todo de las dimensiones del mismo, según mi experiencia una estructura inicial que podría aplicarse a la mayoría de los proyectos podría ser la siguiente.

directorios

Donde:

  • DB –> Contiene los scripts necesarios para generar la base de datos (si es que el proyecto necesita una)
  • Documents –> Contiene los documentos del equipo relacionados con el proyecto (Ej. Release Notes, Requirements, etc.).
  • Help –> Contiene todos los ficheros necesarios para generar la ayuda del producto (Ej. *.chm)
  • Install –> Contienes los ficheros necesarios para crear el programa de instalación de la aplicación.
  • Libs –> Contiene dlls de terceros usadas por la aplicación.
  • Src –> Directiorio raiz para los distintos proyectos que pertenecen a la solucion y que por lo tanto se deben compilar juntos.
    • ProjectName –> El proyecto inicial que provee la interface grafica (si es que la tiene) o al menos es el que tendrá el hilo principal de la aplicación.
    • ProjectNameLib –> Biblioteca de clases que contiene la mayoría del código.
    • ProjectName –> Proyecto de pruebas que contiene las pruebas unitarias (Unit Test) para la biblioteca de clases ProjectNameLib.
  • Utilis –> Varios scripts, ficheros .bat, e información necesaria para el desarrollo.

Aunque el nombre de los directorios anteriormente enumerados nos da una idea del contenido que podrían tener, una practica recomendable es la de incluir un fichero de texto (Ej. index.txt) que contenga la descripción del uso que se le pretende dar a dichas carpetas.

Si bien es verdad que crear una estructura de directorios similar a la anteriormente descrita, e incluir un fichero de texto por cada directorio explicando el contenido de los mismos no es una tarea que consuma mucho tiempo, si que es una tarea es repetitiva. Por lo que he dedicado un rato a escribir un programita que permita crear esta estructura de una manera mas fácil y casi automática.

ProjectStructure.exe

El programa es una aplicación Windows Form que abre con la estructura de directorios anteriormente descrita. En la parte superior encontraremos una caja de texto donde escribiremos el nombre que le queremos dar al proyecto.

projectStructure

En la parte izquierda tenemos un “Property Grid” donde podremos modificar el nombre o la descripción de la carpeta que tengamos seleccionada en el árbol de la derecha.

En cualquier proyecto es bastante frecuente que el nombre de este, aparezca contenido en una o mas carpetas de la solución, por lo que para poder utilizar una misma estructura de directorios en varios proyectos, los nombres de las carpetas deben cambiar cada vez que cambia el nombre del proyecto. Para hacer este cambio dinámico la aplicación incluye la variable $(ProjectName) la cual será sustituida por el nombre del proyecto. La descripción, sin embargo, y en el caso de que no esté vacía, se utilizará para la creación del fichero de texto que explica el contenido de cada carpeta.

PropertyGrid

En la parte derecha tenemos un árbol que nos brinda una vista previa de como quedará la estructura final del proyecto. Además es en este donde podremos añadir o eliminar carpetas según nos convenga.

AddDelete

Pero lo mejor es que una vez creada la estructura que pensamos nos conviene mejor, podemos establecerla como la predeterminada para utilizarla en el futuro, si es que la que yo les propongo no les vale.

SetAsDefault

Una vez configurada la estructura de directorios necesaria, solo deben hacer clic en el botón y les aparecerá un diálogo para escoger la carpeta del disco duro donde crear la estructura del proyecto.

Esto ha sido todo, espero que este pequeño programa les sea de utilidad.

Aquí les dejo el código fuente (Sources.zip) por si quieren verlo, o el ejecutable (bin.zip) por si no quieren compilar. Por cierto la aplicación esta hecha con VisualStudio 2010 RC, pero para ejecutarla con el Framework 3.5 tienen.


 |