Nos complace anunciar el lanzamiento de la versión 3.1.0 de Acuminator.
Puedes descargar la nueva versión en el Visual Studio Marketplace. Si has instalado previamente la versión beta de Acuminator 3.1.0, es mejor que la elimines antes de instalar la nueva versión.
Fragmentos de código
Acuminator proporciona ahora fragmentos de código para DAC, campos DAC y eventos gráficos. Un desarrollador puede utilizar estos fragmentos de código para acelerar la escritura de código nuevo y evitar errores comunes. Puede empezar a utilizar fragmentos de código escribiendo "DAC" o "_" y seleccionando el fragmento apropiado en la lista de finalización de código de IntelliSense, como se muestra en la siguiente captura de pantalla.
Al seleccionar un acceso directo de la lista IntelliSense y pulse Tabulador, el sistema inserta el fragmento de código, como se muestra en la siguiente captura de pantalla.
Para obtener más detalles sobre la instalación y el uso de los fragmentos de código, consulte el repositorio Acumatica CodeSnippets en GitHub.
Nuevos diagnósticos
En Acuminator 3.1.0 se han implementado las siguientes mejoras:
- Se ha añadido el diagnóstico PX1062 para asegurarse de que los gráficos y las extensiones de gráficos no contienen acciones estáticas, vistas u otros campos y propiedades estáticos mutables.
- Se han añadido los siguientes nuevos diagnósticos para evitar errores relacionados con la serialización y deserialización de excepciones:
- El diagnóstico PX1063 asegura que las clases de excepción se derivan de System.Exception siempre declara un constructor de serialización.
- El diagnóstico PX1064 asegura que las clases de excepción derivan de System.Exception que declara nuevos datos serializables proporcionando siempre un override del método GetObjectData.
- Se ha añadido el diagnóstico PX1056 para comprobar si se ha creado un gráfico en el método IsActive o IsActiveForGraph en una extensión de gráfico o una extensión DAC, y avisar en caso afirmativo.
Mejoras en el análisis de código
Los diagnósticos existentes PX1008 y PX1072 se han ampliado y mejorado considerablemente.
Mejoras en el diagnóstico del PX1008
El diagnóstico del PX1008 se ha rediseñado por completo. Ahora este diagnóstico implementa un complejo análisis de flujo de datos que va recursivamente a los métodos y comprueba cómo se transfieren los datos a ellos. Se han implementado las siguientes mejoras en el diagnóstico:
- Comprueba que cuando se pasan adaptadores del tipo PXAdapter a un delegado de acción en un grafo o una extensión de grafo, los adaptadores no son capturados en cierres de delegados por delegados de larga ejecución y procesamiento.
- Mejoras en los mensajes de diagnóstico
- Comprueba que las vistas y atributos personalizados capturan referencias a gráficos y adaptadores en un cierre de un delegado de larga duración
- Corrección de errores: El diagnóstico mostraba una advertencia al capturar una referencia a esto en un delegado incluso en una clase que no era un gráfico o una extensión de gráfico
Mejoras en el diagnóstico PX1072
Se han implementado las siguientes correcciones en el diagnóstico PX1072:
- En los miembros de grafos estáticos, el grafo declarante ya no se considera disponible para su uso en consultas BQL o Fluent BQL.
- El diagnóstico ya no muestra una advertencia si un único gráfico local está disponible y se utiliza en una consulta BQL o Fluent BQL.
- El diagnóstico muestra ahora una advertencia cuando una clase contiene varias consultas BQL o Fluent BQL y no hay gráficos disponibles, es decir, instancias de gráficos que ya existen y pueden ser utilizadas por una consulta BQL.
Otras mejoras
- Se ha añadido soporte para las expresiones complejas pasadas a la API SetProcessDelegate en los diagnósticos PX1008 y PX1086.
- Los diagnósticos PX1057 y PX1084 impiden ahora la creación de gráficos mediante una llamada directa al constructor, es decir, la nueva llamada al método PXGraph().
- Los diagnósticos de localización PX1050 y PX1051 muestran ahora menos falsas alertas y detectan más casos de localización incorrecta, como las cadenas de interpolación.
Higos de buey
En la nueva versión, hemos corregido varios errores graves en el mecanismo de supresión de diagnósticos de Acuminator que impedían a los desarrolladores suprimir los diagnósticos de Acuminator. También hemos corregido varios errores en el análisis estático de código.
La versión también contiene otras mejoras que puedes encontrar detalladas en Acuminator Release Notes:
https://github.com/Acumatica/Acuminator/blob/dev/docs/ReleaseNotes.md
¡Feliz codificación!