Uno stack leggibile, un deploy controllabile.
Tre client — web, mobile e desktop — su un solo dominio, un solo database e un solo insieme di regole. Ogni strato è isolabile, testabile e sostituibile: nessun monolite, e nessuna dipendenza implicita da un cloud proprietario.
Architettura logica
- COREDominio in C# / .NET — I servizi di dominio — anagrafiche, ricezione, stoccaggio, prelievo, inventario, controllo qualità, KPI — vivono in un solo posto e non sanno da quale client arriva la richiesta. È la ragione per cui web, mobile e desktop mostrano sempre gli stessi numeri: non hanno tre logiche diverse, ne condividono una.
- WEBKazam Web — Blazor Server su .NET 10 — Il client principale: 86 pagine in 27 aree, di cui 31 di sola configurazione. Gira sul server e trasmette al browser solo le differenze di interfaccia, così una postazione non ha nulla da installare e un aggiornamento è immediato per tutti. Componenti Syncfusion per griglie, grafici e pianta del magazzino; autenticazione a cookie.
- BFFUno strato per il web, non un'API generica — Fra l'app web e il dominio c'è un backend for frontend: espone esattamente ciò che serve alle pagine, aggregato come serve a loro, e l'app web lo consuma con client tipizzati autenticati a chiave. L'app web non apre mai una connessione al database.
- MOBILEKazam Mobile — .NET MAUI — Android sui terminali industriali e WinUI su tablet Windows, per chi lavora fra gli scaffali. Lettura da scanner hardware, funzionamento offline e sincronizzazione differenziale: il magazzino continua anche quando il Wi-Fi non arriva in fondo alla corsia.
- DESKTOPKazam Desktop — client Windows — Il client storico in WinForms, completo e supportato, per chi preferisce un'applicazione installata sulla postazione. Lavora sullo stesso dominio e sugli stessi dati degli altri due.
- WCSSun Tech WCS — il livello che parla alle macchine — Il controllo dell'impianto per PLC, shuttle, sorter e AGV: modello dell'impianto, missioni, rotte e recupero quando una macchina si ferma. Open source, con licenza Apache 2.0. È il livello che un ERP non ha e che distingue un magazzino automatizzato da uno solo informatizzato.
- SCAMBIOIntegrazione con il gestionale — API REST/JSON indicizzate per chiave ERP, più un'area di scambio su database con stato per singolo record. Due strade per lo stesso scopo: quella sincrona quando serve una risposta adesso, quella asincrona quando i due sistemi non devono aspettarsi a vicenda.
- DATISQL Server, on-premise o in cloud — Il transazionale sta su SQL Server, dove volete voi. Nessuna dipendenza implicita da un servizio proprietario: i dati restano sotto il vostro controllo, interrogabili con gli strumenti che già usate, con l'esportazione completa disponibile secondo il contratto.
Un contratto di scambio, non un connettore per vendor
Kazam non incorpora connettori legati a un singolo gestionale: espone un contratto di scambio dati che qualsiasi ERP può alimentare e consumare. L'integrazione si costruisce sui tracciati del cliente in fase di analisi, e resta valida anche se domani il gestionale cambia — il magazzino non si ferma.
Chiave di correlazione
Ogni documento di magazzino porta il riferimento al documento ERP di origine (HOOK_TESTATA_ERP su testate e righe): il legame fra i due mondi è esplicito, interrogabile e verificabile in ogni momento.
Area di scambio
Tabelle di staging su SQL Server con stato per singolo record: il gestionale scrive, Kazam legge, e ogni riga sa se è stata importata, è in attesa o è andata in errore.
Servizio di import
Un servizio Windows preleva a intervalli configurabili ciò che è in coda e lo riversa nel WMS — clienti, indirizzi, referenze, unità di carico, ordini — in modo idempotente e ripetibile.
API REST
Endpoint indicizzati per chiave ERP, con autenticazione JWT, per leggere e scrivere in tempo reale quando il polling non basta. Più hook SQL opzionali per le personalizzazioni di progetto.
Come si applica ai gestionali più diffusi: SAP · TeamSystem · Zucchetti · Microsoft Dynamics · Kazam vs Odoo
Stack pulito, contratti chiari, evoluzione sostenibile
Clean Architecture + DI
Separazione netta tra dominio, applicazione, infrastruttura. Iniezione dipendenze per testabilità.
Bounded Contexts (DDD-light)
WMS, WCS e Mobile operano in contesti separati con contratti chiari e versionati.
CQRS pragmatica
Comandi e query distinti dove servono throughput e semplicità di scalare.
Event-driven
Domain events interni; integrazioni reattive via MQTT / webhook verso sistemi esterni.
Stack moderno, adapter industriali
.NET 9/10-ready
- C# moderno, async-first
- WinForms + .NET MAUI
- DevExpress / Syncfusion
- ADO.NET ottimizzato
Protocolli industriali
- MQTT per IoT / dispositivi
- OPC-UA per automazione
- Modbus, OMRON FINS
- VDA 5050 per AGV / AMR
On-premise o Azure
- SQL Server / Express
- Azure App Service opzionale
- Container Docker
- Queue + storage configurabili
Audit possibili, tracciabilità nativa
Autenticazione
JWT / OAuth2. RBAC (ruoli/profili) a livello di modulo e azione.
Multi-tenant
Opzionale: separazione logica per cliente/sito con scopi DB dedicati o schema-per-tenant.
Crittografia
TLS in transito; cifratura selettiva at-rest (campo/tabella); secret management esterno.
Audit & tracing
Log append-only, audit trail su record sensibili, distributed tracing correlato.
Whitepaper architetturale su richiesta
Un documento tecnico dedicato a IT manager, integratori e sviluppatori con dettagli su connettori, moduli, FINS/OPC-UA, KPI/BI.
Pronto a provarlo?
Entro un giorno lavorativo un ingegnere vi attiva l'accesso all'applicazione web: si usa dal browser, senza installare niente sulle postazioni.
Le tre novità più recenti: l'applicazione web — che cosa cambia e che cosa resta —, l'assistente che configura il magazzino intervistandovi e Sun Tech WCS, il Warehouse Control System pubblicato come open source.
Kazam WMS · piattaforma di magazzino