Eccomi qui pronto di nuovo a postare.
L'argomento, che tratterò in una serie di post, è il nuovo Borland Developer
Studio 2006, uno
splendido strumento per lo sviluppo Win32 e dotNET.
In questa serie, mi focalizzerò sullo sviluppo dotNET, in particolare una
nuovissima e molto promettente tecnologia di nome Enterprise Core
Objects ver. III(abbreviato ECOIII).
Essa è basata(per ora) su dotNET 1.1 SP1, poiché BDS 2006 non supporta dotNET
2.0(previsto invece per la prossima versione) e consente di avere un completo
motore di persistenza e di gestione di oggetti.
BDS2K6 viene in tre edizioni diverse: Pro, Enterprise, Architect. Ognuna di
esse ha un "pezzo" di ECO, tranne la Architect che ha invece
*tutto*.
Vediamo come funziona ECO "concettualmente": l'idea è basata sul Model Driven
Development, infatti allo scopo BDS2K6 include Together, un tool di modellazione
Borland anche per Visual Studio. Esso viene esteso da ECO per supportare la
modellazione di classi persistenti, quindi si ha a disposizione un insieme di
elementi UML da utilizzare per la pianificazione e la modellazione del
sistema-applicazione.
Quando servirà poi definire il sistema di persistenza, ecco che ECO mostra i
muscoli: nelle versioni Enterprise ed Architect, infatti, è disponibile un
completo framework che consente di avere indipendenza dal sistema database
utilizzato(sono supportati tutti i DB attraverso i Borland Data Provider, di cui
parlerò più avanti) e consente anche - in caso di cambio al modello - di
evolvere il database.
La funzione di evoluzione è anche utile quando si ha un database preesistente
e si vuole generare il modello(opzione disponibile), aggiungendo quindi al DB
tutti i campi e le robe che servono ad ECO per
funzionare in modo
corretto.
Come detto, però, ECO non è solo un motore di persistenza: è infatti
disponibile un Object Control Language(OCL) tramite il quale definire, vincoli,
constraints, ma anche operazioni(supponendo ad
esempio di voler caricare
tutti gli elementi di classe TPersona, lo statement OCL è
semplicemente
"TPersona.AllInstances").
Tra i vari metodi di serializzazione disponibili, ovviamente, c'è anche il
formato XML, specificatamente SOAP - molto utile se si sviluppano Webservices
oppure se si scrivono applicazioni "desktop".
E non è finita qui
Dicevo che avrei parlato dei Borland Data Provider più avanti... beh, spero
che la piccola introduzione abbia suscitato un minimo di interesse, quindi ecco
una piccola descrizione di cosa sono.
Posto in termini semplici, la tecnologia BDP si appoggia alla
"infrastruttura" ADO.NET aggiungendo
però un pò di cose: anzitutto, c'è un
sistema di connection pooling built-in(cosa che fa molto
comodo in certi
ambiti) e poi... uhm... mi sa che se continuo così, questo post non finisce più
,
quindi vi rimando a questo articolo introduttivo sui BDP.
Ah, ovviamente ECO supporta anche ASP.NET 1.1(versioni ENT e ARCH), quindi
potete creare dei "Webservice ECO" i quali sono quindi già "mezzi pronti", basta
solo aggiungere il codice.
Si, parlo di codice, infatti ECOIII non è un C.A.S.E.: pur potendo modellare
le classi da rendere persistenti, si possono aggiungere delle operazioni(metodi)
e codarle "a manina" mentre ECO si occupa di tutto il resto(persistenza,
distruzione, ecc).
Sfortunatamente, io dispongo solo della versione PRO, per di più da pochi
giorni, quindi sto ancora imparando "bene" come realizzare i modelli e le vere
potenzialità della tecnologia.
Una cosa però è degna di menzione: l'edizione Architect, oltre ad una
serie di "goodies" in generale(troppa roba per elencarla in un post) contiene
una parte di ECO molto interessante: è infatti possibile realizzare
delle "ECO State Machines" che consentono di realizzare delle macchine a stati
da usare con le classi persistenti. Molto, molto, molto carino .
Per ora finisco qui, spero di tornare presto con un altro post ed un pò di
codice per mostrare come nella pratica funziona ECOIII(quindi anche con un pò di
codice).
Saluti,
Andrea