ApplicationInsights : un caso reale con un’applicazione Notes Domino

Dopo pochi giorni dai primi test di ApplicationInsights mi è ora capitato un primo caso reale per utilizzarlo.
Una applicazione Notes che è in produzione da anni deve essere spostata da un server Domino ad un altro e con l’occasione modificata nell’ottica poi di portarla su interfaccia browser.

Solo il fatto di spostarla da un server ad un altro può essere fonte di problemi : dopo tanto tempo l’amministratore del server non ricorda a cosa si interfaccia l’applicativo e se ha connessioni esterne.
In un caso simile dovrei scorrermi il codice per le verifiche del caso ma si tratta ovviamente di un lavoro lungo e noioso. Attivo invece ApplicationInsights e mi scorro il report generato.

ApplicationInsight per Notes Domino
ApplicationInsight per Notes Domino

Il primo che ottengo e’ quello relativo alla complessità dell’applicativo : i due istogrammi mi riportano rispettivamente in azzurro il numero di elementi di design che trovo all’interno del file .Nsf (e quindi 62 Views, 27 Forms, 22 Agents e così via) mentre l’istogramma sottostante in arancione mi riporta la complessità e cioe’ il numero di linee di codice per ogni classe di elementi . In questo caso stiamo parlando di 2000 linee di codice negli agents e 3000 nelle script libraries.

Ma avere l’idea della complessità dell’applicazione non è sufficiente e devo scendere in dettaglio, specie nell’ottica del problema che devo affrontare .

Inizio a controllare gli “Insights” del design del file .Nsf ed ecco i primi warning . Nel primo caso trovo gli elementi (LotusScript, actions ecc.) in cui vado ad interagire col file system del server:

ApplicationInsight per Notes Domino

Qui mi viene evidenziata chiaramente una parte di codice LotusScript in cui sono gestiti dei file esterni che , peggio ancora, hanno path e nome file cablati direttamente all’interno del codice. Ecco un punto su cui intervenire sicuramente !!
Potete vedere che la sezione “Working with files” è contenuta all’interno di “Operating System Dependencies” insieme ad altre sezioni ugualmente interessanti:
ApplicationInsight per Notes Domino

Senza continuare coi dettagli di tutto quello che posso trovare all’interno dei singoli punti queste sono tutte le sezioni disponibili in modo da darvi l’idea delle informazioni che potete avere:

ApplicationInsight per Notes DominoApplicationInsight per Notes Domino

Ultima parte importante è quella relativa all’interfaccia web. Qui mi vengono segnalate tutte le parti di codice esistente che sono incompatibili con il funzionamento dell’applicazione Domino su di un browser:

ApplicationInsight per Notes Domino

E’ ovvio che migrare un’applicazione dall’uso nel client Notes all’interfaccia browser significa ripensarla totalmente : o rifaccio le form con codice Html oppure creo le Xpages necessarie . Quindi in ogni caso devo mettere mano pesantemente al codice . Questo report mi serve però a capire se ho del codice che posso riutilizzare o se devo sostituire totalmente delle funzioni.

Riassumendo quindi ho potuto verificare abbastanza agevolmente quali parti della mia applicazione Notes Domino sono da modificare od almeno da verificare nel caso la voglia migrare su di un server differente.
Ho anche scoperto quali sono i punti deboli dell’applicazione stessa: avere dei nomi di path o file cablati nel codice non è una buona pratica. Stessa cosa per quanto riguarda i nomi dei server.
Si tratta di punti che comunque dovrei sistemare , a prescindere da eventuali interventi di migrazione .

Chi ha già avuto modo di fronteggiare questo tipo di situazione (ma non solo) si è potuto rendere conto di quanto prezioso sia questo tool: invece di scorrere 2000 e più righe di codice ho potuto verificare il mio file .Nsf all’interno dell’ambiente Notes Domino con pochi click e verificare i punti di intervento necessari e/o quelli solo consigliabili , il tutto in poco tempo e con notevole sicurezza !