Estrenamos blog: te contamos lo que hacemos de forma más rápida, cercana y transparente.
DinaupBlog
← Volver al blog

El SDK .NET de Dinaup: dos paquetes, y uno es tuyo

Cómo funciona el SDK .NET por dentro: el cliente base Dinaup, tu librería tipada MyDinaup, cuándo regenerarla y qué modo de escritura elegir.

Equipo Dinaup29 de junio de 20244 min de lectura

Integrar un ERP suele significar pelearte con una API genérica: JSON sin tipos, nombres de campos en un PDF y errores que descubres en producción. El modelo de Dinaup es distinto porque tu empresa también lo es: tus secciones, tus campos y tus informes no son los de nadie más.

Por eso el SDK no te da un cliente genérico. Te da tu modelo de datos compilado: si tu sección se llama "Ventas", tu código tiene APIVentasC, con autocompletado y errores en tiempo de compilación. Este post explica cómo funciona ese modelo por dentro; la guía para conectar y hacer tu primer CRUD es Conecta tu app .NET a Dinaup.

Los dos paquetes

PaqueteQué esCambia
DinaupEl cliente base: conexión, autenticación, sesiones, informes, archivos, anotaciones, documentos dinámicos y escrituras.Con cada versión del SDK. Igual para todas las empresas.
{Empresa}.MyDinaupTu modelo tipado: secciones, informes y documentos con los nombres reales de tu licencia, en clases fuertemente tipadas.Cuando cambias tu modelo de datos. Es tuyo.

Con los dos instalados lees datos tipados y escribes sin manipular JSON a mano:

dotnet add package Dinaup
dotnet add package ReadyToGo.MyDinaup

Dinaup.Database ya no es un paquete aparte: va dentro de Dinaup. En un proyecto nuevo, dotnet add package Dinaup te da también el acceso a PostgreSQL.

MyDinaup: tu licencia hecha librería

MyDinaup no vive en GitHub. Se distribuye como paquete NuGet y se regenera desde Dinaup Desktop cuando cambia tu modelo de datos. Si añades un campo, una sección o un informe, la librería se vuelve a generar para que el código tipado lo refleje:

Entra en Dinaup Desktop con el usuario Sistema

La generación de MyDinaup requiere permisos de Sistema.

Genera la nueva versión

Ve a ConfiguraciónGenerar MyDinaup y pulsa Commit. Dinaup publica una nueva versión del NuGet {Empresa}.MyDinaup.

Actualiza el paquete en tu proyecto

Sube la versión en tu .csproj. Los campos y secciones nuevos aparecen tipados; si algo que usabas cambió, el compilador te lo dice antes de desplegar.

Qué MyDinaup usar

PaquetePara qué
{Empresa}.MyDinaupProducción. El modelo real de tu licencia.
ReadyToGo.MyDinaupCódigo multi-empresa sobre el modelo estándar, y pruebas.
DemoUp.MyDinaupModelo interno de pre-producción del equipo Dinaup. Desaconsejado en producción: puede traer estructuras incompatibles.

Cómo se ve en código

Con el cliente ya conectado, lees un informe tipado de tu MyDinaup:

using ReadyToGo.MyDinaup.Reports.VentasD;

var ventas = new APIVentasC();
await ventas.ExecuteQueryAsync(client, page: 1, resultsPerPage: 50);

foreach (var fila in ventas.Rows)
    Console.WriteLine($"- {fila.NumerodefacturaCompleto}: {fila.Total}");

APIVentasC, NumerodefacturaCompleto y Total no son genéricos: salen de tu licencia. Los nombres se generan en español porque tu modelo está en español.

Escrituras: tal cual o virtualizadas

Toda alta o edición va con WriteOperation, y su tercer parámetro decide cuánta lógica de negocio se ejecuta:

ModoQué haceCuándo usarlo
falseGuarda los valores tal cual y crea histórico. Rápido. No ejecuta scripts, recálculos ni eventos.Cambios simples: un estado, un técnico asignado, una nota.
true (virtualizada)Ejecuta la lógica de la sección como si guardaras desde la web: scripts onBeforeSave y onAfterSave, recálculo de totales e impuestos, validaciones y eventos.Altas que disparan lógica: una venta, una factura.

Virtualizar es más caro; no lo actives sin necesidad.

Preguntas frecuentes

Siguiente paso

Sigue leyendo