Visual Studio Workspace mapping Dynamics 365

Control de versiones de código

Cuando configuramos Visual Studio Team Services (VSTS) para trabajar con Microsoft Dynamics for Finance and Operations, Microsoft (y la comunidad de AX en general) recomiendan dos “mappings” para seguir los cambios en el sistema de control de versiones.

Uno de los “mappings” que recomiendan es para los proyectos de Visual Studio, que guardan referencias a objetos de X++ que se encuentran en el directorio de meta-datos. Tener los proyectos en el repositorio de código nos permite trabajar con mucha más facilidad con otros miembros del equipo o incluso entre entornos para uno mismo. La forma de enlazar los proyectos entre la máquina de desarrollo y el servidor de versiones cumple su función estupendamente.

La propuesta de Microsoft es enlazar la carpeta del servidor donde se van a guardar los proyectos (para el ejemplo de este blog es $/EmiralBlog/Trunk/Main/Projects) con el directorio del sistema de ficheros donde se encontrarán los proyectos con los que trabajar (en este ejemplo es C:\Users\Administrator\Documents\Visual Studio 2015\Projects).

El otro es justamente el directorio de meta-datos que utiliza el AOS (AX object server). Tener el código X++ en el repositorio es precisamente el objetivo principal de VSTS. Las personalizaciones que realizamos son accesibles para otros miembros del equipo de desarrollo, tenemos una “copia de seguridad” de nuestro trabajo y disponemos de un historial de cambios con el que trazar cualquier problema o desde donde iniciar una nueva mejora.

La propuesta de Microsoft es enlazar la carpeta del servidor donde se van a guardar los modelos y objetos de aplicación que se desarrollen (en este ejemplo es $/EmiralBlog/Trunk/Main/Metadata) con el directorio del sistema de ficheros donde se encontrarán los ficheros xml que contienen los objetos, tanto los del estándar como los de personalización que se desarrollen (en el ejemplo C:\AOSService\PackagesLocalDirectory).

¡Más de 50.000 cambios!

Si se realiza el “mapping” de meta-datos que propone Microsoft, la información con la que poder trabajar sobre los cambios del código desarrollado se reduce enormemente porque todos los ficheros que forman parte del estándar de Dynamics 365 for Finance and Operations aparecen como cambios excluidos detectados. La siguiente imagen muestra como se han detectado cincuenta mil cambios de ficheros añadidos.

Si 50.000 parece un número muy “redondo” para ser cierto, es porque no es cierto. Puede ser que Visual Studio o VSTS solo puedan detectar un máximo de cincuenta mil cambios detectados fuera del repositorio, o quizá es por alguna otra razón, pero solo los objetos del estándar y los ficheros generados desde ellos suman más de 200.000 ficheros, como se puede observar en la siguiente captura.

Todo en su sitio.

Una opción mucho más cómoda para el trabajo diario es enlazar cada una de las carpetas de paquetes (y sus modelos dentro) en el repositorio con el directorio del sistema de ficheros que alberga el paquete en la máquina de desarrollo. En la siguiente captura se puede ver el ejemplo de tres paquetes de modelos de trabajo.

De esta forma, no aparece ningún cambio pendiente en el repositorio del código del estándar como se ve en la siguiente captura de pantalla.

Sacando la basura.

No todo lo que hay en los directorios de los paquetes es información de la que se quiera tener un control de cambios. Son ficheros generados automáticamente con la compilación, logs o ficheros json, por ejemplo. Para excluir esos ficheros del control de versiones y que no molesten como cambios excluidos o como cambios detectados se puede añadir un fichero .tfignore dentro del directorio de cada paquete de personalización (en el ejemplo del blog, uno de los directorio donde colocar el fichero sería C:\AOSService\PackagesLocalDirectory\EAX_App) .

El fichero .tfignore informa a VSTS de que no tenga en cuenta los ficheros que se ajusten a los patrones escritos dentro.

Por ejemplo, un punto de partida para el contenido del fichero puede ser:

\*.xml
\*.log
\Resources
\WebContent
\XppMetadata
\bin
\Reports

 

Últimas entradas