HOWTO: Depurar desde Visual Studio código X++ que se ejecuta en el servidor AX 2012

Gran parte del código X++ que desarrollamos en clases se ejecuta en la capa del servidor (Data Providers en informes, procesos Batch, SysOperation, …), lo que resulta un poco incómodo a la hora de depurar. Si ponemos un breakpoint desde el editor de X++ en MorphX en código que se ejecuta en el servidor, veremos como el depurador integrado nunca se detiene en este punto.

Preparar el entorno de desarrollo para poder depurar código del servidor desde Visual Studio (incluso el código X++, que en el servidor siempre se ejecuta como código CIL) nos obliga a tener en cuenta unos cuantos pre-requisitos, así que los voy a enumerar aquí para tenerlos a mano cuando nos hagan falta:

Pre-requisitos y consideraciones previas:

  • Asegurarse de que el código CIL se ha ejecutado completamente y sin errores. De otra forma, el ensamblado que queremos depurar puede no estar disponible en su última versión, sino en la última que se compiló sin errores.
  • Para depurar código remoto, ejecutar Visual Studio siempre como Administrador (con permisos elevados, haciendo click-derecho > Ejecutar como administrador). Si no, más adelante tendremos problemas de permisos.
  • La depuración remota desde Visual Studio debe hacerse en el mismo servidor donde está instalado el AOS, lo que nos obliga indirectamente a utilizar un entorno de desarrollo, ya que esta no es la configuración ideal para un AOS en producción.
  • En la configuración del AOS debe estar activada la opción Enable breakpoints to debug X++ code runing on this server (esto tampoco es nada recomendable en un AOS en producción).
  • Asociar un proceso al AOS para depurar pone el servidor en un estado extremadamente inestable, con un riesgo muy importante de que el servicio se reinicie inesperadamente. Por tanto es muy recomendable utilizar un servidor de desarrollo aislado para no molestar al resto de desarrolladores. Si utilizamos un sólo AOS para todos los desarrolladores, puede ser interesante tener otro AOS para la depuración remota.

Iniciar la depuración remota:

  • Iniciar Visual Studio en el servidor y con permisos elevados.
  • Si no se está mostrando ya, mostrar el Application Explorer (desde el menú Ver), lo que nos muestra el AOS en VS.

Continue Reading…

Microsoft Dynamics AX 2012 X++ Editor Extensions beta 2

He liberado una nueva actualización de las Microsoft Dynamics AX 2012 X++ Editor Extensions que publiqué hace unos meses. En esta actualización se incluye una modificación enviada por Hasse Ellsäter que permite ver el texto ocultado al minimizar un bloque colocándonos sobre los puntos suspensivos que delimitan el texto oculto, de la misma manera que hace Visual Studio.

Microsoft Dynamics AX 2012 Extension: Outlining

Además, he comprobado que las extensiones son compatibles con AX 2012 R2 y todos los Cumulative Updates publicados hasta ahora.

Si tienes alguna sugerencia sobre las extensiones la puedes enviar a través del proyecto en CodePlex, o los comentarios de este foro. Así mismo si tienes alguna modificación que quieras añadir puedes enviármela por cualquier medio y la incluiré en la siguiente versión, o directamente mediante el código fuente publicado en CodePlex. 🙂

 

Microsoft Dynamics AX 2012 X++ Editor Extensions

A pesar de que este tema ya se ha comentado en otros blogs, creo que merece la pena comentarlo porque no se le está sacando toda la utilidad que puede aportar. Ya se han comentado muchas veces las mejoras del editor de código X++ de Microsoft Dynamics AX 2012 a causa de su mayor “herencia” del editor de Visual Studio en esta versión. Una de las mejoras más interesantes de esta nueva herencia, es la posibilidad de utilizar las extensiones personalizadas del editor que se pueden desarrollar con el SDK de Visual Studio.

Para facilitar la utilización y mejora de estas extensiones, he generado un proyecto en CodePlex que agrupa tres de las extensiones que personalmente más me gustan para que se puedan descargar fácilmente y tener un lugar centralizado donde aportar mejoras y solucionar posibles bugs. ¿Ya los estás probando? 🙂

Este es un ejemplo de las extensiones de la versión inicial:

Colapsado de bloques de código

AX 2012 X++ Editor Outlining Code

Marcado de utilización de palabras en el código al posicionarse sobre ellas

AX 2012 X++ Editor Highlight Words

Marcado de bloques de código (paréntesis y llaves) al posicionarse sobre ellas

AX 2012 X++ Editor Brace Match

Los siguientes pasos son incluir alguna extensión más que pueda ser útil, o puede que incluir una serie de scripts de código que puedan utilizarse de manera genérica para la creación automática de código. Cualquier sugerencia, mejora o corrección será bien recibida!

 

Entorno de desarrollo en AX 2012

Ya hace algun tiempo que se anunciaron algunas mejoras en el editor de X++ para la próxima versión de AX, entonces AX ‘6’, finalmente AX 2012, y durante las pasadas semanas se anunciaron muchas mas.

Ahora podemos ver que casi todas esas novedades ya están implementadas en un video publicado esta semana en el blog de mfp’s two cents.

Nuevo entorno de desarrollo AX 2012 | 1

En primer lugar se ven claramente las diferencias entre el entorno de usuario y el nuevo entorno de desarrollo. El interfaz esta mas limpio para las tareas de programación e incluye nuevos menus y barras de herramientas específicas.

Tambien podemos ver lo que de momento es el nuevo AOT que incluye varios nodos nuevos implementando las funcionalidades ya anunciadas la semana pasada:

Nuevo entorno de desarrollo AX 2012 | 2

Y al pie del entorno podemos ver el indicador de Modelo actual, desde donde podremos cambiarlo con un click, como se indica en el video:

Nuevo entorno de desarrollo AX 2012 | 3

Novedades sin parar en estos días, es muy recomendable el artículo publicado hace unos dias en el mismo blog Getting to AX 2012

Nuevo editor X++ en acción

Ya hace tiempo que vimos en el blog de Vincent’s algunos de las nuevas funcionalidades del editor de X++ para la próxima version de Dynamics AX, por ejemplo, algunos detalles del auto-completar del código.

Hoy acaba de publicar un video con mas novedades, todas ellas interesantes, y lo mas importante es que se pueden ver ya funcionando. Cosas como la implementación (por fin) de la documentación XML integrada con el auto-completar (igual que en Visual Studio):

AX6 | X++ Editor

la edición multi-linea o la selección de texto en columnas:

AX6 | X++ Editor

dejan un muy buen sabor de boca.

Una pena que todavía quede bastante tiempo para poder disfrutar de estas novedades, y las que están por llegar.