martedì 30 aprile 2019

Rilasciata la versione Entity Framework Core 3.0 Preview 4

Come riportato dal seguente sito https://devblogs.microsoft.com/dotnet/announcing-entity-framework-core-3-0-preview-4/ da pochi giorni è stata rilasciata la versione 3.0 Preview 4 di Entity Framework Core, il Framework per la gestione dei dati su più piattaforme.
Essendo una versione preview, si consiglia l'installazione su macchine non di produzione.

Creare sondaggi gratuitamente



Se cercate un sito dove poter creare dei sondaggi gratuitamente, dal seguente sito https://www.survio.com/it/  potete realizzare gratuitamente dei sondaggi.

Il sito è in lingua italiana.



lunedì 29 aprile 2019

Rilasciata la versione .NET Core 3 Preview 4

 Chart control in Visual Studio

Come riportato da questo post https://devblogs.microsoft.com/dotnet/announcing-net-core-3-preview-4/ è stato rilasciato da pochi giorni la versione Preview 4 di .Net Core 3.
Nel sito sono riportate le novità e maggiori informazioni di questa versione.
Ricordo che le versione beta o Preview da installare in computer di test, perchè ancora non rilasciate possono avere dei possibili problemi, anche di compatibilità con altre versioni.

PostGreSQL update con replace per apice

L'istruzione SQL qui di seguito illustra una tecnica di come effettuare l'aggiornamento delle celle utilizzando la funzione replace, in particolare con l'apice.
La tecnica è stata utilizzata sul database PostgreSQL.


update NomeTabella
set Campo = replace(Campo, '`', '''')


domenica 28 aprile 2019

Un sito italiano sulla sicurezza informatica

Il seguente sito https://www.securityinfo.it/ offre la possibilità di consultare notizie ed articoli sul mondo della sicurezza informatica.
In lingua italiana e con continui aggiornamenti.

sabato 27 aprile 2019

Rilasciata la nuova versione del Framework 4.8

Novità di questi giorni, come riportato qui https://devblogs.microsoft.com/dotnet/announcing-the-net-framework-4-8/ è stata rilasciata da pochi giorni la nuova versione del Framework .Net, in particolare la versione 4.8.
Nel sito sono riportate tutte le novità di questa nuova versione.

.Net generazione di un file Excel da un file di testo tramite Filehelpers VB.Net e C#

Si riporta l'articolo scritto per il sito https://www.iprogrammatori.it/articoli/programmazione/art_filehelpers-generazione-di-un-file-excel_1613.aspx

Riprendiamo l’articolo precedente https://www.iprogrammatori.it/articoli/programmazione/art_net-la-gestione-dei-file-testo-con-fileh_1611.aspx nel quale abbiamo visto come utilizzare la libreria gratuita Filehelpers per estrapolare i dati da file di testo in base ad una lunghezza, mappando le varie righe, con le proprietà di una classe.
In questo modo, anche la gestione e manipolazione dei dati diventa semplice, inoltre la libreria risulta di buona qualità in ambito di prestazioni.
In questo articolo vedremo il relativo utilizzo con la generazione dei file Excel.

Creazione del progetto

Riprendendo il progetto precedente o nel creare uno nuovo, si aggiunge un pulsante nella form per l’applicazione di tipo “Windows Application”.
Riportiamo il file di testo come quello precedente qui di seguito.
Nome           Cognome         Ruolo
Emanuele      Mattei               Analista
Luigi              Cristaldi           Amministratore Delegato
Olga              Foti                 Responsabile del personale
Fine tracciato

A questo punto aggiungiamo la libreria “FileHelpers” in modo che possiamo manipolare i dati nel file di testo, e questo lo abbiamo spiegato nell’articolo precedente.
Ora non ci resta che aggiunge altra libreria di FileHelpers in particolare quella per la gestione dei file “Excel”.
Tramite nuget aggiungiamo la libreria “FileHelpers.ExcelNPOIStorage”.
Se scriviamo nella casella di ricerca “FileHelpers” sarà visibile nei risultati, come si vede in figura 1.



Figura 1 – L’installazione del componente FileHelpers per Excel

A questo punto una volta installato passiamo alla stesura del codice.
Si crea una classe per la gestione del file Excel, che abbiamo visto nel precedente articolo, con le tre proprietà che sono nome, cognome e ruolo.
Qui di seguito si riporta l’esempio completo di codice, per entrambi i linguaggi, anche se non entreremo nel dettaglio.


VB.Net

<FixedLengthRecord()>

Public Class FileTesto

    <FieldFixedLength(20)>

    Public Nome As String

    <FieldFixedLength(16)>

    Public Cognome As String

    <FieldFixedLength(29)>

    Public Ruolo As String

End Class
 

C#
   public  class FileTesto

    {

       [FieldFixedLength(20)]

       public string Nome;

 

       [FieldFixedLength(16)]

       public string Cognome;

 

       [FieldFixedLength(29)]

       public string Ruolo;

    }




Passiamo alla nostra form, ed aggiungiamo lo spazio dei nomi relativo a questa libreria che abbiamo appena aggiunto al progetto.


 

VB.Net

Imports FileHelpers.ExcelNPOIStorage


C#

using FileHelpers.ExcelNPOIStorage;


Ora facciamo doppio click sul pulsante in modo che si passa in visualizzazione codice per l’evento Click del pulsante.
Nell’evento, dobbiamo estrapolare i dati dal file di testo, e questo lo abbiamo visto nel precedente articolo e poi tramite le classi “ExcelNPOIStorage” andremo a generare il file Excel.
Qui di seguito si riporta il frammento di codice per l’evento click per entrambi i linguaggi.



VB.Net

Private Sub button1_Click(sender As Object, e As EventArgs) Handles button1.Click

        Try

            Dim engineLeggiFile = New FixedFileEngine(Of FileTesto)()

            engineLeggiFile.Options.IgnoreFirstLines = 1

            engineLeggiFile.Options.IgnoreLastLines = 1

            Dim letturaFile As FileTesto() = engineLeggiFile.ReadFile(Environment.CurrentDirectory & "\FileDaElaborare.txt")

            If engineLeggiFile.ErrorManager.ErrorCount > 0 Then engineLeggiFile.ErrorManager.SaveErrors("Errore.txt")

            Dim excelStorage As ExcelNPOIStorage = New ExcelNPOIStorage(GetType(FileTesto))

            excelStorage.FileName = "Prova.xlsx"

            excelStorage.StartColumn = 0

            excelStorage.StartRow = 0

            excelStorage.HeaderRows = 3

            excelStorage.OverrideFile = True

            excelStorage.ColumnsHeaders.Add("Nome")

            excelStorage.ColumnsHeaders.Add("Cognome")

            excelStorage.ColumnsHeaders.Add("Ruolo")

            excelStorage.SheetName = "Nominativi"

            Dim listFileTesto As List(Of FileTesto) = New List(Of FileTesto)()

 

            For Each elemento In letturaFile

                Dim fileTesto As FileTesto = New FileTesto()

                fileTesto.Nome = elemento.Nome

                fileTesto.Cognome = elemento.Cognome

                fileTesto.Ruolo = elemento.Ruolo

                listFileTesto.Add(fileTesto)

            Next

 

            excelStorage.InsertRecords(listFileTesto.ToArray())

        Catch ex As Exception

            MessageBox.Show("Errore: " & ex.Message)

        End Try

    End Sub

 

C#

 

private void button1_Click(object sender, EventArgs e)

        {

            try

            {

 

         

            var engineLeggiFile = new FixedFileEngine<FileTesto>();

            //ignoro la prima ed ultima riga

            engineLeggiFile.Options.IgnoreFirstLines = 1;

            engineLeggiFile.Options.IgnoreLastLines = 1;

 

            //leggo il file

            FileTesto[] letturaFile = engineLeggiFile.ReadFile(Environment.CurrentDirectory + "\\FileDaElaborare.txt");

            if (engineLeggiFile.ErrorManager.ErrorCount > 0)

                engineLeggiFile.ErrorManager.SaveErrors("Errore.txt");

 

 

            ExcelNPOIStorage excelStorage = new ExcelNPOIStorage(typeof(FileTesto));

 

            excelStorage.FileName = "Prova.xlsx";

            excelStorage.StartColumn = 0;

            excelStorage.StartRow = 0;

            excelStorage.HeaderRows = 3;

            excelStorage.OverrideFile = true;

            excelStorage.ColumnsHeaders.Add("Nome");

            excelStorage.ColumnsHeaders.Add("Cognome");

            excelStorage.ColumnsHeaders.Add("Ruolo");

 

            excelStorage.SheetName = "Nominativi";

            List<FileTesto> listFileTesto = new List<FileTesto>();

 

            foreach (var elemento in letturaFile)

            {

                FileTesto fileTesto = new FileTesto();

                fileTesto.Nome = elemento.Nome;

                fileTesto.Cognome = elemento.Cognome;

                fileTesto.Ruolo = elemento.Ruolo;

                listFileTesto.Add(fileTesto);

 

 

            }

            excelStorage.InsertRecords(listFileTesto.ToArray());

            }

            catch (Exception ex)

            {

 

                MessageBox.Show("Errore: " + ex.Message);

            }

 

        }








Come si vede dal codice precedente, con la classe ExcelNPOISTorage, andiamo a gestire il file Excel, in particolare la proprietà “FileName” imposta il file, se non viene specificato il percorso, verrà generato nella stessa cartella in cui gira l’applicazione.
La proprietà StartClumn e StartRow, indicano da quale colonna e riga si deve scrivere, mentre la proprietà HeaderRows il numero delle intestazioni.
Impostando a true la proprietà “OverrideFile” il file verrà sovrascritto.
Con il metodo Add della proprietà ColumnHeaders invece aggiungiamo le intestazioni.
Ultima proprietà è “Sheetname” con il quale si imposta il nome del foglio.
Si crea un oggetto list della classe per la gestione del file, e poi ad ogni record del file di testo, si inserisce nella lista, che verrà aggiunto tramite il metodo InsertRecords, il quale genererà il file.

Conclusioni

L’articolo ha fornito le basi per utilizzare in maniera autonoma l’utilizzo della libreria di Filehelpers per la generazione di file Excel, con prestazioni di alta qualità.
La libreria molto facile da utilizzare, offre un valido strumento ai programmatori per realizzare programma nel quale necessitano la generazione di file di tipo Excel.