.NET

Introduzione

OmniDB è un’applicazione open source basata su browser progettata per accedere e gestire molti sistemi di Database Management diversi, come PostgreSQL, Oracle e MySQL. OmniDB può funzionare sia come applicazione desktop che tramite browser, combinando la flessibilità necessaria per vari percorsi di accesso con un design che mette la sicurezza al primo posto. OmniDB è sviluppato attivamente, testato automaticamente su una varietà di database e browser e include documentazione completa.

Fin dalle prime fasi di sviluppo, OmniDB è stato progettato come applicazione basata su browser. Di conseguenza, funziona in qualsiasi browser, su qualsiasi sistema operativo. Può essere utilizzato da più computer e più utenti, ciascuno con il proprio gruppo di connessioni. Può inoltre essere ospitato su qualsiasi sistema operativo, senza la necessità di installare dipendenze. Vedremo ulteriori dettagli sull’installazione nei prossimi capitoli.

L’obiettivo principale di OmniDB è offrire uno spazio di lavoro unificato con tutte le funzionalità necessarie per manipolare diversi DBMS. Non sono richiesti strumenti specifici per ogni DBMS: in OmniDB, il cambio di contesto tra diversi DBMS avviene con un semplice cambio di connessione, senza abbandonare la stessa pagina. La sensazione per l’utente finale è che non ci sia differenza quando manipola diversi DBMS, sembra semplicemente di usare connessioni diverse.

Nonostante ciò, OmniDB è costruito con la semplicità in mente, progettato per essere un’applicazione veloce e leggera basata su browser. I lavori di lunga durata — query, procedure e monitoraggio — vengono eseguiti in background e trasmessi al browser al completamento, così l’utente può continuare a lavorare su più database e più host contemporaneamente senza blocchi su nessuno di essi.

OmniDB è anche sicuro. Tutti i dati degli utenti di OmniDB sono memorizzati crittografati e nessuna password di database viene memorizzata. Quando l’utente si connette per la prima volta a un database, OmniDB richiede la password. Questa password viene crittografata e conservata in memoria per un periodo di tempo specifico. Quando questo tempo scade, OmniDB richiede nuovamente la password. Ciò garantisce la massima sicurezza per il database a cui OmniDB si connette.

Storia

I creatori di OmniDB, Rafael Thofehrn Castro e William Ivanski, lavoravano in un’azienda dove avevano quotidianamente a che fare con diversi database di clienti. Questi database utilizzavano diverse tecnologie DBMS, e quindi dovevano continuamente passare da uno strumento di gestione database all’altro (in genere uno per ogni DBMS). Non essendo soddisfatti degli strumenti di gestione database unificati esistenti (che potessero gestire diversi DBMS), arrivarono all’idea principale di OmniDB.

La prima versione di OmniDB fu presentata come progetto finale di laurea triennale nel Corso di Scienze Informatiche dell’Università Federale del Paraná, in Brasile. L’obiettivo era tracciare una linea comune tra i DBMS più diffusi e studiare a fondo i loro metadata. Il risultato fu uno strumento scritto in ASP. NET/C# in grado di connettersi e identificare le strutture principali (tabelle, chiavi, indici e vincoli), in modo generico, da diversi DBMS:

La prima versione di OmniDB consentiva anche la conversione tra tutti i DBMS supportati dallo strumento. Questa funzionalità è stata sviluppata per essere intuitiva, richiedendo solo pochi passaggi: l’utente deve selezionare una connessione sorgente, le strutture che verranno convertite (solo le tabelle con tutte le loro strutture, insieme ai loro dati) e la connessione di destinazione.

Nel 2025–2026, il progetto è stato ripreso con versioni importanti (3.1.x), concentrandosi sulla modernizzazione del codebase, sul miglioramento della sicurezza e sull’aggiunta del pieno supporto per sistemi operativi moderni come macOS Silicon, insieme a una revisione completa della documentazione. Questa ripresa è culminata in una riscrittura completa del backend da Python/Django a Go (3.6.x), eliminando completamente il runtime Python e distribuendo un singolo binario nativo per ogni piattaforma. Vedi Funzionalità legacy e cronologia per la cronologia completa delle versioni e cosa è cambiato lungo il percorso.