Anuncio de Acumatica Acuminator 3.1.0

Nuestra última versión incluye nuevos fragmentos de código de Acumatica para Microsoft Visual Studio y muchas mejoras y correcciones de errores en el análisis estático de código.
Sergey Nikomarov | 8 de diciembre de 2022

Acumuninador 3.1.0

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.

Anuncio de Acumatica Acuminator 3.1.0
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.

Anuncio de Acumatica Acuminator 3.1.0

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!

 

 

Autor del blog

Sergey se unió a Acumatica en 2017 y comenzó como desarrollador de aplicaciones en el equipo de OEM, donde realizó gran parte del desarrollo del marco de Acumatica, además de varias personalizaciones. Un ejemplo es una gran personalización para el control presupuestario automatizado para Censof, un socio OEM. En 2019, se unió al equipo de Desarrollo de Plataformas como desarrollador de sistemas. Y más recientemente, Sergey es responsable de Acuminator y nuestro desarrollo y mantenimiento de RVT. Participante en varios hackathons internos de Acumatica, Sergey formó parte del equipo ganador -junto con Vladimir Panchenko- que creó Acuminator. En un hackathon posterior, su equipo lo amplió aún más al desarrollar el Mapa de código con algunas otras mejoras para Acuminator.

Reciba las actualizaciones del blog en su bandeja de entrada.