Modernize Studio
Lingua: IT
Scriveteci

Le vostre applicazioni Delphi, portate sul web

Negli anni Novanta e Duemila Delphi era una scelta comune per il software gestionale, e molti di quei programmi sono ancora in uso ogni giorno, spesso con tabelle Paradox o dBase lette tramite il BDE. Li migriamo in applicazioni web su un database SQL, con gli stessi dati e le stesse regole, così non servono più PC configurati nei minimi dettagli per farli funzionare.

Perché adesso

Embarcadero, che oggi sviluppa Delphi, ha dichiarato deprecato il Borland Database Engine. La sua documentazione afferma che il BDE non verrà migliorato, non supporterà mai Unicode e non va usato per nuovi sviluppi, e suggerisce di passare a FireDAC. Eppure la maggior parte dei vecchi programmi Delphi legge e scrive ancora le proprie tabelle Paradox o dBase attraverso di esso.

Il BDE è nato per Windows a 32 bit e per la condivisione di file su una rete locale. Le tabelle Paradox su un disco condiviso dipendono da file di blocco e da impostazioni del BDE che devono essere identiche su ogni PC, e quando una macchina le ha sbagliate tabelle e indici possono danneggiarsi. Ogni PC nuovo, e ogni passaggio a una nuova versione di Windows, è un'altra installazione da configurare a mano.

  1. Windows 10Fine del supporto Microsoft

Cosa migriamo

Il programma e i file di dati da cui dipende, in qualunque stato si trovino.

  • Form e controlli collegati ai dati

    Form dai file .dfm con TDBGrid, TDBEdit, TDBLookupComboBox e strutture principale e dettaglio. Diventano pagine web con gli stessi campi e la stessa sequenza di lavoro.

  • Dati Paradox, dBase e InterBase

    Tabelle lette tramite il BDE, oppure database come InterBase, Firebird, SQL Server e Oracle. Trasferiamo i dati su SQL Server o MySQL mantenendo chiavi, indici e relazioni.

  • Data module e logica di business

    Codice nelle unit TDataModule, negli eventi dei dataset come BeforePost e OnCalcFields, e nei campi calcolati e di lookup. Raccogliamo queste regole in servizi lato server.

  • Report

    Layout QuickReport, ReportBuilder, Rave Reports o FastReport, compresi quelli con codice nei loro eventi. Diventano documenti PDF con lo stesso contenuto.

  • Componenti di terze parti

    Griglie, editor e utilità di pacchetti come DevExpress, TMS, InfoPower o RxLib, spesso legati a una sola versione di Delphi. Verifichiamo quali funzioni il programma usa davvero.

  • Importazioni, esportazioni e attività pianificate

    Scambi di file di testo e CSV con altri sistemi, esportazioni per il commercialista e programmi avviati dall'Utilità di pianificazione di Windows. Diventano attività pianificate sul server.

Come diventa la versione web

Esempio illustrativo, dati di fantasia

Un programma di magazzino come potrebbe apparire in Delphi su Windows XP, e gli stessi dati in un'applicazione web.

Trascinate il cursore, oppure usate le frecce della tastiera.

Dove finisce ogni parte

In Delphi: Form (.dfm) e unit (.pas)
Nell'applicazione web: Pagine web, con la logica sul server
In Delphi: Tabelle Paradox o dBase tramite il BDE
Nell'applicazione web: SQL Server o MySQL, con chiavi e relazioni
In Delphi: Campi calcolati e di lookup
Nell'applicazione web: Calcoli e join nel database o nei servizi
In Delphi: Alias e impostazioni del BDE su ogni PC
Nell'applicazione web: Una sola connessione, configurata sul server
In Delphi: Layout QuickReport o FastReport
Nell'applicazione web: Documenti PDF generati dal server
In Delphi: Un disco di rete condiviso da tutti
Nell'applicazione web: Accessi contemporanei gestiti dal database

Come si svolge la migrazione

  1. Analisi entro 48 ore

    Ci mandate il programma con la sua cartella dei dati (file Paradox o dBase, oppure un backup del database), più il codice sorgente (.dpr, .pas, .dfm) se lo avete. Entro 48 ore vi rispondiamo con un report scritto: cosa fa oggi il programma, dove sono i rischi, come sarebbe organizzata la versione web, un prezzo fisso per un modulo pilota e una stima per il resto. È gratuita e non vi impegna a nulla.

  2. Modulo pilota

    Realizziamo una parte dell'applicazione su una copia dei vostri dati reali, di solito quella che si usa di più. Il vostro personale la usa nel lavoro di tutti i giorni prima che decidiate sul resto.

  3. Test automatici tra vecchio e nuovo

    Facciamo passare gli stessi record nel programma Delphi e nella nuova applicazione e confrontiamo giacenze, totali e documenti stampati. Per ogni regola che troviamo scriviamo un test automatico che dà gli stessi dati in ingresso al vecchio programma e alla nuova applicazione e controlla che i risultati coincidano. Ricevete i risultati dei test.

  4. 30 giorni in parallelo

    Quando l'applicazione completa è pronta, il programma Delphi resta in uso accanto a essa per 30 giorni. Ogni differenza emerge mentre il vecchio programma c'è ancora, e la correggiamo all'interno del prezzo concordato.

Gli intoppi tipici, e come li gestiamo

  1. Come si comportano il BDE e Paradox

    Le tabelle Paradox si reggono su file di blocco, su un file di controllo di rete condiviso (PDOXUSRS.NET) e su impostazioni del BDE come LOCAL SHARE che devono coincidere su ogni PC. Indici danneggiati ed errori «Table is busy» sono frequenti. Prima della migrazione ripariamo ciò che si può riparare e vi segnaliamo i record illeggibili.

  2. Codifica dei caratteri

    Il BDE salva il testo in una code page stabilita dal language driver della tabella, mentre Delphi 2009 e le versioni successive usano stringhe Unicode. Lettere accentate e simboli sono il punto in cui una migrazione sbaglia più spesso, quindi verifichiamo la codifica di ogni tabella e confrontiamo con voi campioni del testo convertito.

  3. Logica nascosta negli eventi dei dataset

    Le regole in BeforePost, OnValidate o OnCalcFields scattano in silenzio ogni volta che un record viene salvato o mostrato, ed è facile non vederle se si guardano solo i form. Cerchiamo nel codice ogni gestore di evento ed elenchiamo le regole che applica.

  4. Campi calcolati e di lookup

    Campi che esistono solo nel programma, non nelle tabelle, compaiono a video e nei report come se fossero dati salvati. Li riproduciamo come valori calcolati e li confrontiamo con gli originali.

  5. Componenti senza codice sorgente

    Alcuni pacchetti di terze parti sono stati acquistati come unit compilate per una sola versione di Delphi. Se il programma ne usa uno per un calcolo e non solo per la visualizzazione, ricostruiamo il comportamento dai risultati e lo confermiamo con i test di confronto.

  6. Formati di date e numeri

    I campi data di Paradox e dBase, gli anni a due cifre inseriti tanto tempo fa e i separatori decimali che dipendono dalle impostazioni internazionali di Windows richiedono una gestione esplicita quando i dati passano a un database SQL. Elenchiamo le anomalie trovate durante l'importazione e le risolviamo con voi.

Prezzo e pagamento

Analisi

Gratuita

scritta, entro 48 ore

Modulo pilota

1.000–1.500 €

di solito, 50% all'inizio e 50% all'approvazione

L'analisi è gratuita. Se decidete di non andare avanti, il report resta a voi e non dovete nulla.

I prezzi sono fissi e concordati per iscritto prima di iniziare. Se il perimetro cambia, vi mandiamo un nuovo preventivo scritto e aspettiamo la vostra approvazione prima di fare il lavoro in più.

Per una migrazione completa puntiamo a stare dal 40 al 60% sotto il preventivo tipico di un'agenzia. Possiamo farlo perché siamo uno studio piccolo, senza uffici da pagare né rete commerciale.

Prezzi IVA esclusa.

Provate il calcolatore di prezzo

Una migrazione vera, verificata dai test

Northwind è il database di esempio che Microsoft distribuiva con Access, non un nostro cliente. Ne abbiamo migrato una copia pubblica in SQLite e PostgreSQL, confrontato ogni tabella e ogni query con l'originale tramite test automatici e costruito sul risultato un'applicazione web funzionante. Il caso di studio riporta i numeri, il report di equivalenza elenca ogni controllo.

Northwind è un database Access, ma per Delphi seguiamo lo stesso metodo: migrare, testare rispetto all'originale, far girare i due in parallelo.

Report di equivalenza (in inglese) · Anteprima cliccabile e analisi di esempio (demo)

Domande frequenti

Il nostro programma Delphi usa tabelle Paradox su un disco di rete. Potete migrare i dati?

Sì. Leggiamo direttamente i file Paradox o dBase, li convertiamo in SQL Server o MySQL e confrontiamo numero di record e totali prima e dopo. I record danneggiati vi vengono segnalati, non scartati in silenzio.

Non potremmo semplicemente passare a una versione più recente di Delphi?

È un'opzione, e per alcuni programmi è quella sensata: l'applicazione resta un programma Windows, FireDAC sostituisce il BDE e il codice viene aggiornato. Se vi serve l'accesso da qualsiasi browser senza installare nulla sui PC, un'applicazione web è la scelta migliore. Quando hanno senso entrambe, l'analisi le confronta.

Non abbiamo il codice sorgente. È un problema?

Non necessariamente. Possiamo lavorare dal programma in uso, dai suoi file di dati e da registrazioni di come lo usano le persone. Con il codice sorgente l'analisi è più precisa, e dove mancano informazioni lo diciamo.

Con quali versioni di Delphi lavorate?

Con programmi scritti in qualsiasi versione, dalle prime Borland degli anni Novanta alle attuali di Embarcadero. La versione conta soprattutto per la gestione delle stringhe e per i componenti disponibili, e la indichiamo nell'analisi.

L'applicazione web può continuare a usare il nostro database Firebird o InterBase?

Sì, se altri programmi ne dipendono ancora. In quel caso l'applicazione web si collega allo stesso database, e il cambio di database può avvenire più avanti, o mai.

Cosa succede nei 30 giorni di funzionamento in parallelo?

Il vostro personale tiene a portata di mano il programma Delphi mentre lavora nella nuova applicazione, così può controllare i risultati sul lavoro reale. Ogni differenza che troviamo in quel periodo viene corretta all'interno del prezzo concordato.

Contatti

Via email:

riccardo@modernizestudio.com
Scriveteci un'email

Mandateci il programma e la sua cartella dei dati, con dati di prova se preferite, oppure una breve descrizione di cosa fa. Vi rispondiamo entro un giorno lavorativo.

Lavoriamo dall'Italia.

Scriveteci