Gambas Basic visuale per GNU/Linux - Autore: Matteo Pasotti Data: 24/10/2009 Realizzato con l'ausilio di OpenOffice 3,0

Pagina creata da Pietro Pucci
 
CONTINUA A LEGGERE
Gambas Basic visuale per GNU/Linux - Autore: Matteo Pasotti Data: 24/10/2009 Realizzato con l'ausilio di OpenOffice 3,0
Gambas
Basic visuale per GNU/Linux

                                                    Autore: Matteo Pasotti

                                                    Data: 24/10/2009

       Realizzato con l'ausilio di OpenOffice 3,0
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
Gambas Basic visuale per GNU/Linux - Autore: Matteo Pasotti Data: 24/10/2009 Realizzato con l'ausilio di OpenOffice 3,0
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
Gambas Basic visuale per GNU/Linux - Autore: Matteo Pasotti Data: 24/10/2009 Realizzato con l'ausilio di OpenOffice 3,0
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
Gambas Basic visuale per GNU/Linux - Autore: Matteo Pasotti Data: 24/10/2009 Realizzato con l'ausilio di OpenOffice 3,0
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
Gambas Basic visuale per GNU/Linux - Autore: Matteo Pasotti Data: 24/10/2009 Realizzato con l'ausilio di OpenOffice 3,0
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
Gambas Basic visuale per GNU/Linux - Autore: Matteo Pasotti Data: 24/10/2009 Realizzato con l'ausilio di OpenOffice 3,0
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
Gambas Basic visuale per GNU/Linux - Autore: Matteo Pasotti Data: 24/10/2009 Realizzato con l'ausilio di OpenOffice 3,0
Installiamo GAMBAS
    Pacchetti Binari - Debian/Ubuntu Way
          Da terminale:

          Adept o Synaptic (stile click&run):
                                  click&run

                                                8
Matteo Pasotti, TiLUG, Linux Day 2009
Gambas Basic visuale per GNU/Linux - Autore: Matteo Pasotti Data: 24/10/2009 Realizzato con l'ausilio di OpenOffice 3,0
ZOOM

                                               9
Matteo Pasotti, TiLUG, Linux Day 2009
Gambas Basic visuale per GNU/Linux - Autore: Matteo Pasotti Data: 24/10/2009 Realizzato con l'ausilio di OpenOffice 3,0
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