mercoledì 20 luglio 2022

C# eseguire una windows application in Raspberry PI 4



In questo articolo vedremo come realizzare una semplice Windows Forms, ossia applicativo con interfaccia grafica da far eseguire nella scheda Raspberry Pi 4 utilizzando la tecnologia .Net versione 4.7 ed il linguaggio di programmazione C#.
La scheda Raspberry PI 4 è utilizzata in scenari di Internet delle cose (IOT) dotata di un hardware molto potente e con sistema operativo che offre le stesse potenzialità e funzionalità dei comuni sistemi operativi commerciali presenti sul mercato. Tramite il suo sistema operativo Raspberry PI https://www.raspberrypi.com/software/ è possibile eseguire programmi, e la gestione dei vari sensori.
Con la tecnologia .Net, in particolare con la versione Core e .Net 5 e versioni successive, è possibile realizzare applicazioni eseguibili anche per questo sistema operativo, ma solo applicazioni di tipo “Console Application”.
Per eseguire le applicazioni dotate di interfaccia grafica, come le “Windows Form” occorre aver installato nel sistema operativo Raspberry PI il programma “Mono” https://www.mono-project.com/ che permette di eseguire applicazioni .Net di tipo interfaccia grafica.
In questo articolo vedremo come realizzarne uno.


Creazione del progetto

Tramite Visual Studio 2022 Community o versioni precedenti, si deve creare un progetto di tipo “Windows Application”, dopo aver aperto Visual Studio, con la voce “Nuovo Progetto” selezionare il modello con la dicitura “App Windows Forms (.Net Framework) “ come indicato in figura 1.



Figura 1 – La selezione del modello per le Windows Form

Dopo aver selezionato il modello fate click sul pulsante “Avanti”, nella finestra successiva (figura 2) ci viene chiesto il nome del progetto, in quale cartella salvarlo, il nome della soluzione, ma soprattutto la versione del Framework da utilizzare.
Selezionare la versione 4.7.

Figura 2 – La scelta del nome del progetto e della versione del Framework

Dopo aver impostato i vari campi e selezionato la versione 4.7 del Framework, fate click sul pulsante “Crea”.
Nella form che verrà creata, inseriamo un pulsante (figura 3), il quale visualizzerà un messaggio a video, impostare la proprietà “Text” con il valore “Esegui” e la proprietà “Name” con il valore “BtnEsegui”.

Figura 3 – Il pulsante per visualizzare un messaggio a video.


Stesura del codice

Il codice che andremo a scrivere non farà altro che visualizzare a video un messaggio, la classica “MessageBox” che utilizziamo nelle tradizioni applicazioni per “Windows”, il tutto per dimostrare che le classi e la stesura che si usa per le tradizionali “Windows application” è uguale anche per Raspberry.
Facciamo doppio click sul pulsante, in modo da passare in visualizzazione codice, qui di seguito il codice per visualizzare a video un messaggio.


C#

private void BtneEsegui_Click(object sender, EventArgs e)

        {

            MessageBox.Show("Programma eseguito in Raspberry PI4");

        }



Ora non ci resta che eseguire la nostra applicazione e verificare il corretto funzionamento.
Per eseguire l’applicazione in Raspberry, non resta che copiare il contenuto presente nella cartella “Debug” su una chiavetta oppure in uno spazio web.
Non occorre creare pacchetti di setup o altro, ma eseguire il contenuto della cartella.

Predisposizione del Raspberry

Nell’eventualità che Mono non è installato, occorre effettuare questa operazione, che una volta installato nel sistema operativo Raspberry non dobbiamo più fare tale installazione.
I programmi .Net con interfaccia grafica, nel momento in cui si sta scrivendo l'articolo è possibile eseguirli solo con l’ausilio di Mono, mentre i progetti di tipo “Console Application”, possono girare sul raspberry purchè è presente il Framework Core o .Net 5 e versioni successive.
Apriamo il terminale di Raspberry, e digitiamo il comando “mono” e poi facciamo invio con la tastiera, se viene visualizzato “comando non trovato” vuol dire che va installato.
Digitiamo il seguente comando per installare mono:


sudo apt-get install mono-complete


Dopo aver digitato facciamo invio della tastiera. Verrà installato il programma, il tutto come mostrato in figura 4.

Figura 4 – L’installazione di mono


Digitiamo “S” e facciamo “Invio” per confermare il comando ed installare il pacchetto “mono” con la quantità di mg richiesti, il tutto come mostrato in figura 5.



Figura 5 – La conferma per l’installazione di mono

Terminata l’installazione di “Mono” non resta che eseguire il nostro programma, nel caso che è stato copiato in uno spazio web, scaricare la cartella con il suo contenuto, oppure se è in una chiavetta, aprirla dal terminale.
Per eseguire il programma, dal terminale digitiamo la parola “mono” e poi a seguire il nome del programma, il tutto sarà come mostrato qui di seguito.

mono nomeprogramma.exe


E’ importante che il terminale si apre nella stessa cartella dove si trova il programma, altrimenti va indicato il percorso dove si trova il nostro eseguibile.
Come si vede in figura 6, verrà mostrata la form con il pulsante, ed al click del pulsante verrà visualizzato il messaggio.


Figura 6 – L’esecuzione del programma


Conclusioni

La tecnologia .Net è migliorata notevolmente, permettendo di realizzare applicazioni anche per scenari di IOT, ossia internet delle cose, utilizzando schede a basso costo ma con valide potenzialità.
L’articolo ha voluto fornire al lettore la conoscenza per eseguire le applicazioni di tipo Windows Forms con la tecnologia .Net ed il linguaggio di programmazione C# utilizzando Visual Studio 2022 Community. A differenza delle applicazioni “Console Application”, che non occorre componenti di terze parti ma solo il Framework .Net core o .Net 5 e versioni successive, per le applicazioni con interfaccia grafica occorre aver installato mono.
Le potenzialità offerte dalla scheda Raspberry sono notevoli ed i vari sensori in commercio, anche a basso costo, permettono di creare soluzioni innovative interessanti.
Presso Kubii https://www.kubii.it/ è possibile acquistare schede Raspberry, sensori o altri accessori per la realizzazione di soluzioni IOT .

Nessun commento: