Sviluppiamo la prima applicazione in VB .Net

A partire da questa lezione cominceremo ad affrontare di petto la programmazione in .

A partire da questa lezione cominceremo ad affrontare di petto la programmazione in .Net. Eviteremo quindi di ripetere cosa sia un linguaggio OOP, cosa sia l’ereditarietà, l’incapsulamento e così via: per il momento cercheremo di conoscere meglio le istruzioni e la sintassi necessaria a far funzionare un’applicazione realizzata con la nuova piattaforma Microsoft. Le novità teoriche ed architetturali introdotte dal nuovo ambiente verranno analizzate in seguito quando vi sentirete più a vostro agio con l’IDE di sviluppo ed avrete appreso le basi della sintassi del Vb.Net.

Abbiamo scelto Vb.Net, per seguire una linea già iniziata da IlSoftware.it nelle lezioni tenute nel corso degli anni parlando di Visual Basic e desumendo che, come lettori assidui di questo portale, abbiate appreso appieno le tecniche programmazionali di Visual Basic 5.0 e 6.0.

Passiamo, senza ulteriori indugi, alla pratica. Ci preme comunque ricordare che .Net permette di realizzare i propri applicativi in molti linguaggi. Vi consigliamo di documentarvi, a tal proposito, rileggendo la precedente lezione introduttiva, consultabile cliccando qui.

Per questa prima lezione pratica abbiamo scelto di realizzare un software di “grande” utilità (l’aggettivo “grande” è fortemente ironico…): svilupperemo una sveglia software che ci avvertirà quando l’ora da noi scelta verrà raggiunta.
Questo sarà l’aspetto della nostra applicazione dopo che avremo seguito le prossime tre lezioni:

Prima operazione da fare sarà quella di aprire il tool di sviluppo Visual Studio e scegliere la voce Nuovo progetto, Applicazione Windows (dal menù Progetti di Visual Basic), scegliere un nome (noi abbiamo optato per IlSoftwareO-Clock), premere il pulsante OK una volta completato questo primo passo.

A questo punto inizieremo “l’impaginazione” del nostro semplice form. Come la maggior parte degli ambienti di sviluppo, anche .Net crea una form dal nome di Form1, personalmente ritengo che, la nominazione corretta e coerente dei form e dei componenti che questi andranno ad ospitare, contribuisca a mantenere leggibile il codice: per questo motivo ho rinominato la nostra form come MainForm.

Iniziamo quindi con il dimensionamento della form: larga 360 pixel per un’altezza di 138 pixel. Per il momento inserite nella form un componente textbox ed una label. Per fare questo trascinate dal menù Casella degli strumenti i due componenti, posizionandoli il più similmente possibile alla finestra sopra mostrata. Di seguito abbiamo riportato un’immagine della casella degli strumenti che riassume la lista dei componenti usati più spesso.

Ultimo passo prima di passare al codice vero e proprio consiste nel “trascinare” (dalla casella degli strumenti nella forum) un timer. Anche questo è un componente usato con grande frequenza. Da notare che dopo il trascinamento, il timer, non verrà posizionato nella form principale, ma a differenza della gran parte degli altri componenti, verrà posizionato nella “barra degli strumenti in uso” presente orizzontalmente in basso all’ambiente di sviluppo. Rinominiamo il nostro timer in MinTimer: questa sorta di “orologio” ci permetterà di contare minuti e secondi durante l’esecuzione del nostro applicativo.

La scrittura del codice Vb.Net per novizi

Effettuati questi primi step, passiamo a scrivere un po’ di codice. Clicchiamo sul nostro timer ed effettuiamo uno dei passaggi chiave per il corretto svolgimento dell’intera applicazione. Non appena avrete cliccato due volte sul componente timer, sarà avviata l’autocomposizione di Visual Studio .net, che si occuperà di riempire la chiamata con l’evento più tipico per il componente cliccato.

Nel nostro caso otterremo la creazione della chiamata seguente:

Private Sub MinTimer_Elapsed(ByVal sender As System.Object, _
ByVal e As System.Timers.ElapsedEventArgs) Handles MinTimer.Elapsed
End Sub

All’interno della chiamata, che verrà invocata ogni qualvolta sarà trascorso il limite di tempo che dovrete impostare nella proprietà Interval, passeremo a scrivere il codice che ci permetterà di rendere dinamica la label che abbiamo inserito in precedenza. Questa semplice procedura farà si che ad ogni secondo (Interval = 1000), la label indicante l’ora corrente venga aggiornata con la data in uso nel sistema operativo che esegue l’applicazione:

Private Sub MinTimer_Elapsed(ByVal sender As System.Object, _
ByVal e As System.Timers.ElapsedEventArgs) Handles MinTimer.Elapsed

‘Si verifica ad ogni ripetizione dell’intervallo definito
‘imposta l’ora corrente in uso nel sistema aggiornandola ogni secondo
lblMainHour.Text = TimeString

End Sub

A questo punto è il momento di effettuare il controllo tra la data corrente e la data inserita dall’utente, quando la nostra sveglia dovrà “suonare”. Per far questo inseriamo un semplice controllotra la data inserita e l’ora corrente:

Private Sub MinTimer_Elapsed(ByVal sender As System.Object, _
ByVal e As System.Timers.ElapsedEventArgs) Handles MinTimer.Elapsed

‘Si verifica ad ogni ripetizione dell’intervallo definito
‘imposta l’ora corrente in uso nel sistema aggiornandola ogni secondo
lblMainHour.Text = TimeString

‘Controllo se è l’ora di svegliarsi
If edtHour.Text “” And (edtHour.Text & “:00” = TimeString) Then
    ‘Mostro il messaggio di sveglia
    Sveglia()
End If

End Sub

Come potete vedere, il controllo è davvero “grezzo”: avremo modo, nel corso delle prossime lezioni, di vedere come raffinare questo ed altri generi di controlli. Comunque, il controllo If edtHour.Text “” And (edtHour.Text & “:00” = TimeString) Then

si limita a verificare che il campo textbox non sia vuoto e che la data inserita, nel formato HH:MM sia o meno uguale all’ora corrente.

Ma la procedura non si limita a fare questo, infatti potete notare come in caso di esito positivo del nostro controllo, il programma passi a chiamare una funzione esterna alla procedura Sveglia()

.
Questa funzione non dovrà far altro che richiamare il suono o il messaggio che dovrà apparire al momento in cui l’ora scelta sarà raggiunta:

Private Sub Sveglia()
‘Eseguo una DlgBox per allertare che è tempo di svegliarsi
MessageBox.Show(“Sveglia!! Sono le ore ” & Date.Now.Hour & ” e ” & Date.Now.Minute & “minuti!! “, “IlSoftwareO-Clock”, MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End Sub

In questo caso abbiamo scelto di usare una semplce MessageBox, che altro non è che una di quelle finestre che, purroppo, vedete quando in Windows o in altri sistemi operativi si verifica un errore.
A questo punto potrete passare alla fase di debug. Si tratta di una delle fasi più delicate nello sviluppo di applicazioni e per questo l’affronteremo in separata sede, nel corso delle lezioni che pubblicheremo prossimamente.
Provate, intanto, ad avviare l’esecuzione dell’applicativo cliccando sul tasto blu, posto nella parte superiore della finestra principale di sviluppo:

Se avete seguito le nostre semplici indicazioni, l’applicativo illustrato in questa lezione si comporterà correttamente ma – cosa più importante – avrete portato a termine un primo giro a bordo del nuovo ambiente di sviluppo marcato Microsoft constatando di persona le potenzialità dell’ambiente visuale e del code inspector proposto da Visual Studio .Net.

Nelle prossime lezioni approfondiremo l’uso dell’ambiente e cercheremo di rendere la nostra applicazione più accattivante, inserendo l’attivazione di una suoneria al momento della sveglia (sostituendola al posto del MessageBox) e approfondendo i controlli necessari ad impedire eventuali errori commessi da parte degli utenti che andranno ad usare la nostra “splendida” applicazione. Buono studio!

———————-
Gian Mario Infelici è direttore responsabile di Musicplace.it nonché web developer su piattaforma Microsoft.

Ti consigliamo anche

Link copiato negli appunti