venerdì 30 settembre 2022

Download di VIDEOGIOCHI GRATUITI DI EA

 

Per gli appassionati di video giochi, Electronics Arts mette a disposizioni diversi giochi gratuiti, quasi tutti per dispositivi mobili.

La pagina, in lingua italiana fornisce un elenco di giochi disponibili.

Per maggiori informazioni e download visitate il seguente sito https://www.ea.com/it-it/games/library/freetoplay

giovedì 29 settembre 2022

Portale delle radio

Interessante il sito https://theonestopradio.com/search?srch=&cc=&genre=&lang=ita&network=&pg=1 che fornisce la possibilità di ascoltare le radio di tutto il mondo o effettuare la ricerca su determinate radio.
Il sito è facilmente navigabile ed è possibile filtrare anche per radio italiane.
Una volta individuata la radio di proprio gradimento, si fa click e si potrà ascoltare, il tutto gratuitamente.

mercoledì 28 settembre 2022

Evento gratuito Open Source Day Milano 2022

Tornato le iniziative gratuite e di formazioni con eventi di persona della società RedHat che per il mese di novembre ha organizzato un evento gratuito ed aperto a tutti sul mondo open source, con una giornata ricca di contenuti e sessioni.
Il 30 novembre a Milano si svolgerà l'evento Open Source Day, con temi legati ai prodotti open source e casi di successo da parte di aziende.
Per partecipare all'evento e per maggiori informazioni occorre registrarsi al seguente sito https://www.redhat.com/it/events/open-source-day-milan-2022 dove si può consultare anche l'agenda.

C# la gestione del file Microsoft Excel 365 con .Net 6

Si riporta l'articolo scritto per il sito https://www.iprogrammatori.it/articoli/microsoft-net-framework/art_csharp-la-gestione-del-file-microsoft-excel-365-co_1805.aspx


In questo articolo vedremo come gestire un file di tipo Microsoft Excel 365 o 2016 tramite la tecnologia .Net versione 6, con il linguaggio di programmazione C# e l’ambiente di sviluppo Visual Studio 2022 Community, che è attualmente l’ultima versione nel momento in cui si sta scrivendo l’articolo.

Vedremo come in un progetto di tipo “Windows App”, ma le operazioni di lettura, scrittura e modifica dei dati, si possono fare anche per l’ambiente web, apportando alcuni accorgimenti per la gestione delle classi, ma il frammento di codice per gestire i dati è valido per tutti gli ambienti.


Creazione del file Excel e del progetto:

Si crea un nuovo file di tipo Excel 2016 o 365, inserendo come titoli di intestazione nella colonna “A1” il valore “Nome”, e per la cella “A2” il valore “Cognome”, il tutto come mostrato in figura 1.


Figura 1 – Le intestazioni del file Excel


Salviamo il file in una cartella del nostro pc, con privilegi di lettura e scrittura.

Apriamo Visual Studio 2022 Community o versione successive, e si crea un nuovo progetto di tipo “App Windows Forms” , facciamo click sul pulsante “Avanti” impostiamo un nome e nell’ultima finestra, selezioniamo come versione la 6.

Inseriamo nella form un controllo di tipo DatagridView, che avrà impostato la proprietà “Name” in DtgDati, e la proprietà “Dock” in “Top” , due label, che avranno la proprietà “Text” impostato rispettivamente su “Nome” e su “Cognome”, due controlli di tipo “TextBox”, con la proprietà “Name” impostata una su “TxtNome” e l’altra su “TxtCognome”, tre pulsanti, uno con la proprietà “Name” impostata su “BtnInserisci” e la proprietà “Text” con il valore “Inserisci”, un pulsante con la proprietà “Name” impostata su “BtnModifica” e la proprietà “Text” con il valore “Modifica”, il tutto come mostrato in figura 2.


Figura 2 – La form con i vari controlli


Stesura del codice

Ora non resta che scrivere il codice per la gestione dei dati per il file Excel, passiamo in visualizzazione codice, ed in alto sopra ad ogni riga di codice, dobbiamo inserire lo spazio dei nomi per la gestione dei dati, che è “OleDB”.


Sopra, nella parte dello spazio dei nomi, inseriamo le seguente istruzioni di codice.


C#

using System.Data;

using System.Data.OleDb;


Può darsi che l’ambiente di sviluppo ci chiede di intarlarli tramite “NuGet”.

Fatto ciò, nella classe, form, scriviamo il codice per la lettura dei dati, un metodo che verrà richiamato nell’evento click dei pulsanti e nell’evento load della form.

Di seguito il frammento del codice per la lettura dei dati del file Excel, utilizzando le classi dello spazio dei nomi “OleDB”, in particolare la classe OleDbAdapter, che permette di eseguire le query, OleDbConnection per effettuare il collegamento al file “Excel”, ed una classe “DataSet” per la gestione dei dati.


C#

private void CaricaDati()

        {

 

            string Connessione = "Provider=Microsoft.ACE.OLEDB.12.0;" +

                          "Data Source='" + @"C:\varie\FileExcel.xlsx" +

                          "';Extended Properties=\"Excel 12.0;HDR=YES;\"";

 

            using (OleDbConnection conn = new OleDbConnection(Connessione))

            {

                try

                {

                    conn.Open();

                    OleDbDataAdapter DataAdapterQuery = new System.Data.OleDb.OleDbDataAdapter("SELECT * FROM[Foglio1$]", conn);

                    DataSet DtsDati = new DataSet();

                    DataAdapterQuery.Fill(DtsDati);

                    DtgDati.DataSource = DtsDati.Tables[0];

                   

                }

                catch (Exception ex)

                {

                    MessageBox.Show(ex.Message);

                }

                finally

                {

                    conn.Close();

                    conn.Dispose();

                }

            }

 

        }

Passiamo in visualizzazione grafica, e facciamo doppio click in un qualunque punto della form, in modo che visualizza l’evento Load della form, con il quale richiamare la funzione appena creata.

Di seguito il frammento di codice delle suddette operazioni.

C#

private void Form1_Load(object sender, EventArgs e)

        {

            CaricaDati();

        }


Ora se proveremo ad eseguire la nostra applicazione, verrà visualizzato la griglia senza dati, in quanto al momento non sono presenti dati nel file Excel.

Passiamo in visualizzazione grafica, e facciamo doppio click sul pulsante con la dicitura “Inserisci” o il nome che avete assegnato per l’inserimento dei dati. Verrà visualizzata la parte codice dell’evento click del pulsante.

In questo caso, per l’inserimento dei dati, utilizzeremo le classi per la gestione delle operazioni di inserimento, che sono OleDbComand, passando l’istruzione SQL di insert.

Come si è visto anche nel precedente frammento di codice, il file “Excel” può essere considerato come un database, e quindi eseguire le normali istruzioni CRUD, lettura, inserimento e modifica dei dati, mentre per la cancellazione, non è possibile.

C#

private void BtnInserisci_Click(object sender, EventArgs e)

        {

            string Connessione = "Provider=Microsoft.ACE.OLEDB.12.0;" +

                      "Data Source='" + @"C:\varie\FileExcel.xlsx" +

                      "';Extended Properties=\"Excel 12.0;HDR=YES;\"";

 

            using (OleDbConnection conn = new OleDbConnection(Connessione))

            {

                try

                {

                    conn.Open();

                    OleDbCommand cmd = new OleDbCommand();

                    cmd.Connection = conn;

                    cmd.CommandText = @"Insert into [Foglio1$] (Nome,Cognome)

            VALUES ('"+TxtNome.Text+"','"+TxtCognome.Text+"');";

                    cmd.ExecuteNonQuery();

                }

                catch (Exception ex)

                {

                    MessageBox.Show(ex.Message);

                }

                finally

                {

                    conn.Close();

                    conn.Dispose();

                    CaricaDati();

                }

            }

 

        }


La modifica dei dati è la stessa per l’inserimento, ma con la differenza che occorre cambiare la sintassi SQL, utilizzano il comando universale Update.


Passando in visualizzazione grafica, facciamo doppio click sul pulsante “Modifica” o a seconda del testo che ha impostato il lettore, e nell’evento click del pulsante, modificare la sintassi precedente con il comando Update.

Di seguito il frammento di codice delle suddette operazioni.


C#

private void BtnModifica_Click(object sender, EventArgs e)

        {

            string Connessione = "Provider=Microsoft.ACE.OLEDB.12.0;" +

                      "Data Source='" + @"C:\varie\FileExcel.xlsx" +

                      "';Extended Properties=\"Excel 12.0;HDR=YES;\"";

 

            using (OleDbConnection conn = new OleDbConnection(Connessione))

            {

                try

                {

                    if (DtgDati.SelectedCells.Count<2)

                    {

                        MessageBox.Show("Selezionare una riga");

                        return;

                    }

                    string Nome = DtgDati.SelectedCells[0].Value.ToString();

                    string Cognome = DtgDati.SelectedCells[1].Value.ToString();

                    conn.Open();

                    OleDbCommand cmdUpdate = new OleDbCommand();

                    cmdUpdate.Connection = conn;

                    cmdUpdate.CommandText = @"UPDATE [Foglio1$] SET Nome = '" + TxtNome.Text + "', Cognome='" + TxtCognome.Text + "' WHERE  NOME = '"+ Nome + "' and Cognome='" + Cognome + "';" ;

           

                    cmdUpdate.ExecuteNonQuery();

                }

                catch (Exception ex)

                {

                    MessageBox.Show(ex.Message);

                }

                finally

                {

                    conn.Close();

                    conn.Dispose();

                    CaricaDati();

                }

            }

        }





Conclusioni

L’articolo ha voluto fornire al lettore, la conoscenza per l’utilizzo dei file “Excel” come database, con il nuovo framework .Net versione 6, e di come tramite le classi OleDB, si possono eseguire le operazioni più comuni che si fanno con altri database.

Può capitare di utilizzare nelle proprie applicazioni file Excel, inserendoli nel proprio progetto come modelli per poi generarli con i dati fornendo all’utente finale una tipologia di informazioni e dati.

martedì 27 settembre 2022

Evento gratuito Summit Connect Roma

Tornano gli eventi di persona della società RedHat sul mondo open source, con due importanti appuntamenti per il mese di novembre 2022.

Novità, ma anche tanti casi reali di come utilizzare al meglio la tecnologia open source.

L'evento di Roma, in programma per 8 novembre 2022, fornisce interessanti spunti sul mondo open source e con numerose sessioni su varie tematiche.

L'evento è gratuito ed aperto a tutti, per registrarsi e per conoscere l'agenda ed il luogo, visitate il seguente sito https://www.redhat.com/it/events/summit-connect-rome-2022

Download ebook Nuxt.js

 


Disponibile gratuitamente l'ebook gratuito sul Framework web Nuxt.js, che introduce il lettore sull'utilizzo.

L'ebook è in formato pdf o per dispositivi mobile in lingua inglese, per il download e maggiori informazioni visitate il seguente sito https://www.syncfusion.com/succinctly-free-ebooks/nuxtjs-succinctly

lunedì 26 settembre 2022

Ambiente di sviluppo gratuito lapce

 

Lapce scaricabile qui Lapce è un ambiente gratuito ed open source di programmazione, permettendo all'utilizzatore di creare programmi.

Il programma è in lingua inglese, come anche la lingua della documentazione presente nel sito, ma è facilmente utilizzabile

domenica 25 settembre 2022

file diff online differenza di testo

Se cercate un sito internet con il quale verificare la differenza tra due file di testo, il seguente sito https://www.diffchecker.com/diff in lingua inglese e facilmente utilizzabile, confronta due testi evidenziando le differenze.

sabato 24 settembre 2022

Ricevere email da Indirizzo di posta elettronica Gmail con punto

 

Come riportato anche nel sito assistenza di Gmail, nel caso che abbiamo un indirizzo email tutto attaccato tipo mariorossi@gmail.com,  è possibile che riceviamo delle email se viene inviata ad un indirizzo con il punto, tipo mario.rossi@gmail.com .

Questo, perchè il sistema Gmail non fa distinzione tra se nell'account c'è il punto oppure no. 


venerdì 23 settembre 2022

Download gioco Gloomhaven

 


Disponibile gratuitamente e senza limitazioni il gioco di combattimento Gloomhaven per sistemi operativi Windows.

Fino al 29 settembre 2022 il gioco si potrà scaricare gratuitamente dopo tale data il download sarà a pagamento.

Per maggiori informazioni e download visitate il seguente sito Gloomhaven | Acquistalo e scaricalo subito sull'Epic Games Store 

.Net componente gratuito per la creazione di video giochi wickedengine

 


Un componente gratuito per la creazione di video giochi, da utilizzare in Visual Studio nelle proprie applicazioni.

Il componente WickedEngine, è un engine, da utilizzare nelle proprie applicazioni.

Per maggiori informazioni e download visitate il seguente sito Wicked Engine Net – 3D Engine Development

giovedì 22 settembre 2022

download gioco ARK: Survival Evolved

 

Disponibile gratuitamente fino al 29 settembre 2022 il gioco di strategia ARK Survival Evolved con una grafica molto accattivante e valida giocabilità.

Il gioco è in lingua italiana e per sistemi operativi Windows.

Fino al 29 settembre 2022 il gioco si potrà scaricare gratuitamente dopo tale data il download sarà a pagamento, per maggiori informazioni e download visitate il seguente sito ARK: Survival Evolved | Acquistalo e scaricalo subito sull'Epic Games Store



C# codice sorgente gioco Word Puzzle Game

 

Interessante l'articolo e soprattutto il codice sorgente del gioco Word Puzzle scritto nel linguaggio di programmazione che si trova sul seguente sito https://www.codeproject.com/Articles/1136695/A-Complete-Word-Puzzle-Game-in-Csharp-NET 

Un gioco molto semplice nel quale trovare le frasi selezionando le varie parole nell'area gioco.

Il gioco è per ambiente "Windows Application" , ma con una grafica ben fatta.

Per il download occorre avere un account (registrazione) gratuito al sito, per maggiori informazioni e download del sorgente, visitate il seguente sito https://www.codeproject.com/Articles/1136695/A-Complete-Word-Puzzle-Game-in-Csharp-NET

mercoledì 21 settembre 2022

C# .Net 6 il metodo Take

Altra novità della nuova versione del Framework .Net 6, è quella del metodo "Take" con il quale possiamo passare alcuni valori per estrapolare una serie di dati.
Di seguito alcuni esempi.

Supponiamo di avere una lista di tipo string, con i seguenti nominativi:

 string[] valori = new string[] { "Luigi", "Emanuele", "Olga", "Francesca", "Gianni", "Aldo" };

Passando al metodo "Take" un valore e poi due volte punto ed un altro valore, mi estrapola tutti quelli che si trovano in quel range.

L'esempio di seguito, mi estrapola quei valori che vanno da tre a 5, quindi "Olga" "Francesca " e "Gianni"
var risultato = valori.Take(2..5);
MessageBox.Show($"Valori tra il 3 e 5:  {string.Join(",",  risultato.ToList())}");

Se invece vogliamo estrapolare gli ultimi due elementi, qui di seguito un frammento di codice che mi visualizza "Gianni" ed "Aldo".

var risultato2 = valori.Take(^2..);
MessageBox.Show($"Ultimi due: {string.Join(",", risultato2.ToList())}");

Lo stesso anche con il frammento di codice qui di seguito ma gli ultimi tre.

var risultato3 = valori.Take(3..);
MessageBox.Show($"Gli ultimi tre: {string.Join(",", risultato3.ToList())}");

martedì 20 settembre 2022

Immagini ed audio gratuiti

Il sito Openverse possiamo ricercare contenuti come immagini e file audio gratuiti da poter utilizzare nei propri programmi o altro.
In base al tipo di immagine è possibile inoltre sapere che tipo di licenza, anche per scopi commerciali.
Il sito è in lingua inglese, ma facilmente utilizzabile.

lunedì 19 settembre 2022

DataTable visualizzare i dati nel debug di Visual Studio 2022

 

Altra novità interessante di Visual Studio 2022 (Community è altra versione) 17.4 è quella di visualizzare in fase di debug una griglia con i dati in anteprima di un DataTable.

Dopo aver fermato il debug sull'oggetto di tipo DataTable, posizionando il mouse sopra verrà visualizzata una voce con scritto "Visualizza", tramite la freccia rivolta verso il basso selezioniamo la voce "DataTable visualizer"


Figura 1 - La voce visualizza

Figura 2 - La voce DataTable Visualizer


A questo punto verrà aperta una finestra contente i dati (figura 3) permettendo così di vedere in anteprima come verrà popolata la griglia.

Figura 3 - L'anteprima dei dati


Strumento online per creare vocali dal testo

Dal seguente sito https://www.texttovoice.online/ è possibile utilizzare uno strumento online gratuito per creare file audio, ed in particolar modo di tipo "mp3" digitando del testo nella casella.
Una volta digitato il testo e la lingua del testo,  è possibile ascoltarlo anche con voce femminile o maschile.
Tramite il pulsante "Download" si può scaricare il file audio del testo.

domenica 18 settembre 2022

C# sorgente codice scacchi

 

Un ottimo progetto completo del gioco degli Scacchi,  in .Net versione 6 con il linguaggio di programmazione C#, con possibilità di sfidare anche il computer.

Dal seguente sito https://www.codeproject.com/Articles/36112/Chess-Program-in-C è possibile scaricare il sorgente in C# del gioco degli scacchi.

Che dirvi...buona partita.

sabato 17 settembre 2022

Download gioco The Captain

 


Un gioco sparatutto spaziale per tutta la famiglia ma divertente allo stesso tempo,The Captain per sistemi operativi Windows, con il quale trascorrere ore piacevoli.

Fino al 22 settembre 2022 il gioco si potrà scaricare gratuitamente, dopo tale data il download sarà a pagamento, per maggiori informazioni e download visitate il seguente sito The Captain | Acquistalo e scaricalo subito sull'Epic Games Store

c# decimal format 2 digits

Se abbiamo un valore decimal, in una variabile o proprietà di tipo string, e che vogliamo solo due valori dopo la virgola, possiamo formattarli tramite il simbolo cancellato #.
Qui di seguito un esempio di come formattare il numero decimal di tipo "27,8674" in "27,87".

var risultato = Oggetto.Proprieta.ToString("0.##")

venerdì 16 settembre 2022

Download gioco Spirit of the North

 


Disponibile gratuitamente e senza limitazioni il gioco di avventura Spirit of the north in lingua inglese, per sistemi operativi Windows.

Fino al 22 settembre 2022 il download sarà gratuito, dopo tale data il download sarà a pagamento.

Per maggiori informazioni e download visitate il seguente sito Spirit of the North | Acquistalo e scaricalo subito sull'Epic Games Store

Programma gratuito per la creazione dei video giochi gbstudio

 


GbStudio GB Studio, è un programma gratuito che permette la creazione video giochi in maniera visiva.

Il programma si può utilizzare sul sistema operativo Windows, Mac e Liux.

Per maggiori informazioni, download e guida in linea, visualizzate il seguente sito https://www.gbstudio.dev/

giovedì 15 settembre 2022

Windows 11 registrazione ciò che viene fatto a video

 In Windows 11 è possibile registrazione ciò che viene fatto a video, tramite le funzionalità del sistema operativo stesso e senza utilizzare altri programmi.

Per registrazione ciò che avviene a video, si può utilizzare Xbox Game Bar, che permette di aprire una serie di strumenti per gioco, tra i quali le registrazioni.

Se dalla tastiera, teniamo premuto il simbolo di Windows (la bandiera) e poi il tasto "G", nella finestra che viene aperta, in alto a sinistra, si trova un pulsante tondo per registrazione ciò che avviene a video, in alternativa si può digitare tasto Windows (Bandiera) + ALT + R. 

A questo verrà avviata la registrazione, basterà rifare click sul pulsante di registrazione per fermarla.

Il video si troverà nella cartella "Video" e nella sotto cartella "acquisizioni".




mercoledì 14 settembre 2022

C# maui messagebox

In ambito MAUI, il Framework per la programmazione multipiattaforma, se vogliamo visualizzare un messaggio a video, tipo la Messagebox presente nei progetto di tipo "Windows Application", dobbiamo utilizzare il metodo "DisplayAlert", qui di seguito un frammento di codice.

DisplayAlert("Esempio", "Benvenuto nel mondo MAUI", "Chiudi");

Dove il primo parametro è il titolo del messaggio, il secondo parametro il testo (descrizione) ed il terzo parametro, il testo del pulsante per chiudere il messaggio.

martedì 13 settembre 2022

Leggere le fatture elettroniche online

Un valido strumento online per leggere le fatture elettroniche online, senza lasciare indirizzo email e senza registrazioni.
Il sito https://www.amministrazionicomunali.it/fatturexml/ in lingua italiana, fornisce la funzionalità di caricare il file firmato e non tramite il pulsante "scegli file", relativo alla fattura elettronica, e visualizzarne il contenuto.
Ottimo strumento per leggere le fatture elettroniche.


lunedì 12 settembre 2022

C# verificare se una stringa è di tipo decimal

Il frammento di codice qui di seguito, verifica se un valore di tipo testo è un decimal oppure no, inoltre se è uguale a 0, restituisce false.

public bool IsNumerico(string Valore)
        {
            decimal outValue;
            if (Decimal.TryParse(Valore, out outValue))
                if (outValue == 0)
                    return false;
                else
                    return true;
            else
                return false;
        }

Download Realm Royale Reforged Epic Launch Bundle

 


Disponibile gratuitamente fino al 15 settembre 2022, il componente per il gioco Realm Royale Reforged, dopo tale data, il download sarà a pagamento.

Per maggiori informazioni e download visitate il seguente sito Realm Royale Reforged Epic Launch Bundle - Epic Games Store 


Facebook come fare ad attivare o disattivare la pubblicazione anonima

 


In Facebook c'è la possibilità di pubblicare nei vari gruppi post in forma anonima, senza che venga visualizzato il nome della persona.

Per attivare o disattivare questa funzionalità, occorre andare in "Impostazioni" e poi fare click sulla voce "Impostazioni del gruppo " come mostrato in figura 2.


Figura 2 - La voce per aprire le impostazioni

Nella parte centrale si aprirà una serie di voci, andiamo nella categoria "Gestisci le discussioni" e poi fare click sulla penna nella voce "Pubblicazione Anonima" (figura 3), con il quale sarà possibile abilitare o disabilitare tale funzionalità.

Figura 3 - Il menu di pubblicazione anonima


domenica 11 settembre 2022

Download gioco Hundred Days - Simulatore vitivinicolo

 


Un bellissimo gioco per sistemi operativi Windows il gioco di simulazione vitivinicolo in lingua italiana in cui cimentarsi in questo ambito.

Il gioco offre una grafica molto accattivante e giocabilità.

Il gioco è disponibile gratuitamente fino al 15 settembre 2022 dopo tale data il download sarà a pagamento.

Per maggiori informazioni e download visitate il seguente sito Hundred Days - Simulatore vitivinicolo | Acquistalo e scaricalo subito sull'Epic Games Store

Sito su .Net

Il sito DotNetCoreTutorial, in lingua inglese fornisce interessanti articoli e frammenti di codice sulla programmazione .Net, con il linguaggio di programmazione C#, in ambito di .Net Core.
Il sito è costantemente aggiornato ed è visibile qui https://dotnetcoretutorials.com/ 

sabato 10 settembre 2022

Strumento online per la gestione dei file PDF gratuito

 



Ottimo strumento online quello proposto da https://boldpdftools.com/ che permette di effettuare gratuitamente e senza registrazione o email, vari operazioni sui file, quali la conversione, trasformazione di una pagina web in pdf, rimozione o aggiunta di password e tante altre operazioni.

Anche se il sito è in lingua inglese e facilmente utilizzabile.

venerdì 9 settembre 2022

Strumento online editing image

Se cercate uno strumento online per la modifica delle immagini, senza registrazione e senza email, il seguente sito https://www.online-image-editor.com/?language=italian in lingua italiana svolge egregiamente tale attività.
Il sito offre funzionalità per la modifica delle immagini, con effetti, testo ed altro, per poi scaricarle gratuitamente.
Per maggiori informazioni e download visitate il sito indicato.

giovedì 8 settembre 2022

Blog su .Net

Il seguente blog https://blog.ploeh.dk/ è molto aggiornato con interessanti articoli ed esempi di codice sulla programmazione .Net tramite il linguaggio di programmazione C#.

Download immagini Fluent Emoji gratuite

 


Dal seguente sito https://github.com/microsoft/fluentui-emoji nella cartella "assets" https://github.com/microsoft/fluentui-emoji/tree/main/assets è possibile scaricare gratuitamente migliaia di immagini di tipo Emoji, anche in 3D, da utilizzare nelle proprie applicazioni o su vostri programmi e web.

Per il download e maggiori informazioni visitate il sito indicato.

mercoledì 7 settembre 2022

Sito di notizie informatiche

Un sito in lingua inglese che molte notizie in ambito tecnologico.
Il sito https://betanews.com/ fornisce costantemente notizie sul mondo dell'informatica e tecnologia.

martedì 6 settembre 2022

Introduzione ad Entity Framework Core con .Net 6


In questo articolo vedremo come utilizzare l’ultima versione di .Net e precisamente la 6 in ambiente Windows Application con Entity Framework Core, il tutto tramite il linguaggio di programmazione C# e Visual Studio 2022 Community.
Entity Framework Core, a differenza della versione precedente, non permette la gestione grafica delle entità le quali permettono tramite classi di mappare le varie tabelle, a differenza delle versioni precedenti occorre scrivere il codice e non più tramite wizard che guida lo sviluppatore alla gestione dei dati.
Con il nuovo Entity Framework Core, è possibile gestire le varie basi dati, anche su altri sistemi che non sono Windows, come Ubuntu, Raspberry, Linux ed altri ancora.

Creazione del progetto

Si crea un nuovo progetto selezionando tra i vari progetti quelli di tipo “App Windows Forms”, fare click sul pulsante “Avanti” , inserire un nome a vostro piacimento e selezionare come versione del Framework la versione “.Net 6.0” .
Nella form aggiungiamo i seguenti controlli due controlli label, che saranno intestazione, due controlli di tipo casella di testo (textboxt) con la proprietà “Name” impostato una a “TxtNome” e l’altra a “TxtCognome”, tre pulsanti con la proprietà “Name” impostata una su “BtnInserisc” l’altro su “BtnModifica” e l’ultimo con il valore impostato con “BtnElimina”. Sempre per i pulsanti, impostiamo la proprietà “Text” con il valore “Inserisci", l’altro con “Modifica” ed infine l’ultimo con “Elimina”, la form dovrà avere l’aspetto simile a quello in figura 1.

Figura 1 – In controlli nella form

Terminata la creazione della form non resta che scrivere il codice per eseguire le varie operazioni.

Stesura del codice

Vedremo le operazioni di inserimento, lettura, modifica e cancellazione dati, che si usano per ogni database utilizzando il nuovo Entity Framework Core con database Litedb
La prima operazione da fare è quella di aggiungere il riferimento ad Entity Framework Core per lite db, tramite console di Nuget, digitiamo il seguente comando.

Install-Package Microsoft.EntityFrameworkCore.Sqlite


A questo punto verrà installato il pacchetto di Entity Framework Core per LiteDB.
In questo articolo faremo un basilare utilizzo, la gestione dei dati è molto semplice, le operazioni si faranno su una sola tabella con inserimento dei campi per le caselle di testo, di tipo nome e cognome.
Per tanto si deve creare un modello che rappresenti una tabella, che chiameremo Anagrafica, con tre colonne (proprietà) id che è il contatore e chiave, una proprietà di tipo string, che rappresenta il nome, ed una proprietà di tipo “string” che rappresenta il cognome.

Si crea una classe denominata “DatiContext” nella quale saranno presenti le classi che mapperanno le tabelle (in questo caso solo una, quella di Anagrafica) ed il collegamento ed altre operazioni per la gestione del database.
Qui di seguito si riporta la classe “DatiContext” che vedremo inseguito con la gestione del database e la classe “Anagrafica”



C#

public class DatiContext 

    {

    }


Dopo aver creato la classe occorre aggiungere il riferimento allo spazio dei nomi “Entity Framework Core”, sopra ad ogni dichiarazione inserire lo spazio dei nomi, di seguito il frammento di codice di tale dichiarazione.

C#

using Microsoft.EntityFrameworkCore;


Ora la casse creata in precedenza, quella del contesto denominata "DatiContext" eredita da DbContext, come riportato qui di seguito.

C#

public class DatiContext : DbContext

    {

        

    }

Aggiungiamo all’interno dello spazio dei nomi, la definizione della classe Anagrafica, che farà da mapping con la tabella nel database.
Si crea una classe con tre proprietà, come accennato in precedenza.
Di seguito il frammento di codice delle suddette operazioni.

C#

public class Anagrafica

    {

      

        public int Id { get; set; }

        public string Nome { get; set; }

 

        public string Cognome { get; set; }

 

 

    }

 Nella classe creata in precedenza per la gestione del collegamento del database, che abbiamo creato con il nome “DatiContext” e che eredita da “DbContext”, dobbiamo creare una proprietà pubblica con il quale fornisce il percorso in cui verrà salvato il database, il percorso del database viene impostato nel costruttore, mentre l’override dell’evento “OnConfiguring” ci permette di impostare il percorso del database con la proprietà pubblica.

Una proprietà che rappresenta la classe Anagrafica, che è a tutti gli effetti la gestione della tabella.


La proprietà pubblica del percorso è per far comprendere al lettore che la classe per la gestione del database, il context lo possiamo personalizzare a nostro piacimento.


Di seguito si riporta le suddette operazioni.


C#

public class DatiContext : DbContext

    {

        public DbSet<Anagrafica> Anagrafiche { get; set; }

        public string PercorsoDB { get; }

 

        public DatiContext()

         {

 

            var Cartella = Environment.CurrentDirectory;

            PercorsoDB = System.IO.Path.Join(Cartella, "Dati.db");

 

        }

 

        protected override void OnConfiguring(DbContextOptionsBuilder options)

       => options.UseSqlite($"Data Source={PercorsoDB}");

    }


Per fornire chiarezza su quanto illustrato in questo momento, si riporta il codice completo di tutto il file.

C#

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using Microsoft.EntityFrameworkCore;

namespace WinEfCoreArt

{

    public class DatiContext : DbContext

    {

   public DbSet<Anagrafica> Anagrafiche { get; set; }

 

        public string PercorsoDB { get; }

 

        public DatiContext()

         {

 

            var Cartella = Environment.CurrentDirectory;

            PercorsoDB = System.IO.Path.Join(Cartella, "Dati.db");

 

        }

 

        protected override void OnConfiguring(DbContextOptionsBuilder options)

       => options.UseSqlite($"Data Source={PercorsoDB}");

    }

 

    public class Anagrafica

    {

      

        public int Id { get; set; }

        public string Nome { get; set; }

 

        public string Cognome { get; set; }

 

 

    }

}



La gestione dei dati è terminata, non resta che creare la tabella ed il database, questo lo facciamo tramite riga di comanda nella console di “Nuget”.
Il primo comando da eseguire nella console è quello di installare alcuni strumenti, scriviamo il seguente comando e diamo invio. 


Install-Package Microsoft.EntityFrameworkCore.Tools


Al termine dell’installazione dovremmo avere esito positivo.
Dobbiamo eseguire il comando che crea una classe che permette di gestire le informazioni per poter creare la tabella ed il database.
Il comando per la creazione della classe da eseguire in console “Nuget” è il seguente.

Add-Migration InitialCreate

Ora non resta che eseguire il comando per creare il database (o aggiornare nel caso esiste) con la creazione o modifica della tabella, in base alla classe che abbiamo creato in precedenza dal nome “Anagrafica” che rappresenta la tabella.

Update-Database

Nella finestra “Esplora soluzione” vedremo che è stata creata una cartella dal nome “Migrations” contenente i file il tutto come mostrato in figura 2.

Figura 2 – Le classi per la creazione delle tabelle e database

Ora non resta che scrivere il codice per le operazioni sul database, torniamo nella form, ed in visualizzazione codice, scriviamo una funzione per il caricamento dei dati.
La funzione verrà richiamata da ogni pulsante nell’evento load della form.
Il caricamento dei dati avviene leggendo tutti i record della tabella anagrafica, qui di seguito il frammento di codice della funzione del caricamento dei dati.


C#

private void CaricaDati()

        {

            var Contesto = new DatiContext();

            var Anagrafica = Contesto.Anagrafiche

                  .OrderBy(p => p.Id).ToList();

 

 

            DtgDati.DataSource = Anagrafica;

 

        }


Questa funzione sarà eseguita nell’evento load della form, qui di seguito il frammento di codice delle suddette operazioni.

C#

  private void Form1_Load(object sender, EventArgs e)

        {

            CaricaDati();

        }


Passiamo in visualizzazione grafica e facciamo doppio click sul pulsante denominato inserisci, in questo modo passiamo in visualizzazione codice nell’evento click.
In questo evento dovremmo scrivere il codice per l’inserimento dei dati, che sono inseriti nelle caselle di testo.
L’inserimento avviene utilizzando il metodo "Add" della classe contesto ed aggiungendo il rifermento alla classe “Anagrafica” passando alle proprietà “Nome” e “Cognome” i valori presenti nelle caselle di testo.
Tramite il metodo “SaveChanges” vengono salvati i dati.
Di seguito il frammento di codice delle suddette operazioni per l’evento click del pulsante “Inserisci”.

C#

private void BtnInserisci_Click(object sender, EventArgs e)

        {

            var dbContext = new DatiContext();

            dbContext.Add(new Anagrafica { Nome = TxtNome.Text, Cognome = TxtCognome.Text });

            dbContext.SaveChanges();

            CaricaDati();

        }


Ora passiamo in visualizzazione grafica e facciamo doppio click sul pulsante denominato “Modifica” in questo modo passiamo in visualizzazione codice dell’evento click del pulsante.
Il codice in questo caso è molto semplice, verifica se è stata selezionata una riga nella griglia, si prende l’identificativo che è la prima colonna, effettua una select per ottenere il record, valorizza le due proprietà con i valori nelle caselle di testo e poi effettua tramite il metodo “Update” l’aggiornamento, che sarà convalidato con il metodo “SaveChanges” del contesto.
Di seguito si riporta il frammento di codice delle suddette operazioni.

C#

private void BtnModifica_Click(object sender, EventArgs e)

        {

            if (DtgDati.SelectedRows.Count < 1)

            {

                MessageBox.Show("Selezionare un record");

                return;

            }

            var dbContext = new DatiContext();

            var Anagrafica = dbContext.Anagrafiche.Where(p => p.Id == (int)DtgDati.SelectedCells[0].Value).FirstOrDefault();

            Anagrafica.Nome = TxtNome.Text;

            Anagrafica.Cognome = TxtCognome.Text;

            dbContext.Update(Anagrafica);

            dbContext.SaveChanges();

            CaricaDati();

        }

Ora passiamo in visualizzazione grafica, e facciamo click sul pulsante “Elimina”, in modo visualizzare la modalità codice dell’evento click del pulsante.
Anche in questo caso, tramite il metodo “Remove” dell’oggetto del contesto, eliminiamo l’entità individuato tramite una ricerca per il campo chiave ID. Ottenuto il singolo elemento, viene passato al metodo “Remove” e tramite il metodo “SaveChanges” si conferma la cancellazione del dato.
Di seguito si riporta il frammento di codice delle suddette operazioni.


C#

private void BtnElimina_Click(object sender, EventArgs e)

        {

            if (DtgDati.SelectedRows.Count < 1)

            {

                MessageBox.Show("Selezionare un record");

                return;

            }

            var dbContext = new DatiContext();

            var Anagrafica = dbContext.Anagrafiche.Where(p => p.Id == (int)DtgDati.SelectedCells[0].Value).FirstOrDefault();

            dbContext.Remove(Anagrafica);

            dbContext.SaveChanges();

            CaricaDati();

        }





Conclusioni

Ora non resta che eseguire la nostra applicazione e verificare il corretto funzionamento del codice, tenendo conto che il database si deve trovare nella stessa cartella in cui viene eseguito l’applicativo.
L’articolo ha voluto fornire una panoramica introduttiva al lettore per muoversi in maniera autonoma nella nuova versione di Entity Framework Core e del Framework .Net 6.

In questa nuova versione di Entity Framework, l'assenza della creazione delle entità in maniera grafica, rende lo sviluppo diverso ma permette allo sviluppatore di avere più controllo e visione del codice.

L'aspetto più importante sta nel fatto di utilizzarlo su più sistemi operativi e su diversi database, aspetto molto importante visto l'attuale scenario di multi piattaforma.