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.
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
| Paquete | Qué es | Cambia |
|---|---|---|
Dinaup | El 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}.MyDinaup | Tu 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.MyDinaupDinaup.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ón → Generar 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
| Paquete | Para qué |
|---|---|
{Empresa}.MyDinaup | Producción. El modelo real de tu licencia. |
ReadyToGo.MyDinaup | Código multi-empresa sobre el modelo estándar, y pruebas. |
DemoUp.MyDinaup | Modelo 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:
| Modo | Qué hace | Cuándo usarlo |
|---|---|---|
false | Guarda 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
- Conecta tu app .NET a Dinaup — la guía práctica: conexión, informes, escrituras y archivos.
- SDK .NET completo — cliente, Dinaup.Logs, Dinaup.Validations y base de datos.
- Cliente Dinaup — la referencia con firmas y ejemplos.
