Tips & Tricks: mantenere allineate parti di due progetti

by Giuseppe Lanzi on 16 gennaio 2015

Oggi vi voglio parlare di una funzionalità di TeamWorks, il sistema di versioning di Instant Developer, della quale non tutti sono a conoscenza: i Componenti di Team Works.

È facile pensare subito ai componenti di Instant Developer introdotti in versione 9.0, ma se parliamo di Team Works intendiamo una feature molto precedente. All’interno di un progetto InDe è possibile usare il comando del menu contestuale del progetto  Aggiungi componente, che crea un oggetto molto simile ad un’applicazione ma che funziona (ed è compilato) come una libreria .dll o .jar. Questi componenti possono essere esportati e importati in altri progetti, con e senza sorgenti, rispondono insomma al bisogno di rendere modulari le funzionalità applicative. Ogni volta che un componente viene esportato, all’interno del file .idz risultante sono contenuti tutti gli elementi necessari all’uso del componente stesso.

È un modo per creare e riusare librerie complesse, a grandi linee. Ma questo non risponde sempre all’esigenza di allineamento di parti di progetto, come ad esempio il database, tipica di chi sviluppa una suite di prodotti.

Immaginiamo di avere 3 gruppi di lavoro che sviluppano 3 applicazioni diverse che agiscono sullo stesso database, immaginiamo anche che questo database non sia definitivo ma sia in costante sviluppo e magari sviluppato con uno strumento esterno a InDe oltre che utilizzato da un software di terze parti. Come fare a distribuire in tutti i progetti la definizione del database? I componenti di InDe non sono la risposta giusta, perché al momento dell’esportazione InDe mette nel componente “solo” tutto ciò che serve al codice del componente stesso, il che vuol dire che se non vengono usate tutte le tabelle del database ci sarà sempre qualcosa che manca.

Nel caso in questione la soluzione giusta è l’uso di un Componente di Team Work.

Partendo da un progetto A è infatti possibile usare il comando  Aggiungi componente del menu contestuale di un oggetto, diciamo il database, per renderlo pubblico al gruppo di lavoro e creare quindi il relativo Componente TW. A questo punto iscrivendo un altro progetto B al componente di A quella parte verrà copiata in B.

Immaginiamo che la struttura del database venga gestita nel progetto A, subito dopo il checkin tutti i progetti che sottoscrivono il componente verranno allineati alla nuova versione e tutti gli sviluppatori la riceveranno al prossimo recupero delle ultime modifiche. Il tutto può avvenire automaticamente o meno a seconda della configurazione.

Negli ultimi mesi l’uso di questa funzionalità ha risolto molto bene un paio di situazioni altrimenti molto difficili e scomode per gli operatori.

Per saperne di più, trovate tutte le informazioni che vi servono nel paragrafo 14.8 della guida all’uso.

P.S.
Starete pensando anche voi che l’ambiguità del nome del comando siamo d’accordo con voi, poteva esserci una scelta migliore.

{ 3 comments… read them below or add one }

1 Senni Alberto 16 gennaio 2015 alle 13:23

Ottimo, ogni tanto rinfrescare qualche funzionalita “nascosta” non è male !

2 Riccardo Bianco 16 gennaio 2015 alle 14:06

Molto, molto interessante.

3 giovanni poidomani 17 gennaio 2015 alle 20:55

e chiamarlo componenteTW …?
Conoscevo questa utilissima ed indispensabile possibilità

Leave a Comment

Previous post:

Next post: