Instant Developer Foundation è uno strumento molto potente che accelera notevolmente la velocità di sviluppo delle applicazioni e all’interno delle sue librerie sono mappate funzioni che rispondono alla maggior parte delle esigenze di implementazione.

Quando si verifica l’esigenza di integrare una propria classe C# o Java in un progetto, le librerie di Instant Developer Foundation potrebbero apparire in alcuni casi, a seguito di un’analisi superficiale, come un oggetto chiuso. Ma la realtà è molto diversa. Tutto quello che può essere scritto in un’applicazione web C# o Java può infatti essere scritto - e quindi utilizzato - anche con la nostra piattaforma di sviluppo. Basta solo sapere quale sia il rapporto tra le librerie del Visual Code e il codice C# o Java ottenuto.

Immaginiamo, ad esempio, di voler mappare la classe MyClass con il metodo welcomeMe(). Il metodo accetta una stringa in ingresso e restituisce “Hello <parametro>!”. A titolo di esempio ho creato un piccolo progetto in C#. D’ora in poi parleremo quindi di C#, ma ovviamente tutto l’articolo è valido anche per Java.

Per prima cosa, la classe deve essere inclusa nel progetto e, poiché non fa parte del template standard, è necessario aggiungere file alla directory custom. Per maggiori informazioni sulla directory custom potete consultare il paragrafo 11.2 della Guida all’uso di Instant Developer Foundation.

Per aggiungere la classe nel progetto usiamo il comando di menu contestuale Nuova libreria.

Verrà mostrata la pagina di dettaglio del nuovo oggetto Nuova Libreria appena creato. Nei campi Nomi della classe dobbiamo inserire il namespace e il nome della classe, così come li avremmo usati per scrivere la riga di codice new MyNameSpace.MyClass().

Ora che abbiamo mappato il nome della classe, procediamo con la creazione di una nuova funzione usando il comando Nuova funzione del menu contestuale della classe.

Apparirà la finestra delle proprietà della funzione, nella quale andremo a scrivere il codice C# così come lo scriveremmo in Visual Studio - con alcune piccole note sulla sintassi.

Nella scrittura del codice infatti dobbiamo essere in grado di:

  1. referenziare l’istanza corrente della classe;
  2. referenziare i parametri.

Per farlo usiamo il simbolo $ e un numero come identificatore:

  1. $0 per referenziare la classe;
  2. $1, $2, $3, ecc… per referenziare i vari parametri.

Normalmente penseremmo di dover scrivere $0.welcomeMe($1) ma, come si vede dall’esempio, appare anche $1.stringValue(). Perché?

Il motivo è che all’interno di Instant Developer Foundation non vengono utilizzati i tipi primitivi int, string, boolean, ecc…, ma istanze di una classe IDVariant. Questa classe è frutto dell’eredità di Visual Basic 6. Instant Developer Foundation, infatti, è nato con VB6 e, al momento dell’implementazione del generatore di codice Java, abbiamo deciso di tenere il caro vecchio variant e di potenziarlo, creando una classe speciale.

Grazie proprio alla classe IDVariant, il comportamento delle applicazioni scritte con Instant Developer Foundation è uguale nei vari linguaggi che implementa. Infatti tutti i metodi base - la somma, la concatenazione, il confronto, l’ordinamento, ecc... - sono ottenuti tramite apposite funzioni di IDVariant. Anche il confronto con null dà un risultato certo per questo motivo ed è una feature davvero potente.

Ma la nostra classe C# non conosce IDVariant e non deve conoscerlo: occorre quindi passare un parametro di tipo primitivo. Per ottenerlo è sufficiente usare una tra le seguenti funzioni:

  • intValue();
  • stringValue();
  • booleanValue();
  • dateValue();
  • floatValue().

Nell’esempio riportato qui sopra, tuttavia, è presente un errore: la funzione welcomeMe() restituisce una variabile string ma, come appena detto, nel Visual Code dobbiamo utilizzare degli IDVariant. Risolvere il problema è facile: basta restituire sempre una nuova istanza di IDVariant creata a partire dal risultato di welcomeMe(). Il costruttore accetta infatti tutti i tipi primitivi.

La nostra funzione finale sarà: new IDVariant($0.welcomeMe($1.stringValue()).

Dobbiamo anche ricordarci di specificare character come tipo restituito.

Aggiungiamo il parametro definendolo come character usando il comando di menu contestuale della funzione Nuovo parametro e impostandola così nella schermata delle proprietà. Grazie alla mappa dei tipi di dato permessi, l’IDE è in grado di validare il codice scritto generando gli opportuni errori di tipo di dato errato.

A questo punto possiamo usare nel Visual Code Editor la funzione appena creata.

E il risultato è più che esplicativo.

Questa è la tecnica di base che può essere utilizzata ma, se si desidera includere classi più complesse, basta continuare a usare lo stesso metodo più volte.

Siamo arrivati alla fine di questo Tips&Tricks: ora tocca a voi mettere in pratica quello che vi ho mostrato… buona importazione a tutti!