Newsgroup: it.comp.lang.delphi
Titolo: [D7] Gestione versioni librerie componenti

Ciao a tutti,
Sto iniziando a valutare delphi per lo sviluppo di certi progetti e 
premesso che la mia esperienza in tale ambiente è attualmente molto 
ridotta, vorrei ottenere dei suggerimenti, o valutazioni, relativamente 
alla gestione delle librerie di componenti.
Il mio dubbio riguarda l'effettiva possibilità di gestire, sulla stessa 
postazione di sviluppo, progetti che facciano uso di librerie di 
componenti di versioni differenti.
Può nascere ad esempio l'esigenza che un certo progetto debba essere 
mantenuto su una determinate versione di una certa libreria, mentre un 
secondo progetto debba essere invece sviluppato con una versione più 
recente della stessa libreria.
Tenuto conto che certe librerie di componenti fanno uso di chiavi di 
registro di Windows mi chiedo se ciò sia possibile, ed eventualmente mi 
interesserebbe capire eventuali limiti dovuti alla modalità di gestione 
delle librerie da parte di Delphi.
ciao,
marco

Magari ho capito male, ma preferisco chiarire una cosa.
A differenza di quanto accade in vb dove le dipendenze esterne sono 
innumerevoli e gli unici componenti utilizzabili sono ocx (che 
richiedono piu di una chiave nel registry), delphi ha, salvo particolari 
opz di compilazione, un limitatissimo numero di dipendenze esterne e, 
non essendo legato solo all'uso di ocx, la presenza o l'assenza di 
chiavi non costituiscono alcun problema.
Uno sviluppatore delphi in genere non usa gli ocx semplicemente xche nel 
95% dei casi non ne ha bisogno.
Se poi la tua esigenza è di avere, ad esempio, un progetto delphi7 che 
usa indy9 e uno che usa indy10, onestamente non ne vedo l'esigenza.
A differenza degli ambienti m$ dove la retrocompatibilità è in genere 
poco garantita, per cio che riguarda delphi essa esiste in una 
elevatissima percentuale di casi.
Magari se fornisci dettagli + precisi sul tipo di componenti sui quali 
secondo te potresti avere problemi, qualcuno del ng potra darti 
indicazioni + precise.
Finally, tutto quanto detto prima vale ovviamente x win32.
Su .Net, se dai uno strogname ad una libreria di classi il versionamento 
  è implicito: sarai poi tu a decidere a quale versione una specifica 
app debba fare riferimento.
HTH
-- 
Alberto Salvati
A NEAPOLITAN Delphi Developer who is studying c# and .net
"Dicette 'o pappece 'nfaccia 'a noce dammi 'o tiempo che pure te spertoso"

 "Dicette 'o pappece 'nfaccia 'a noce dammi 'o tiempo che pure te spertoso"
Scusa se mi intrometto con questo [OT] ma... potresti tradurmi l'ultima riga
della firma! :-)
Grazie.
Alf

 usa indy9 e uno che usa indy10, onestamente non ne vedo l'esigenza.
L'esigenza è quella di gestire release differenti di un certo prodotto 
che faccia uso di librerie di terze parti. Dal mio punto di vista il 
prodotto e le librerie compongono un insieme inscindibile, data la forte 
dipendenza tra il codice sviluppato e la libreria stessa.
Supponendo che un dato cliente non voglia aggiornare la versione del 
prodotto installato ad una versione più recente, e che sia neccessario 
intervenire per fissare un bug, è indispensabile ricompilare l'intero 
progetto con la versione delle librerie originale.
A prescindere dal fatto che la retrocompatibilità sia garantita o meno, 
il passaggio ad una libreria più recente potrebbe non essere 
un'operazione così indolore, in quanto richiedere una approfondita fase 
di test.
Se il cliente ha bisogno di un bugfix immediato non posso costringerlo a 
passare alla nuova release del prodotto, magari basata sulle nuove 
librerie, ne posso rischiare di ricompilare la sua versione con delle 
librerie non testate sulla sua versione. Preferisco in questo caso 
utilizzare la vecchia versione delle librerie, fissare il bug e ricompilare.
Tutto questo va ovviamente gestito con un sistema di versionamento come 
CVS, e lo sviluppatore deve avere la possibilità di passare da una 
versione all'altra in maniera trasparente per l'ide di sviluppo.
ciao,
Marco

 Alf
Andrea

 "storia" del progetto e delle macchine usate per esso.
Conosco VMWare ma sinceramente avrei optato per una soluzione di questo 
tipo esclusivamente come ultima spiaggia. VMware va benissimo per 
tutt'altro genere di problematiche.
Oltretutto non riesco ad immaginarmi come gestire lo sviluppo in 
concorrenza, ossia quando lo sviluppo su determinati progetti avviene da 
parte di più di una persona.
ciao,
marco

 Marco
Andrea

 marco
Andrea

 Più di questo, che te devo dì? :D
Mi rendo conto di essere tedioso ;) ... ma voglio capire
bye marco
-- 
----------------------------------------------
Marco Montel
e-mail 
marco....@gmx.de
tel 
329-3569257
-----------------------------------------------

 progetti.
Il grafico e' chiaro e anche la tua spiegazione: premesso che utilizzo D6 e
quindi sono indietro di 3 release, fattosta' che per quanto ne so io, non
puoi fare una cosa del genere per via dell'IDE che vuole pakages globali.
L'unica possibilita' che ti rimane rispettando il tuo progetto (legare
versioni differenti di indy a progetti differenti) penso che sia quella di
intervenire a mano sui sorgenti indy *ridefinendo* i nomi dei componenti.
E' un bordello, lo ammetto, ma con un po' di pazienza e un po' di metodo,
forse ce la puoi fare.
Stabilisci un protocollo, ad esempio che i componenti avranno "_9" finale
per la versione 9 di indy e "_10" per la versione 10, ecc.
Sostituisci nei sorgenti indy tutte le ricorrenze dei componenti
adeguandole alla nuova toponomastica, ricrea i packages e li installi
separatamente nell'ide. Se a questo punto se ce l'avrai fatta e non sara'
scoppiato delphi (ridefinizioni di costanti, ecc) , allora avrai buone
probabilita' di mantenere i tuoi progetti.
Per finire, ti suggerisco di usare le GEXperts che hanno un'ottima funzione
per sostiture su un form un componente ad un altro.
Come diciamo noi polentoni, "L'è dura...sperém...". :-)
-- 
Morde. 
M-List di icld: 
http://it.groups.yahoo.com/group/icld/

 bye marco
Ciao,
Andrea

 per la versione 9 di indy e "_10" per la versione 10, ecc.
Direi che questa soluzione va molto al di la dell'ultima spiaggia 
proposta da Andrea ;)
ciao,
Marco

 Marco
Andrea

 migliore.
Pur rimanendo consapevoli che si tratta di un accrocchio che ha il solo
scopo di mantenere due versioni della stessa libreria nel sistema.
Ciao


 Ciao
Ciao,
Andrea

 Grazie.
prego
-- 


Non so se vi puo essere utile questo link pero e meglio che niente:
http://www.alphalink.com.au/~jed/dcm.htm
saluti
***Gio***

 
http://www.alphalink.com.au/~jed/dcm.htm
Sembra essere interessante, per lo meno un ottimo punto di partenza.
Ti ringrazio per il suggerimento.
bye Marco