Crear addon usando un producto flexygo como base de la solución

Para desarrollar un addon es necesario disponer de un producto de Visual Studio.


1. Instalar la plantilla de flexygo para VisualStudio 2022
Para descargar esta plantilla dispones de la siguiente URL:
https://marketplace.visualstudio.com/items?itemName=Flexygo.FlexygoTemplate


O puedes ir a Herramientas → Extensiones y actualizaciones → En línea → y buscar Flexygo


2. Definir el nombre del addon
Para esta demo vamos a utilizar de nombre "AddonFlexy". *Importante este nombre va a ser el identificador del addon que vamos a usar siempre.
Tener en cuenta que, cuando se instala un addon, este se ubica en la ruta custom/IdentificadorAddon.
Por tanto, cualquier fichero que forme parte del addon (js, css, dll, etc.) debe colocarse dentro de esa misma carpeta.
En nuestro caso, la ruta será ProductoFlexy/custom/AddonFlexy, donde dejaremos nuestros ficheros y a la cual deberán hacer referencia las rutas utilizadas en el proyecto.

3. Sobre la carpeta raíz de nuestro producto creamos una carpeta con el identificador de nuestro addon. En ella añadiremos los proyectos de nuestro addon.



4. Añadimos a la solución de nuestro producto un nuevo proyecto de tipo "Flexygo Addon Config Model BBDD" con el nombre "AddonFlexyBD". Lo guardaremos dentro de la carpeta que hemos creado en el paso 3.



5. Añadimos a la solución de nuestro producto un nuevo proyecto de tipo "Flexygo Data Model BBDD" con el nombre "AddonFlexy_DataBD". Lo guardaremos dentro de la carpeta que hemos creado en el paso 3.



6. Añadimos a la solución de nuestro producto un nuevo proyecto de tipo "Flexygo Addon Custom CSharp DLL" con el nombre "AddonFlexy_Processes". Lo guardaremos dentro de la carpeta que hemos creado en el paso 3.



7. Modificamos la ruta de salida de la compilación de "AddonFlexy_Processes"
En los propiedades de "AddonFlexy_Processes" vamos a modificar la ruta de salida de la compilación a la carpeta "custom" del proyecto. Dentro de "custom" debe existir una carpeta con el nombre de nuestro identificador del addon en nuestro caso "AddonFlexy", dentro de esta carpeta ya podemos gestionar nuestra estructura como queramos, nosotros la dejaremos en una carpeta llamada "dll".

Sustituimos "ProductoFlexy" por el nombre de nuestro proyecto y "AddonFlexy" por nuestro identificador del addon.

Importante si tenemos varios proyecto DLL que tienen relación entre ellos la ruta de salida debe ser la misma carpeta.


8. Corregiremos las dependencias fallidas del proyecto por las incluidas en la carpeta packages\Flexygo.x.x.xx.xx\lib\net46 de nuestra solución.



9. Definir nombre de ensamblado y espacio de nombres.

En las propiedades de cada proyecto estableceremos el nombre correcto de ensamblado y de espacio de nombres poniéndole el mismo valor que el nombre del addon.


Sustituir flxDB_data por AddonFlexy_DataBD
Sustituir flxDB_processes por AddonFlexy_Processes
Sustituir flxDB por AddonFlexyBD


10. Desarrollar nuestro addon

Con nuestro proyecto iniciado seleccionaremos el modo de origin addon y establecemos como nombre el de nuestro identificador addon “AddonFlexy” para activarlo.



11. Generar scripts

Una vez realizado el desarrollo procedemos a generar los scripts dentro de nuestro proyecto "AddonFlexyBD"



Crear paquete NuGet para el addon

1. Añadir fichero module.json

Para poder crear el paquete nuget primero tenemos que definir un archivo llamado “module.json” dentro de la carpeta de nuestro addon, en este fichero vamos a definir las acciones que se tienen que realizar a la hora de la instalación.



2. Definición module.json

General
Atributo Ejemplo Descripción
name "AddonFlexy" Identificador de nuestro addon.
description "Descripción." Breve descripción del propósito o funcionalidad del addon.
type "Flexygo" Actualmente siempre será Flexygo.
flexygoVersionMin "4.0.0.6" Versión mínima de Flexygo requerida para poder instalar el addon.
flexygoVersionMax "8.4.0.6" Versión máxima de Flexygo requerida para poder instalar el addon.
productVersionMin "4.0.0.6" Versión mínima del producto requerida para poder instalar el addon.
productVersionMax "8.4.0.6" Versión máxima del producto requerida para poder instalar el addon.
resources [ ... ] Lista de recursos incluidos en el addon y cómo deben gestionarse.
postProcess [ ... ] Lista de procesos que se ejecutarán después de instalar el addon.
resources
Atributo Ejemplo Descripción
path "content/sql/AddonFlexy_DataBD.dacpac" Ruta del recurso dentro del paquete NuGet.
targetConnectionString "DataConnectionString" Nombre de la cadena de conexión sobre la que se aplicará el recurso (solo si el scope es database).
uninstallPrefix "AddonFlexy_" Prefijo usado para identificar y eliminar objetos (tablas, vistas, storeds, funciones) al desinstalar el addon.
scope "database" / "frontend" Define el ámbito de instalación del recurso:
database: aplica un archivo .dacpac a la base de datos.
frontend: copia los archivos al entorno de cliente (JS, DLLs, imágenes, etc...).
postProcess
Atributo Ejemplo Descripción
processName "pPostNuget" Nombre del proceso (definido en flexygo) que se ejecutará al finalizar la instalación del addon.
params { "Param1": true, "Param2": "2025-09-25", ... } Parámetros del proceso definidos en flexygo.
order 0 Orden de ejecución de los procesos.


3. Utilidades NuGet

Descargar el fichero nuget.zip y extraer al mismo nivel que la carpeta de nuestro addon.



4. Fichero config.nuspec

Editar el fichero config.nuspec para adaptar los valores a nuestro proyecto.

El id del nuget debe ser nuestro identificador del addon "AddonFlexy".

Dentro del target config obligatoriamente dejaremos el fichero module.json y el resto de ficheros dentro de content. Importante las dll tienen que estar todas en la misma carpeta.



5. Generar paquete NuGet

Abriremos una ventana de comandos y ejecutaremos la siguiente instrucción:

nuget pack config.nuspec

6. Instalar/Actualizar addon

Una vez tengamos nuestro nuget generado, desde Flexygo en Otras Herramientas -> Addons podemos instalar nuestro addon.




7. Desinstalar addon

Desde Flexygo en Otras Herramientas -> Addons podemos ver el listado de addons que tenemos instalados y proceder a desinstalarlos.