Come distribuire le proprie applicazioni Delphi

Il lungo lavoro è oramai quasi terminato: sono state disegnate le form, il codice è pronto, i bug corretti, e forse anche il manuale ha un proprio contenuto. Tutto ciò che resta da fare è distribuire l'applicazione agli utenti. Niente di più facile! Quasi sempre... Se la vostra applicazione Delphi è piccola, autocontenuta, e non ha accesso ad un database, la distribuzione si limiterà alla copia del file .EXE su di un floppy disk da spedire agli utenti. Ma nella maggior parte dei casi ci sono altri fattori da considerare.
Nei prossimi paragrafi verranno discussi alcuni punti importanti che precedono la build finale, per poi passare ai modi per identificare ed installare tutti e soli quei files di cui si ha bisogno per far funzionare l'applicazione.

Prima della build finale

È opportuno ricordare una serie di passi da compiere prima di chiudere il progetto. Innanzi tutto occorre controllare le pagine "Compiler" e "Linker" nella dialog "Project Options": deselezionare "Range checking", "Overflow checking" ed "Include TDW debug information", e selezionare "Optimize for size and load time"; queste scelte, infatti, ridurranno la grandezza del vostro file .EXE migliorandone le prestazioni a run-time. La casella "Debugging options", invece, non ha influenza sulle prestazioni dell'eseguibile.
A questo punto occorrerà assegnare un'icona di default all'applicazione: sarà possibile selezionarne una dalle varie collezioni disponibili nel pubblico dominio, o sfruttare la propria vena artistica del momento usando l'Image Editor di Delphi: sarà sufficiente disegnarla, salvarla con suffisso .ICO e collegarla al progetto con un click sul bottone delle parentesi per la proprietà Icona della main form, specificando Load nella dialog relativa.
Controllate anche che all'applicazione sia assegnato un titolo, nel campo Title all'interno del dialog delle Project Options: si tratta di un nome descrittivo che apparirà sotto l'icona minimizzata, e che nulla ha a che vedere con il nome presente nella main title bar.
A questo punto si potrà lanciare la build finale, semplicemente ricompilando il progetto. Il file .EXE risultante sarà nella stessa directory del progetto, se non è stato specificato un differente percorso nella dialog Project Options.

Installazione dell'eseguibile.

Spesso tutto ciò che resta da fare è consegnare l'eseguibile all'utente, che potrà copiarlo sull'hard disk e lanciarlo. Ovviamente, se l'applicazione consta anche si una serie di DLL, dovranno essere distribuite anch'esse con l'applicazione. Se poi il progetto si compone anche di un file di help, di README, di .INI, sarà opportuno consigliare all'utente di porre questi file ntutti assieme in un'unica directory, mentre se si tratta di una piccola utility, potrà essere posta indifferentemente nella directory di Windows come un Notepad od un Cardfile.

VBX

Nella compilazione di un progetto, Delphi registra i componenti di tipo VCL all'interno dell'eseguibile. Ciò non si verifica per i componenti VBX, che dovranno essere distribuiti con l'eseguibile come fossero DLL indipendenti; controlalre in questo caso se si dispone dei diritti per la distribuzione di tali VBX.
Un file VBX può essere posto tanto nella directory dell'applicazione quanto in una qualsiasi directory nel path del DOS. Molti sviluppatori tendono a porre i VBX all'interno della System directory, per consentire anche ad altri programmi di utilizzarli. Se non pensate di far condividere i vostri VBX ad altri processi, è il caso di porli nella directory dell'applicazione: oltre a ridurre la confusione nella directory System, ciò eviterà di sovrascrivere VBX esistenti con lo stesso nome, ma relativi a differenti releases, e di far sovrascrivere i vostri in installazioni successive di altri programmi.
L'utente sarà anche tenuto a copiare la libreria Borland BIVBX11.DLL, che contiene le routines di supporto dei VBX per Delphi. Se ne trova una copia nella directory System, mentre sul computer dell'utente potrà essere indifferentemente posta nella directory System o nella directory dell'applicazione.

Borland Database Engine

Le cose si complicano un poco se la vostra applicazione utilizza il Borland Database Engine (BDE), che dovrà anch'esso venire installato sul sistema dell'utente. La licenza Delphi consente di redistribuire il BDE con le proprie applicazioni, ma occorre seguire alcuni steps per poterlo fare.
Per prima cosa occorrerà copiare il BDE su floppy disk: bisogna caricare il CD-Rom e dirigersi nella directory \REDIST\BDEINST. Vi troverete le due sottodirectory DISK1 e DISK2 che dovranno essere copiate sui dischetti da consegnare all'utente.
Successivamente sarà necessario lanciare SETUP.EXE dal primo floppy disk, per controllare che BDE non sia già stato installato; SETUP è stato scritto per l'utente finale, e non necessita di particolari conoscenze per essere eseguito.
Infine, bisognerà chiedere all'utente di lanciare l'utility di configurazione del BDE (BDECFG.EXE) per definire i drivers per il database e selezionare gli alias.
Per risparmiare spazio su disco l'utente potrà poi cancellare i drivers BDE non supportati dall'applicazione: se infatti l'applicazione è stata creata per usare tabelle Paradox l'utente potrà cancellare i drivers ASCII, dBase e ODBC. Il capitolo I della Guida allo sviluppo di Applicazioni di Database contiene la lista di questyi drivers. Va da sé che le cancellazioni richiedono perizia da parte dell'utente...

Altri database

Se l'applicazione usa drivers SQL Link, dovrete installare altri files. Non esiste un programma di setup automatico per questi files, occorre copiarli a mano dal proprio sistema a quello dell'utente. Il tipo di files necessari dipende dal tipo di database prescelto, e sono presenti esclusivamente nella versione Delphi Client/Server: una lista relativa a questi files viene presentata nel capitolo 6 della Guida allo Sviluppo di Applicazioni di Database.
Secondo la licenza Borland, per poter distribuire tali files occorre essere utenti registrati di Delphi Client/Server; per il Local Interbase Server è possibile acquistare una licenza a parte da Borland se non si è in possesso della versione Delphi Client/Server.
Per quanto concerne infine i drivers ODBC, Borland non li distribuisce affatto. Occorre che l'utente o lo sviluppatore abbia installata una o più applicazioni che supportino tale standard, o acquistare il prodotto con la licenza relativa sul mercato.

ReportSmith

Se l'applicazione in distribuzione utilizza un componente Treport, occorre distribuire il modulo di run-time ReportSmith all'utente. Il metodo per la distribuzione è simile a quello visto per il BDE. È necessario accedere alla directory \REDIST\RPTINST sul CD-Rom di Delphi, copiarne i contenuti delle subdirectory su cinque floppy disk e distribuirli all'utente: basterà lanciare INSTALL.EXE dal primo disco.
Sebbene la licenza di Delphi consenta la redistribuzione del modulo run-time del ReportSmith, tale licenza non è estensibile al ReportSmith stesso: se gli utenti vorranno modificare rapporti o disegnarne di nuovi dovranno acquistare da Borland un prodotto separato.
Nell'utilizzo di ReportSmith durante la progettazione vengono creati diversi file .RPT, uno per ciscun rapporto. Questo file non viene inglobato nell'eseguibile e dovrà essere pertanto distribuito separatamente.

Supporto OLE

Infine, se l'applicazione utilizza componenti OLE container, bisognerà aggiungere sulla macchina dell'utente i files di supporto OLE Microsoft. La licenza di Delphi consente di redistribuire tali files, contenuti nella directory \RUNIMAGE\WINDOWS\SYSTEM del CD-Rom di Delphi.
Delphi non offre una utility di auto-installazione per questi files, pertanto si rende necessria la copia manuale degli stessi. I file in questione sono i sei il cui nome inizia per OLE2, più BOLE16D.DLL, COMPOBJ.DLL, STORAGE.DLL e TYPELIB.DLL; tutti questi files dovranno essere copiati nella directory System dell'utente.

Il programma di setup

Ciò che è iniziato come una semplice copia di un file eseguibile, si è trasformato in un procedimento abbastanza complesso. A seconda della natira dell'applicazione da rilasciare, si avranno moduli run-time, file di supporto, VBX, drivers e molto altro materiale di cui preoccuparsi: se l'utente finale non è smaliziato, o se l'installazione dovrà avvenire in località non presidiate, rimettere a posto tutti i pezzi del mosaico potrebbe essere più difficile del previsto.
Una soluzione per sistemare le cose potrebbe essere quella di fornire un proprio programma di setup. Con un investimento iniziale per l'acquisto di un sistema per la creazione di programmi di setup (come ad esempio Ez-Install, Winstall o InstallShield) sarà possibile generare un programma che si occuperà dell'installazione dell'intera applicazione da floppy disk.
I programmi di setup generati da queste utility, infatti, non si limitano a copiare files sull'hard disk dell'utente: controllano anche lo spazio a disposizione sul disco fisso, creano le directory necessarie, indagano sulla presenza di versioni precedenti del programma, installano icone nel Program Manager e aggiornano i files di sistema dell'utente. È persino possibile passare il controllo ad altri programmi, in modo da predisporre la chiamata programmi dedicati al setup del BDE o del run-time del RepostSmith. In caso di numerose installazioni presso utenti non evoluti, un investimento del genere potrebbe essere facilmente ripagato in termini di minore assistenza necessaria presso il cliente.

Conclusione

Nonostante la promessa di files "all-in-one", le applicazioni Delphi non sono così semplici da installare come forse alcuni di voi avrebbero sperato, tuttavia avvicinandosi al problema per gradi, ma sistematicamente, sarà possibile evitare la maggior parte dei problemi. Il procedimento, infatti, è comunque diretto, non richiede l'acquisto di licenze extra o il pagamento di royalties. Una volta distribuite die o tre applicazioni, l'intera faccenda diventa automatica, tanto da tornare a pensare che, dopo tutto, anche la distribuzione delle applicazioni, come la magior parte delle cose sotto Delphi, è semplice.

(articolo tratto da Delphi Developer, a nome di Mike Lewis) (Traduzione e adattamento a cura di Luigi Morelli)


Torna alla Home Page.

Torna a pagina precedente