A finales de 2011 empecé a buscar y leer información acerca esta versión de Ax. Desde una óptica con origen de Ax 3.0, me llamó la atención:
- Nuevo modelo organizacional. Basado en entidades legales (compañías), entidades operacionales (centros de coste, unidades de negocio...) y la definición de jerarquías entre ellas.
- Seguridad. Totalmente nueva, desaparecen los conceptos de grupos de usuario y dominios. Se integra completamente con Active Directory, y se basa a nivel funcional en Roles y Deberes, y a nivel más técnico en Privilegios y Permisos. Para las restricciones a nivel de registro se crean las Políticas, la anterior seguridad a nivel de registro se anuncia que quedará discontinuada.
- Office add-ins. Permite la exportación e importación de información desde Excel. Esto es factible, pero dado el complejo modelo de datos, es muchos casos no es una solución operativa para el usuario común.
- Workflow. Permite la definición de flujos de trabajo e información, baso en Windows Workflow Foundation del .NET Framework. Se mejora respecto a Ax2009, aunque para mí que parto de Ax 3.0 es completamente nuevo.
- Global Address Book. Libreta de direcciones global. Permite definir de forma única información de contacto de las entidades tipo Cliente, Proveedor,...La idea es muy buena, se trata de no duplicar información, aunque añade un plus de complejidad a la hora de obtener información, especialmente si se hace directamente vía SQL.
- Enterprise Portal. Totalmente renovado (otra vez!!!). Muy integrado con SharePoint
- Interfaz de usuario. Respecto a Ax 3.0 supone un cambio radical, aparecen muchos controles visuales adicionales y provee de soporte para controles externos Windows Presentation Foundation
- Modelo de objetos en SQL Server. Desaparecen los ficheros .AOD (información de los objetos de la aplicación) y .ALD (etiquetas de texto), pasando a almacenarse todo en SQL Server. Esto implica una mayor facilidad a la hora de realizar las copias de seguridad y mantener varios entornos, ya que todo lo necesario está en SQL Server.
- Desarrollo
- Nuevo entorno diferenciado y aislado de la interfaz de usuario
- Mejorado el editor de X++, se basa en el de Visual Studio 2010
- Integración total con Visual Studio 2010. Managed code, proxies para desarrollar en VS empleando objetos de Ax, posibilidad de añadir control de código fuente...
- Interoperabilidad: Servicios AIF y un Business Connector muy mejorado.
- Informes. Se trasladan a SQL Server Reporting Services, aunque la lógica de negocio se sigue implementando en Ax. Aún se mantiene la posibilidad de desarrollar informes en MorphX, pero parece que esta posibilidad irá desapareciendo.
- Normalización en las tablas. Se emplea masivamente los RecId, esto en ocasiones proporciona dificultades a la hora de "entender" la información de una tabla.
- Herencia de tablas. Permite definir tablas que heredan de otras, teniendo las heredas acceso a la información genérica del padre, más la especifica.
- Validez temporal (Date effectiveness). Se añade un mecanismo para poder dotar a las tablas de la gestión de datos pasados, presentes y futuros.
- Unit of work. La idea es crear un paquete de transacciones y realizarlas de forma conjunta, reduciendo el número de transacciones contra el AOS y BBDD y por tanto mejorando rendimiento.
- Otros cambios
- TempDB Tables. Persistidas temporalmente en TempDB de SQL Server, en ciertos escenario mejora el rendimiento respecto a tenerlas In Memory
- Deshabilitar funcionalidades no eliminará las tablas y campos en SQL. Igualmente, si creamos objetos directamente en SQL no serán eliminados al sincronizar el modelo de datos.
- Columnas de tipo Include en los índices, interesante para rendimiento
- Permite usar Full Text Index, interesante para campos con gran información de texto.
- Columnas calculadas en vistas, trata de evitar el RBAR (row by agonizing row), mejorando el rendimiento
- QueryFilter como mejora de QueryRange
- Eventing. Mecanismo para poder lanzar lógica asociada a un evento, como por ejemplo la ejecución de un método
Esto fue mi primera toma de contacto centrándome en los aspectos técnicos, desde luego el "choque" funcional y de usabilidad respecto a Ax 3.0 también se ha demostrado importante, especialmente en módulos como Contabilidad general y Recursos Humanos, pero bueno esas experiencias trataré de ir relatándolas en siguientes artículos.