Gambas Basic visuale per GNU/Linux - Autore: Matteo Pasotti Data: 24/10/2009 Realizzato con l'ausilio di OpenOffice 3,0
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
Gambas Basic visuale per GNU/Linux Autore: Matteo Pasotti Data: 24/10/2009 Realizzato con l'ausilio di OpenOffice 3,0
Cos'è GAMBAS GAMBAS significa Gambas Almost Means BASic Gambas è un ambiente di sviluppo libero basato su un interprete Basic orientato agli oggetti, come Visual Basic™ (ma NON è un clone!) 2 Matteo Pasotti, TiLUG, Linux Day 2009
Perchè usare GAMBAS È software libero, tutelato da licenza GPL è ideato e realizzato per e su GNU/Linux permette di realizzare rapidamente le interfacce grafiche (GUI) per i vostri applicativi (QT e GTK) permette di accedere a database MySQL, PostgreSQL, SQLite, ecc 3 Matteo Pasotti, TiLUG, Linux Day 2009
Perchè usare GAMBAS permette di pilotare applicazioni KDE con DCOP permette di tradurre i vostri applicativi in varie lingue permette di creare applicazioni “di rete” facilmente utile per la didattica è semplice, comodo, veloce. ecc, ecc, ecc 4 Matteo Pasotti, TiLUG, Linux Day 2009
Come funziona GAMBAS Come detto prima, Gambas è un linguaggio interpretato, quindi i nostri programmi per essere utilizzabili dovranno subire due processi: compilazione: genera un codice detto bytecode che va a costituire il nostro file .class; interpretazione: riceve in ingresso il file .class contenente il bytecode e attraverso opportuni procedimenti e una fase detta di “linking”, carica il nostro programma in memoria, pronto a svolgere il suo lavoro. I programmi responsabili di questi due passaggi fondamentali sono il compilatore gambas gbc2 e l'interprete gbr2/gbx2. gbr2/gbx2 Senza l'interprete il nostro programma NON sarà eseguibile! L'IDE però ci risparmia tutto il lavoro sporco e in “due click” genera il nostro pacchetto che sembrerà a tutti gli effetti un comune programma, eseguibile con il “doppio click”. 5 Matteo Pasotti, TiLUG, Linux Day 2009
Come funziona GAMBAS Compilazione: Classi + Moduli Compilatore ByteCode gbc2 prog.class codice Forms gambas Esecuzione: Interprete ByteCode Eseguibile prog.class Gambas Linking gbx2 6 Matteo Pasotti, TiLUG, Linux Day 2009
Installiamo GAMBAS Due approcci possibili: Pacchetto binario della propria distribuzione (deb, rpm) Compilazione sorgenti (tar.gz, tar.bz2) 7 Matteo Pasotti, TiLUG, Linux Day 2009
Installiamo GAMBAS Pacchetti Binari - Debian/Ubuntu Way Da terminale: Adept o Synaptic (stile click&run): click&run 8 Matteo Pasotti, TiLUG, Linux Day 2009
Installiamo GAMBAS Pacchetti Binari - CentOS/Fedora Way Da terminale: Da PackageKit / Yumex 10 Matteo Pasotti, TiLUG, Linux Day 2009
11 Matteo Pasotti, TiLUG, Linux Day 2009
Installiamo GAMBAS Compilazione sorgenti Da terminale: # cd # ./configure -C # make # (come root) make install !! NB: quando si procede via compilazione devono essere presenti il compilatore e tutte le librerie necessarie ai vari componenti di GAMBAS altrimenti o non vengono abilitati o si verificano errori durante il processo di compilazione 12 Matteo Pasotti, TiLUG, Linux Day 2009
Avviamo GAMBAS Da terminale: Da menù: 13 Matteo Pasotti, TiLUG, Linux Day 2009
IDE di GAMBAS Caratteristica principale: E' scritto in Gambas Composto da: Box dei componenti Box delle proprietà dei componenti Box del progetto Box del codice IDE = Integrated Development Environment, Ambiente di sviluppo integrato 14 Matteo Pasotti, TiLUG, Linux Day 2009
15 Matteo Pasotti, TiLUG, Linux Day 2009
IDE di GAMBAS 16 Matteo Pasotti, TiLUG, Linux Day 2009
IDE di GAMBAS 2 Matteo Pasotti, TiLUG, Linux Day 2009 17
Documentazione di GAMBAS Uno dei punti di forza di Gambas è la sua documentazione vasta, dettagliata e ricca di esempi pratici Per accedervi è sufficiente cliccare sul ? e quindi sul primo elemento della lista (il pulsante funziona bene in ambiente KDE mentre in GNOME non apre il browser) 18 Matteo Pasotti, TiLUG, Linux Day 2009
Documentazione di GAMBAS La documentazione viene caricata all'interno del browser web Konqueror (qualche problema con GNOME) La documentazione è presente sia in locale sia al link http://gambasdoc.org/help/ 19 Matteo Pasotti, TiLUG, Linux Day 2009
20 Matteo Pasotti, TiLUG, Linux Day 2009
Linguaggio GAMBAS E' molto simile al BASIC utilizzato in Visual Basic™, migliore riguardo molti aspetti (gestione degli errori ad esempio) è semplice da assimilare consente di sfruttare la programmazione orientata agli oggetti (OOP) i suoi componenti sono binding a librerie già esistenti 21 Matteo Pasotti, TiLUG, Linux Day 2009
Linguaggio GAMBAS Le Basi Operatori aritmetici - (Numero) OPPOSTO Numero - Numero SOTTRAZIONE Numero + Numero ADDIZIONE Numero * Numero MOLTIPLICAZIONE Numero / Numero DIVISIONE Numero DIV Numero Int(Numero/Numero) Numero MOD Numero Resto divisione 22 Matteo Pasotti, TiLUG, Linux Day 2009
Linguaggio GAMBAS Le Basi Operatori di confronto = = < > (quest'ultimo significa diverso) 23 Matteo Pasotti, TiLUG, Linux Day 2009
Linguaggio GAMBAS Le Basi Operatori di assegnazione var = val uguale var += val eq. a var = var + val var *= val eq. a var = var * val var /= val eq. a var = var / val var \= val eq. a var = var \ val var &= val concatenazione stringhe var &/= val concatenazione per percorsi (path) 24 Matteo Pasotti, TiLUG, Linux Day 2009
Linguaggio GAMBAS Le Basi Dichiarare variabili locali e globali Variabili Locali: DIM variabile AS TIPO DIM x AS Integer DIM y AS Float DIM k AS String Variabili Globali: [STATIC] [PUBLIC/PRIVATE] variabile AS TIPO PUBLIC x AS Integer PRIVATE y AS Float STATIC PUBLIC k AS String 25 Matteo Pasotti, TiLUG, Linux Day 2009
Linguaggio GAMBAS Le Basi Dichiarare array (vettori) Vettori: DIM variabile AS NEW TIPO [dimensione vettore] DIM x AS NEW Integer[10] DIM y AS NEW Float[2] DIM k AS NEW String[50] Vettori (Inizializzazione): DIM variabile AS TIPO [] = [dato, dato, ...] DIM x AS Integer[]=[1,2,3] DIM y AS Float[]=[2.5,3.4] DIM k AS String[] = [“pippo”,”pluto”] 26 Matteo Pasotti, TiLUG, Linux Day 2009
Linguaggio GAMBAS Le Basi Dichiarare array multidimensionali (matrici) Matrici: DIM variabile AS NEW TIPO [X][Y] DIM x AS NEW Integer[1][10] DIM y AS NEW Float[2][100] DIM k AS NEW String[50][50] 27 Matteo Pasotti, TiLUG, Linux Day 2009
Linguaggio GAMBAS Le Basi Statement condizionali IF .... THEN .... ELSE .... ENDIF IF var = TRUE THEN ' fa qualcosa ELSE 'fa qualcosa d'altro ENDIF 28 Matteo Pasotti, TiLUG, Linux Day 2009
Linguaggio GAMBAS Le Basi Statement di scelta (sempre condizionale) SELECT .... CASE .... END SELECT SELECT CASE var CASE valore1 'azione da compiere al verificarsi di questa scelta CASE valore2 'altra azione CASE ELSE 'nel caso in cui nessun valore di var soddisfi alcuna scelta END SELECT 29 Matteo Pasotti, TiLUG, Linux Day 2009
Linguaggio GAMBAS Le Basi Cicli iterativi REPEAT .... UNTIL condizione REPEAT 'range di azioni UNTIL var >= val 'ripete finchè la variabile var assume valore >= val 30 Matteo Pasotti, TiLUG, Linux Day 2009
Linguaggio GAMBAS Le Basi Cicli iterativi – Statement ripetitivi WHILE condizione .... WEND WHILE var
Linguaggio GAMBAS Le Basi Cicli iterativi – Statement ripetitivi FOR .... TO .... [STEP espressione] .... NEXT FOR var = 0 TO val STEP 1 'range di azioni NEXT ' ripete finchè la variabile var raggiunge il valore
Linguaggio GAMBAS Le Basi Cicli iterativi – Statement ripetitivi FOR EACH ... IN ... ... NEXT FOR EACH item IN aVector 'azioni su item NEXT ' ripete per ogni item presente in aVector 33 Matteo Pasotti, TiLUG, Linux Day 2009
Linguaggio GAMBAS Le Basi Gestione degli errori TRY .... CATCH .... END TRY TRY 'azioni che possono generare errori da gestire 'apri,chiudi file ad esempio CATCH ' nel caso venga generato l'errore esegue quanto ' contenuto in questo statement END TRY 34 Matteo Pasotti, TiLUG, Linux Day 2009
Componenti Librerie 35 Matteo Pasotti, TiLUG, Linux Day 2009
Componenti Librerie 36 Matteo Pasotti, TiLUG, Linux Day 2009
Componenti GAMBAS gb File Collection Error Costanti Array di Datatype nativi (Byte[], String[],ecc) System Class Object ecc, ecc 37 Matteo Pasotti, TiLUG, Linux Day 2009
Componenti GAMBAS gb.eval Il componente gb.eval consente a Gambas di valutare espressioni. Viene caricato in modo automatico all'utilizzo della funzione Eval() Eval("(Sin(45)+Cos(45)+atan(i/4))") 2.04199926338 38 Matteo Pasotti, TiLUG, Linux Day 2009
Componenti GAMBAS gb.compress Il componente gb.compress consente a Gambas di comprimere e decomprimere file, di leggere e scrivere file compressi, di comprimere e decomprimere stringhe in memoria. Si appoggia alle librerie zlib e libbzip2 (rispettivamente utilizzate da gzip e bzip2) 39 Matteo Pasotti, TiLUG, Linux Day 2009
Componenti GAMBAS gb.db Il componente gb.db consente a Gambas di accedere ai seguenti sistemi di database: PostgreSQL MySQL FireBird SQLite Un esempio dell'utilizzo di questo componente lo troviamo nel Gambas Database Manager. 40 Matteo Pasotti, TiLUG, Linux Day 2009
Componenti GAMBAS gb.net / gb.net.curl Il componente gb.net consente a Gambas di realizzare applicativi di rete tipo server e/o client (TCP e UDP), accedere alla porta seriale, fare richieste sincrone o asincrone ai DNS Il componente gb.net.curl consente a Gambas di accedere a file remoti, quindi attraverso la rete, sfruttando protocolli quali http, ftp, tftp, ecc 41 Matteo Pasotti, TiLUG, Linux Day 2009
Componenti GAMBAS gb.vb Gambas non ha lo scopo di essere compatibile con vb Il componente gb.vb include solo alcune funzioni che mancano in Gambas o il cui comportamento è differente da Gambas a VB DateAdd / DateDiff Left$ / Mid$ /Right$ Round Str / Val Questo componente aiuta il porting dei progetti scritti in VB in GAMBAS 42 Matteo Pasotti, TiLUG, Linux Day 2009
Componenti GAMBAS gb.qt / gb.qt.ext Il componente gb.qt consente a Gambas di realizzare applicativi con GUI sfruttando le librerie grafiche QT (gestione tastiera e mouse, drag & drop, controlli, container, menu, disegno e stampa, ecc) 43 Matteo Pasotti, TiLUG, Linux Day 2009
Componenti GAMBAS gb.gtk / gb.gtk.ext Il componente gb.gtk consente a Gambas di realizzare applicativi con GUI sfruttando le librerie grafiche GTK (gestione tastiera e mouse, drag & drop, controlli, container, menu, disegno e stampa, ecc). Ottimo per applicativi da integrare in GNOME 44 Matteo Pasotti, TiLUG, Linux Day 2009
Componenti GAMBAS gb.xml / gb.xml.xslt / gb.xml.rpc I componenti gb.xml, gb.xml.xslt e gb.xml.rpc sono semplici interfacce alle librerie libxml, libxslt e libcurl 45 Matteo Pasotti, TiLUG, Linux Day 2009
Componenti GAMBAS gb.qt.kde / gb.qt.kde.html I componenti gb.qt.kde, gb.qt.kde consentono a Gambas di sfruttare le standard dialog di kde, di realizzare browser web sfruttando il widget KHTML e di pilotare le applicazioni con DCOP (automatizzazione) 46 Matteo Pasotti, TiLUG, Linux Day 2009
Componenti GAMBAS gb.qt.editor Il componente gb.qt.editor consente a Gambas ed al suo IDE di realizzare, ad esempio, editor con capacità di Syntax Highlighting (questo componente si appoggia al componente gb.eval di cui prima) 47 Matteo Pasotti, TiLUG, Linux Day 2009
Distribuzione applicazioni L'ambiente di sviluppo di GAMBAS mette a disposizione una utility con interfaccia grafica per la realizzazione di pacchetti per le maggiori distribuzioni GNU/Linux: Debian, Fedora, Ubuntu, Mandrake, Slackware, ecc; In questo modo chiunque potrà creare un pacchetto redistribuibile della propria applicazione, rendendola comodamente fruibile da tutto il mondo; L'utility stessa è scritta in GAMBAS, esattamente come l'editor e il db manager; 48 Matteo Pasotti, TiLUG, Linux Day 2009
Distribuzione applicazioni 49 Matteo Pasotti, TiLUG, Linux Day 2009
Applicazioni 50 Matteo Pasotti, TiLUG, Linux Day 2009
Conclusioni Come abbiamo visto, GAMBAS è un comodo strumento che ci consente di realizzare applicativi, per ora principalmente di tipo gestionale e nel futuro anche di altri generi, in modo facile, veloce e Libero*. Inoltre grazie alla sua semplicità e alla somiglianza con l'ambiente di casa microsoft, risulta essere una valida alternativa per gli studenti di tutti gli istituti superiori che usano il visual basicTM a scopo didattico e che spesso incontrano difficoltà nell'esercitarsi al di fuori dei laboratori a causa degli elevati costi di licenza di questi prodotti. * Con Libero si intende la libertà che deriva dall'utilizzo di software libero e a sorgenti aperti 51 Matteo Pasotti, TiLUG, Linux Day 2009
Disclaimer Questa presentazione è stata realizzata sfruttando le mie conoscenze sull'argomento e raccogliendo documentazione dalla rete, in particolare da http://gambas.sourceforge.net e www.gambas.it. Si ringraziano pertanto l'autore di GAMBAS, Benoît Minisini, tutti coloro che lavorano allo sviluppo del progetto GAMBAS e tutti coloro che forniscono documentazione, tutorial ed esempi a riguardo. 52 Matteo Pasotti, TiLUG, Linux Day 2009
Licenza Quest'opera è stata rilasciata sotto la licenza Creative Commons Attribution-NonCommercial-ShareAlike 2.5. Per leggere una copia della licenza visita il sito web http://creativecommons.org/licenses/publicdomain/ o spedisci una lettera a Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. 53 Matteo Pasotti, TiLUG, Linux Day 2009
Riferimenti http://gambasdoc.org/help http://gambas.sourceforge.net http://www.gambas.it 54 Matteo Pasotti, TiLUG, Linux Day 2009
Basta chiacchiere Se questa relazione vi ha incuriosito possiamo iniziare a divertirci con Gambas In laboratorio 55 Matteo Pasotti, TiLUG, Linux Day 2009
56 Matteo Pasotti, TiLUG, Linux Day 2009
Puoi anche leggere