giovedì 30 settembre 2021

Download gioco Europa Universalis IV

 



Un bellissimo gioco di strategia per sistemi operativi Windows con il quale affrontare battaglie con una grafica ben fatta.

Il gioco Europa Universalis IV non in lingua italiana è scaricabile gratuitamente fino al 07 ottobre 2021 dopo tale data non sarà più possibile scaricarlo gratuitamente.

Per maggiori informazioni e download visitate il seguente sito Europa Universalis IV (epicgames.com) 

mercoledì 29 settembre 2021

Motore di ricerca della flora in Italia

Un sito con un grande archivio dove ricercare per nome comune di pianta oppure scientifico.

Nel sito, è possibile effettuare anche ricerca avanzate con il quale trovare informazioni sugli alberi e flora presente in Italia.

Il sito è visibile a questo http://dryades.units.it/floritaly/index.php indirizzo ed è in lingua italiana.


lunedì 27 settembre 2021

Un blog sulla programmazione .Net

Un blog costantemente aggiornato e con interessanti articoli e notizie sulla programmazione .Net con riferimento al linguaggio di programmazione C#.

Il blog di Hanselman in lingua inglese offre interessante materiale. Il blog è visibile qui https://www.hanselman.com/blog/ 

domenica 26 settembre 2021

Blog su Raspberry e Arduino

Se state cercando un sito con articoli e notizie sulle schede Raspberry e Arduino, il seguente blog https://www.moreware.org/wp/ offre numerosi notizie ed articoli su queste due schede.
Il sito è in lingua italiana e costantemente aggiornato.

sabato 25 settembre 2021

Download gioco The Escapists

 



Disponibile gratuitamente e senza limitazioni il gioco di strategia The Escapists in lingua italiana, per sistemi operativi Windows.

Fino al 30 novembre 2021 è possibile scaricarlo gratuitamente dopo tale data, non è più possibile effettuare il download gratuito.

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

venerdì 24 settembre 2021

Sito sul programma Microsoft Excel tanti articoli e trucchi

Un portale con numeroso materiale per conoscere o migliorare le proprie conoscenza sul programma di calcolo più diffuso al mondo, Microsoft Excel.

Dal seguente sito https://www.myexcelonline.com/ è possibile consultare diversi trucchi ed altro materiale su Excel. Il sito è in lingua inglese, ma è molto facile da capire.


giovedì 23 settembre 2021

Download ebook Real-World Xamarin.Forms

 



Disponibile gratuitamente previa registrazione, un ebook in lingua inglese in formato pdf o per dispositivi mobile, riguardante lo sviluppo di applicazione tramite il Framework Xamarin.

Per maggiori informazioni e download visitate il seguente sito https://www.syncfusion.com/succinctly-free-ebooks/real-world-xamarin-forms-succinctly 

mercoledì 22 settembre 2021

Disponibile il controllo per verificare se nel pc si può installare Windows 11

 


Da ieri è disponibile il programma per verificare se nel proprio pc si può installare il nuovo sistema operativo Windows.

Dal seguente sito https://www.microsoft.com/it-it/windows/windows-11 scorrendo in basso fino alla voce "Verifica la compatibilità" è possibile scaricare il programma di verifica nel fare click sulla voce "SCARICA L'APP CONTROLLO INTEGRITÀ DEL PC" .

Una volta scaricato ed installato, eseguirlo per verificare se il nuovo Windows 11 può essere installato. 

martedì 21 settembre 2021

Asp.Net Core MVC la validazione dei controlli in C# in .Net 5

Si riporta l'articolo scritto per il sito https://www.iprogrammatori.it/articoli/microsoft-net-framework/art_aspnet-core-mvc-la-validazione-dei-controlli-in-c-in-net-5_1754.aspx  

In questo articolo vedremo come effettuare la validazione dei controlli di tipo caselle di testo nelle applicazioni di tipo Asp.Net MVC Core.

Utilizzeremo l’ultima versione del Framework, la 5, con il linguaggio di programmazione C# e l’ambiente di sviluppo Visual Studio 2019.

Quando si sviluppano applicazioni web, può tornare utile impostare nel modello, ossia la classe che farà da modello per la pagina web, alcuni attributi come l’obbligo di scrivere nel campo, oppure che rispetta un determinato intervallo come può essere per i campi di tipo intero, oppure che rispetta una certa formattazione come possono essere i campi per il codice fiscale o indirizzo email o altro.Questi messaggi saranno visualizzati a video, non appena si proverà ad inserirli.

 Il tutto sarà come mostrato in figura 1.




Figura 1 - La pagina con i controlli ed i messaggi di validazione.


Creazione del progetto

Si crea un nuovo progetto Asp.net MVC Core, selezionando come versione del Framework la 5, che al momento in cui stiamo scrivendo l’articolo è l’ultima. Come linguaggio di programmazione selezionare C# nell'ambiente di sviluppo Visual Studio 2019 community.


Stesura del codice

Dopo aver creato il progetto, occorre fare click sulla cartella “Models” e tramite il tasto destro, selezionare dal menu che viene visualizzato la voce “Aggiungi” e nel sottomenu la voce “Classe”.

La classe sarà il modello che utilizzeremo nella pagina, ossia nella View, con i campi che avranno obbligatorietà oppure che devono rispettare alcuni criteri.

Dopo aver fatto click sul nome “Classe”, digitiamo come nome classe “Anagrafica”.

Il modello avrà delle proprietà, di tipo “intero” e “string” con attributi per visualizzare a seconda del campo un determinato messaggio.

Qui di seguito si riporta la classe “Anagrafica” con i vari campi


C#

public class Anagrafica

    {

        [Required(ErrorMessage = "Campo Nome obbligatorio")]

        public string Nome { get; set; }

        [Required(ErrorMessage = "Campo Cognome obbligatorio")]

        public string Cognome { get; set; }

        [Required(ErrorMessage = "Campo Età obbligatorio")]

        [Range(0, 110, ErrorMessage ="Valore non valido")]

        public int? Eta { get; set; }

        [StringLength(16,ErrorMessage ="Il codice fiscale dev'essere composto da 15 caratteri")]

        [RegularExpression(@"^.*[A-Z]{6}\d{2}[A-Z]\d{2}[A-Z]\d{3}[A-Z]$", ErrorMessage ="formato codice fiscale errato")]

        public string CodiceFiscale { get; set; }

    }



Come si vede dal frammento di codice precedente, abbiamo campi obbligatori di tipo string come il campo “Nome” e “Cognome”. Un campo di tipo “Intero” denominato “Eta” che è obbligatorio e che deve rispettare un determinato intervallo, altrimenti visualizza un messaggio, un campo di tipo string, in cui deve rispettare una determinata formattazione ed avrà una lunghezza massima di 16 caratteri.

Terminata la creazione della classe del modello per la gestione delle informazioni, non ci resta che completare il codice, sia lato della pagina stessa e sia per la gestione dei dati.

Nel file controller, si crea un metodo che passato il modello creato in precedenza, verifica se i dati sono validi, ossia rispettano i criteri che abbiamo configurato per ogni singola proprietà, quale la valorizzazione della stessa, oppure rispetta l’espressione regolare o l’intervallo dei dati. Inoltre si farà un controllo se il valore inserito nella casella Nome è uguale a “Emanuele”, in tal caso verrà visualizzato un messaggio di errore. Questo esempio di codice può essere usato con la gestione dei dati, prima che avvenga l’inserimento nel database, fornendo all’utente un messaggio che il dato inserito (per esempio creazione di un account) è già presente nella base dati.

Nel file Controller, denominato “HomeController”, scriviamo un metodo post, con il quale tramite la proprietà “IsValid” verifichiamo se i dati inseriti nella form sono corretti, in tal caso vengono rilevati i vari valori verificando al tempo stesso che il campo “Nome” è diverso da “Emanuele”, in caso contrario visualizzerà all’utente un messaggio di errore.

Nel caso che invece il modello non è valido perché presenti gli errori, viene visualizzato il codice per rilevare il testo dell’errore, anche se questo codice non servirebbe, perché il messaggio di errore verrà visualizzato a video nella pagina, ma lo scriviamo per fornire al lettore informazioni utili nel caso che vuole gestire tramite un log o altro, le informazioni di errore dell’inserimento dati del form.

Qui di seguito il metodo da per la gestione dei dati.

HomeController.cs

  [HttpPost]

        public IActionResult Inserisci(Anagrafica anagrafica)

        {

            if (ModelState.IsValid )

            {

                string Nome = anagrafica.Nome;

                string Cognome = anagrafica.Cognome;

                int eta = anagrafica.Eta.Value;

                string codiceFiscale = anagrafica.CodiceFiscale;

                if (Nome == "Emanuele")

                {

                     ModelState.AddModelError("Nome", "Nome presente sulla base dati.");

                    return View("Index", anagrafica);

                }

                return View("Index");

 

            }

            else

            {

                foreach (var Elemento in ModelState.Values)

                {

                    foreach (var Errore in Elemento.Errors)

                    {

                        string ErroreRilevato = Errore.ErrorMessage;

                    }

                  

                }

            }

          

           

            return View("Index");

        }


Siamo giunti quasi alla conclusione dell’articolo, non ci resta che scrivere la form per l’inserimento dei dati e la gestione dell’evento click del pulsante e del modello.

Facciamo click sul file denominato “Index.cshtml”, in alto, sopra ad ogni dichiarazione, scriviamo il riferimento al modello.

Qui di seguito le suddette dichiarazioni.

Index.cshtml

@model Anagrafica


Terminata l'aggiunta del modello, nel div, dobbiamo inserire un tag form, dove come action si fa riferimento al metodo creato in precedenza e di tipo post.

Nel form, avremo un metodo di tipo “ValidationSummary” che permette di visualizzare in maniera tabellare, come un sommario, gli errori rilevati nella form, visualizzando il messaggio per ogni proprietà, inoltre per ogni casella di testo, ossia un controllo TextBox,  tramite il metodo “ValidateMessage” visualizzerà il messaggio di errore, nel caso che non rispetta i criteri impostati nelle proprietà.

Qui di seguito la form completa del file Index.cshtml

@model Anagrafica

@{

    ViewData["Title"] = "Home Page";

}

 

<div class="text-left">

    <h1 class="display-4">Esempio campi obbligatori</h1>

    <form action="Home/Inserisci" method="post">

        @Html.ValidationSummary(false, "", new { @class = "text-danger" })

 

 

        <label>Nome</label><br />

        @Html.TextBox("Nome") <br />

        @Html.ValidationMessage("Nome")

 

        <label>Cognome</label><br />

        @Html.TextBox("Cognome") <br />

        @Html.ValidationMessage("Cognome")

        <br />

        <label>Eta</label><br />

        @Html.TextBox("Eta") <br />

        @Html.ValidationMessage("Eta")

       

        <br />

        <label>Codice Fiscale</label><br />

        @Html.TextBox("CodiceFiscale") <br />

        @Html.ValidationMessage("CodiceFiscale")

 

 

        <button id="BtnEsegui" type="submit">Esegui</button>

 

    </form>

</div>



Conclusioni

Ora non resta che eseguire il nostro applicativo e fare le varie prove, verificando la correttezza della validazione dei dati, e fare la prova anche inserendo nella casella “Nome” il testo “Emanuele”.

L’articolo ha voluto fornire al lettore informazioni utili sulla gestione dei campi, che in Asp.Net MVC Core, è completamente diverso dal precedente sviluppo con la tecnologia Asp.Net.

Oltre a visualizzare i messaggi di errore per i singoli campi, si è visto come utilizzando il metodo “ValidationSummary” è possibile visualizzare la lista degli errori, in maniera tabellare come un sommario.

lunedì 20 settembre 2021

Download programma gratuito di fatturazione

 


Un programma sulla gestione delle fatture (invio e ricezione) in lingua italiana per poter gestire ottimamente tutto ciò che riguarda il commercio.

Il programma SDiPEC - fatturazione elettronica gratis è scaricabile gratuitamente ed offre numerose funzionalità per gestire le fatture.

Per maggiori informazioni e download visitate il sito indicato.

domenica 19 settembre 2021

Download ebook gratuito su Microsoft Excel 101 Best Excel Tips & Tricks

 



Un ebook gratuito con oltre 600 pagine in lingua inglese e tante immagini con trucchi sul programma di foglio di calcolo più utilizzato al mondo, Microsoft Excel.

Il libro si può scaricare dal seguente sito https://sf.tradepub.com/free/w_myex07/ previa registrazione gratuita.



sabato 18 settembre 2021

Download gioco Tharsis

 



Disponibile gratuitamente il gioco per un pubblico adulto Tharsis di azione.

Il download è gratuito fino al 23 settembre 2021 dopo tale data non sarà possibile scaricarlo gratuitamente.

Il gioco è per sistemi operativi Windows.

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

venerdì 17 settembre 2021

Download gioco Speed Brawl

 



Disponibile gratuitamente il gioco di combattimento Speed Brawl per sistema operativi Windows e senza limitazioni.

Il gioco fino al 23 settembre 2021 si potrà scaricare gratuitamente dopo quella data il download sarà a pagamento.

Per maggiori informazioni e download visitate il seguente sito Speed Brawl (epicgames.com)

giovedì 16 settembre 2021

sito stackexchange per il database

Il seguente portale https://dba.stackexchange.com/ offre una serie di domande e risposte, riguardante i database.

Nel sito è possibile trovare le varie soluzioni su vari database, il tutto in lingua inglese.


C# MailMessage multi address

Nel caso che stiamo utilizzando la classe "MailMessage" per inviare email a più destinatari, se viene passato al costruttore più indirizzi separati da virgola (per esempio emanuele@dominio.it,emanuelem@dominio.it) genera un errore.
Per risolvere questo tale eccezione, usare il metodo Add della proprietà To.
Qui di seguito un frammento di codice di esempio.

MailMessage Messaggio = new MailMessage();
Messaggio .To.Add("emanuele@dominio.it,emanuelem@dominio.it");

mercoledì 15 settembre 2021

C# ottenere il nome del programma in esecuzione in Console application

Il frammento di codice qui di seguito, rileva il nome del file eseguibile del proprio progetto console application. Il nome è comprensibile dell'estensione .exe


System.AppDomain.CurrentDomain.FriendlyName

C# tutorial creazione di video giochi con .Net

Dal seguente sito https://www.mooict.com/ è possibile consultare una serie di tutorial sulla creazione di video giochi in ambito .Net con il linguaggio C#.
Tutorial ben fatti e completi.

martedì 14 settembre 2021

Windows 11 posizionare a sinistra il menu e le relative icone

Per chi sta utilizzando il nuovo sistema operativo Windows 11, avrà notato che il menu di avvio e le icone dei programma si trovano al centro, il tutto come mostrato in figura 1.

Figura 1 - Il nuovo menu



Il menu si può riposizionare a sinistra come nelle versioni precedenti di Windows. Per far ciò occorre fare click con il tasto destro del mouse sulla barra e dal menu che viene aperto (figura 1) selezionare la dicitura "Impostazione della barra delle applicazioni".

Verrà aperta una  finestra (figura 2)  con il quale possiamo impostare l'allineamento della barra delle applicazione. 



Figura 2 - La voce per selezionare l'allineamento a sinistra

Cliccare sulla voce "Comportamenti della barra delle applicazioni" in questo modo vengono visualizzate delle opzioni, tra queste la voce "Allineamento barra delle applicazioni" in cui possiamo selezionare la modalità di selezione, sinistra o centro.

lunedì 13 settembre 2021

C# firma digitale estrapolare il certificato da un file firmato p7m tramite tecnologia .Net 5

Si riporta un articolo scritto per il sito https://www.iprogrammatori.it/articoli/microsoft-net-framework/art_c-firma-digitale-estrapolare-il-certificato-da-un-file-firmato-p7m-in_1752.aspx 


In questo articolo riprendiamo il tema della firma digitale che permette di fornire ai file o meglio documenti un valore legale, le informazioni riguardano l’ultima tecnologia .Net, versione 5 del Framework, tramite il linguaggio di programmazione C#.

In questo articolo vedremo come da un file firmato digitalmente di tipo “.p7m” è possibile estrapolare il certificato e salvarlo sul proprio pc, il tutto utilizzando le classi che mette a disposizione il Framework .Net 5.

Lo sviluppo avviene tramite l’ambiente di sviluppo Visual Studio 2019 Community e di tipo Windows Application, ma si può adattare lo scenario anche in ambito web e su altre versioni di Framework e Visual studio.


Creazione del progetto

Si crea un nuovo progetto di tipo Windows Framework, selezionando come linguaggio C# e versione 5 del Framework.

Nella form, inserire due pulsanti, una label che avrà l’intestazione e due pulsanti. Un pulsante avrà la funzione di visualizzare a video una dialog per selezionare il file selezionato, che imposteremo la proprietà “Name” in “BtnSelezionaFileFirmato” mentre un altro pulsante avrà il compito di estrapolare il certificato e salvarlo nella cartella in cui viene eseguito l’applicativo ed avrà la proprietà “Name” impostato su “BtnEstrapolaCertificato”, il tutto come mostrato in figura 1.

Infine il controllo casella di testo, avrà impostato la proprietà “Name” sul valore “TxtPercorsoNomeFileFirmato”.


Figura 1- La form per estrapolare il certificato



Stesura del codice

Terminata la parte relativa alla creazione dell’interfaccia e della predisposizione dei vari controlli passiamo nella stesura del codice.

Facciamo doppio click sul pulsante relativo con i tre punti, quello accanto alla casella di testo in modo che passiamo in visualizzazione codice nell’evento click del pulsante.

In questo evento viene visualizzata una finestra per la selezione dei file firmati digitalmente che hanno estensione di tipo “.p7m” e riporta il nome e percorso del file nella casella di testo.

Qui di seguito il frammento di codice delle suddette operazioni.


C#

private void BtnSelezionaFileFirmato_Click(object sender, EventArgs e)

        {

            OpenFileDialog fileDialog = new OpenFileDialog();

            fileDialog.Title = "Seleziona file firmato";

            fileDialog.Filter = "file firmato (*.p7m)|*.p7m";

            if (fileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)

            {

               TxtPercorsoNomeFileFirmato.Text = fileDialog.FileName;

            }

        }


Rimanendo sempre in modalità codice, scriviamo la funzione che ci permette di estrapolare il certificato dal file selezionato. La funzione restituisce un array di byte che è il binario, ossia contenuto del certificato che sarà utilizzato per crearlo.


Per la gestione dei certificati, dobbiamo utilizzare lo spazio dei nomi “X509Certificates” che fornisce una serie di classi che permettono di gestire i certificati.

In alto, nella dichiarazione di altri spazio dei nomi, inseriamo quello per i certificati, qui di seguito il frammento di codice.

C#

//Spazio dei nomi per la gestione del certificato

using System.Security.Cryptography.X509Certificates; 


Terminata l'aggiunta dello spazio dei nomi, scriviamo la funziona che estrapola il certificato in forma di array byte.

Utilizzando la classe X509Certificate possiamo gestire i certificati, dopo aver inizializzato la classe con il percorso e nome del file, tramite il metodo “Export” passando come parametro “Cert” dell’enumerazione di tipo di certificato, otteniamo l’array byte del certificato contenuto nel file firmato digitalmente.

Qui di seguito le suddette operazioni.


C#

  private byte[] GetCertificatoDaFile(string PercorsoNomeFile)

        {

            try

            {

               

                X509Certificate Certificato = new X509Certificate(PercorsoNomeFile);

                byte[] CertificatoReturn = null;

                CertificatoReturn = Certificato.Export(X509ContentType.Cert);

                return CertificatoReturn;

            }

            catch (Exception ex)

            {

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

                return null;

            }

 

 

 

        }


A questo punto, terminata la creazione del metodo per estrapolare il certificato, torniamo in visualizzazione grafica, dove facciamo doppio click sul pulsante “Estrapola certificato” con il quale passiamo alla funzione che abbiamo appena scritto il percorso e nome del file, la funzione ci restituisce un array di byte con il quale andremo a creare il certificato nella stessa cartella in cui viene seguito l’applicativo.


Facciamo doppio click sul pulsante, in modo che passiamo in visualizzazione codice dell’evento click del pulsante, e scriviamo il codice qui di seguito delle suddette operazioni.

Prima di scrivere il codice per l’evento click del pulsante, occorre inserire lo spazio dei nomi per la gestione dei file, in particolare per la creazione dei file.

Qui di seguito la dichiarazione dello spazio dei nomi per la gestione dei file e cartelle da mettere insieme ad altri namespace.


C#

using System.IO;



Ritornando all’evento click del codice, scriviamo il codice per invocare la funzione creata in precedenza e creare il certificato.

C#

private void BtnEstrapolaCertificato_Click(object sender, EventArgs e)

        {

            if (string.IsNullOrEmpty(TxtPercorsoNomeFileFirmato.Text.Trim()))

            {

                MessageBox.Show("Selezionare un file firmato di tipo .p7m");

                return;

            }

            var risultato = GetCertificatoDaFile(TxtPercorsoNomeFileFirmato.Text);

            if (risultato == null)

            {

                MessageBox.Show("Impossibile estrapolare il certificato");

                return;

            }

            string percorsoFile = Environment.CurrentDirectory + "\\CertificatoRilevato.cer";

            //Creo il certificato

            File.WriteAllBytes(percorsoFile, risultato);

            //lo apro

            System.Diagnostics.Process.Start(percorsoFile);

        }



Conclusioni

L’articolo ha voluto fornire al lettore alcuni aspetti della firma digitale e di come dotare le proprie applicazioni di funzionalità avanzate nella gestione dei file firmati digitalmente di tipo p7m. La gestione dei file firmati è sempre più richiesta vista l’evoluzione tecnologia negli ultimi anni e soprattutto di evitare quanto più possibile la carta e quindi effettuare tutte le operazioni legali ed amministrative in forma digitale.

Nel sito è possibile consultare altri articoli sulla firma digitale, fornendo una panoramica che affronta vari ambiti questo genere di applicazioni.

domenica 12 settembre 2021

download gratuito Ansible

 


Disponibile gratuitamente un ebook sul software di automazione Ansible in lingua inglese e formato pdf o per disponibili mobile.

Il libro è scaricabile previo account gratuito sul sito, per maggiori informazioni e download visitate il seguente sito Free Ebook - Ansible Succinctly (syncfusion.com) 

sabato 11 settembre 2021

Download gioco Sheltered

 



Fino al 16 di settembre è possibile scaricare il gioco gratuito di strategia Sheltered, in lingua italiana, per sistemi operativi Windows.

Dopo tale data, il download non sarà più gratuito.

Per maggiori informazioni e download visitate il seguente sito Sheltered (epicgames.com)



venerdì 10 settembre 2021

download gioco Nioh The Complete Edition

 




Disponibile gratuitamente e senza limiti di funzionalità o tempo, il gioco di combattimento per un pubblico adulto.

Fino al 16 settembre 2021 è possibile scaricare gratuitamente il gioco Nioh edizione completa, per sistemi operativi Windows, dopo tale data, il gioco non si potrà scaricare gratuitamente.

Per maggiori informazioni e download visitate il seguente sito Nioh: The Complete Edition | Acquistalo e scaricalo subito sull'Epic Games Store

giovedì 9 settembre 2021

C# Asp.Net MVC Core visualizzare anteprima di immagine con .Net 5

Si riporta l'articolo scritto per il sito https://www.iprogrammatori.it/articoli/microsoft-net-framework/art_c-aspnet-mvc-core-visualizzare-anteprima-di-immagine-con-net-5_1751.aspx 


In questo articolo vedremo come impostare nelle nostre pagine web, in particolare con la tecnologia Asp.Net MVC e l’ambiente di sviluppo Visual Studio 2019 Community, la possibilità di selezionare un file immagine nel nostro pc, e visualizzarne l’anteprima.

Inoltre sarà possibile dallo stream dati del file immagine, salvare su un percorso del nostro computer il file che viene visualizzato in anteprima

Il linguaggio di programmazione che utilizzeremo è C#, con l’ultima versione del Framework che è la .Net 5

In figura 1, il risultato dell’anteprima dell’immagine.

 

Figura 1 - La form dei dati


Creazione del progetto

Si crea un nuovo progetto di tipo Asp.Net MVC Core selezionando la versione del Framework 5.

La pagina web sarà formato da due campi di testo, che contengono informazioni come nome e cognome, ed un controllo per il caricamento dei file ed un tag di tipo immagine ed un campo nascosto dove andremo a salvare lo stream della foto. Il pulsante Inserisci permetterà di passare al controller le informazioni relative ai campi e lo stream del file immagine.


Stesura di codice

Dopo aver creato il progetto, dobbiamo creare una classe per la gestione dei dati, che sarà utilizzata nel controller, questo modello sarà utilizzato nella pagina web.

Nella cartella “Model” facciamo click con il tasto destro e dal menu che viene visualizzato, selezioniamo “Classe” dal sotto menu “Nuovo Elemento”, impostiamo un nome alla classe, nel nostro caso denominata “Anagrafica” e si creano 4 proprietà, tre di tipo string ed una di tipo byteArray che sarà utilizzata per la gestione dei dati.

Qui di seguito le suddette dichiarazione della classe “Anagrafica”


C#

    public class Anagrafica

    {

       

        public string Nome { get; set; }

 

        public string Cognome { get; set; }

 

        public byte[] Logo { get; set; }

 

        public string LogoStream { get; set; }

 

    }


Le proprietà del modello Anagrafica, si possono utilizzare anche per gestire i dati nel caso che si fa uso di un database e quindi per le operazioni relative ad inserimento, lettura, agigornamento e cancellazione.


Questo modello che abbiamo appena creato lo utilizzeremo nella pagina web.


Nella cartella View, facciamo click sulla pagina denominata "Index” ed utilizzeremo questo modello



Qui di seguito il frammento di codice per la creazione della pagina di inserimento.


Nella pagina Index.cshtml, scriviamo, in alto sopra ad ogni dichiarazione, il riferimento a questo modello, in modo che possiamo utilizzarlo nella nostra pagina web.

Il tutto sarà come il frammento qui di seguito.

@model Anagrafica

Qui di seguito il codice relativo alla pagina web, in cui vengono definitivi campi, il pulsante e la gestione dei dati e dell'immagine quando viene fatto click sul pulsante "Inserisci".


Cshtml:

<div class="text-center">

   Esempio Anteprima Immagine

    <br />

 

    @using (Html.BeginForm("InserisciAnagrafica", "Home", FormMethod.Post))

    {

 

   

    <label>Nome</label>

   

     @Html.TextBox("Nome")

    <br />

    <label>Cognome</label>

    @Html.TextBox("Cognome")

    <br />

    <label>Immagine</label>

    <input type="file" accept="*.jpg" name="Immagine" id="Immagine" onchange="Anteprima(this)" /><br />

 

    <br /><img id="Logo" style="width:100px; height:100px"  src="#" alt="Anteprima" name="Logo"    /><br />

    <input type="hidden" id="LogoStream" name="LogoStream" />

   <button type="submit" id="Inserisci">Inserisci</button>

 

    }

</div>


Il controllo input file permette di visualizzare nella finestra di dialogo solo i file di tipo “.jpg” per aver impostato nella proprietà “accept” il valore “*.jpg”. La proprietà “OnChange” è impostata su una funzione Javascript che permette di visualizzare l’anteprima dell’immagine.

La funzione “Anteprima” di Javascript, verifica se il file è di tipo Jpg, ed in tal caso, rileva lo stream dati del file, impostandolo nel tag di tipo immagine e nel controllo nascosto che sarà utilizzato per generare il file immagine.

Qui di seguito il frammento di codice delle suddette operazioni.

<script>

 

 

    function Anteprima(Input) {

        var file = Input.files[0];

 

        if (file) {

            var Estensione = ['jpg'];

            if ($.isArray(file.name.split('.').pop().toLowerCase(), Estensione)==-1) {

                Alert('File non valido.');

                return;

            }

            var reader = new FileReader();

            reader.onload = function () {

                $("#Logo").attr("src", reader.result);

                $("#LogoStream").val(reader.result);

            }

            reader.readAsDataURL(file);

 

        }

 

 

    }

 

 

 

</script>

 

Terminata la parte relativa alla pagina web, dobbiamo scrivere il codice che dal controller rileva le informazioni dalla pagina al click del pulsante.

Il metodo di tipo “Post” accetta come parametro il modello precedentemente creato, dove nella proprietà “LogoStream” viene passata la stringa relativa allo stream dati dell’immagine, che verrà convertita in array di byte.

Nel seguente codice, oltre alle informazioni ai dati inseriti nei campi verrà salvato il file di tipo immagine su disco locale, oppure nel caso che si fa uso di una base dati, utilizzare l'array di byte per salvarle in qualche campo.


Qui di seguito il metodo “InserisciAnagrafica” nel controller “home” che verrà richiamato dalla pagina web, passando il modello “Anagrafica” con i dati inseriti nella pagina.

Controller

C#

[HttpPost]

        public ActionResult InserisciAnagrafica(Anagrafica anagrafica)

        {

            if (!string.IsNullOrEmpty(anagrafica.LogoStream))

            {

           int valore = anagrafica.LogoStream.IndexOf(',') + 1;

            byte[] byteArray = Convert.FromBase64String(anagrafica.LogoStream[valore..^0]);

            System.IO.File.WriteAllBytes("C:\\Varie\\MioFile.jpg", byteArray);

             }

            return View("Index");

        }




Conclusioni

L’articolo ha voluto fornire al lettore una tecnica per aggiungere alle proprie applicazioni web di tipo Asp.Net MVC o Asp.Net MVC Core, la possibilità di visualizzare le immagini rilevate dal proprio pc, per poi salvarle o su pc o in una base dati.

Questo scenario si può applicare in tutte quelle applicazioni con il quale prima di salvare i dati, devono verificare se l’immagine selezionata è corretta o altro, fornendo un’anteprima.

mercoledì 8 settembre 2021

C# Game Pac Man source

 Interessante tutorial dal seguente sito https://www.mooict.com/c-tutorial-create-a-simple-pac-man-game-in-visual-studio/ che spiega passo dopo passo come realizzare il video gioco Pac Man in C# in ambiente Windows Application.

Nel sito, oltre ai vari frammenti di codice anche le relative immagini.


martedì 7 settembre 2021

Sito su Windows mspoweruser

Un sito molto interessante riguardante il sistema operativo più diffuso al mondo, Windows.

Il sito https://mspoweruser.com/ in lingua inglese, offre interessanti notizie ed articoli costantemente aggiornato sul sistema operativo Windows 10 ed anche Windows 11.

Inoltre è presente anche una rubrica riguardante i video giochi.



lunedì 6 settembre 2021

C# .Net 5 colorare le paginette del controllo TabControl

Si riporta l'articolo scritto per il sito https://www.iprogrammatori.it/articoli/microsoft-net-framework/art_c-net-5-colorare-le-paginette-del-controllo-tabcontrol_1749.aspx 


In questo articolo vedremo come estendere il controllo TabControl con aspetti grafici insoliti, in particolare vedremo come tramite il linguaggio C# su un progetto di tipo “Windows Application” andremo ad applicare una colorazione alle singole paginette, il tutto come mostrato in figura 1. 


Figura 1 – Il controllo TabControl Con le due paginette colorate


Il tutto verrà realizzato con il linguaggio di programmazione C# versione del Framework .Net 5 quindi l’ultima e l’ambiente di sviluppo Visual Studio 2019 Community.



Creazione del progetto


Si crea un nuovo progetto di tipo App Windows, con la versione del Framework 5.0, che al momento è l’ultima tra quelle rilasciate.

Una volta creato il progetto, nella form aggiungiamo un controllo di tipo “TabControl” con due paginette, il tutto come mostrato in figura 2.



Figura 2 – Il controllo TabControl con due paginette


Terminata la creazione della form, non ci resta che scrivere il codice per impostare il colore alle singole paginette.


Stesura del codice

Facciamo doppio click sulla form, in modo che passiamo in visualizzazione codice nell’evento load della form.

In alto sopra ad ogni dichiarazione, prima del costruttore dobbiamo creare un oggetto di tipo “Dictionary” in modo che gestiamo la colorazione delle singole paginette, in questo caso sono due.

Qui di seguito il frammento di codice di tale dichiarazioni.

C#

private Dictionary<TabPage, Color> PaginetteColorate = new Dictionary<TabPage, Color>();

Ora occorre creare l’evento per il ridisegno della pagina con il quale verrà impostato il colore della paginetta.

L’evento che riguarda tale scenario è “DrawItem” che ridisegna le paginette del controllo.

Qui di seguito il frammento di codice delle suddette operazioni.


C#

private void tabControl1_DrawItem(object sender, DrawItemEventArgs e)

        {

 

            using (Brush br = new SolidBrush(PaginetteColorate[tabControl1.TabPages[e.Index]]))

 

            {

 

                e.Graphics.FillRectangle(br, e.Bounds);

 

                SizeF sz = e.Graphics.MeasureString(tabControl1.TabPages[e.Index].Text, e.Font);

 

                e.Graphics.DrawString(tabControl1.TabPages[e.Index].Text, e.Font, Brushes.Black, e.Bounds.Left + (e.Bounds.Width - sz.Width) / 2, e.Bounds.Top + (e.Bounds.Height - sz.Height) / 2 + 1);

 

 

 

                Rectangle rect = e.Bounds;

 

                rect.Offset(0, 1);

 

                rect.Inflate(0, -1);

 

                e.Graphics.DrawRectangle(Pens.DarkGray, rect);

 

                e.DrawFocusRectangle();

 

            }

 

        }



Questo evento va collegato all’evento DrawItem del controllo TabControl1, per far questo passiamo in visualizzazione grafica, e facciamo click sul controllo TabControl1, nella finestra delle proprietà, facciamo click nella sezione eventi, e nella voce DrawItem, selezioniamo l’evento appena creato.

Ora ritorniamo in visualizzazione codice, tramite il doppio click sulla form, in questo modo si passa all’evento load della form con il quale scrivere il codice per impostare la colorazione alle paginette.

In questo evento andiamo ad impostare nelle singole paginette un determinato colore.

Qui di seguito il frammento di codice delle suddette operazioni.


C#

private void Form1_Load(object sender, EventArgs e)

        {

            PaginetteColorate.Add(tabControl1.TabPages[0], Color.Green);

 

            PaginetteColorate.Add(tabControl1.TabPages[1], Color.AliceBlue);

 

            tabControl1.DrawMode = TabDrawMode.OwnerDrawFixed;

 

        }




Conclusioni

Ora non ci resta che testare il nostro programma per verificare il corretto funzionamento. Come si è visto in questo articolo, tramite poche righe di codice ed intervenendo sugli eventi del controllo si possono implementare ed estendere i controlli di tipo “Windows Application” in questo caso del controllo TabControl. Può tornare utile in quei contesti in cui occorre fornire delle personalizzazioni particolari.

Il codice presente in questo articolo fa riferimento all’ultima versione del Framework, ma è possibile utilizzarlo anche con le versioni precedenti.

domenica 5 settembre 2021

free ebook Uno Platform

 




Disponibile gratuitamente per il download, previa registrazione gratuita, un ebook in lingua inglese in formato pdf o per dispositivi mobile, per la programmazione multipiattaforma con .Net tramite il Framework Uno Platform.

Per maggiori informazioni e download visitate il seguente sito Free Ebook - Uno Platform Succinctly (syncfusion.com) 

sabato 4 settembre 2021

Download gioco Warface

 



Disponibile gratuitamente e senza limiti di tempo e funzionalità il gioco sparatutto Warface, per sistemi operativi Windows.

Il gioco è uno sparatutto di azione con una grafica molto interessante.

Per maggiori informazioni e download visitate il seguente sito Warface | Scaricalo e gioca gratuitamente sull'Epic Games Store

venerdì 3 settembre 2021

Download gioco Yoku's Island Express

 



Disponibile gratuitamente fino al 9 settembre 2021, il gioco di avventura Yoku's Island Express.

Il gioco per sistema operativo Windows ed è in lingua italiana.

Per maggiori informazioni e download visitate il seguente sito Yoku's Island Express (epicgames.com)

giovedì 2 settembre 2021

asp.net mvc field int errormessage The value '' is invalid.

Quando si sviluppa in Asp.Net MVC Core, e si vogliono visualizzare alcuni messaggi di errore perchè non rispettano un intervallo oppure perchè sono obbligatorio, per il campo di tipo Int, si può verificare che venga visualizzare il messaggio "The Value '' is invalid".

Per risolvere questo occorre rendere il campo nullable ed impostare gli attributi di campo richiesto e range.

Qui di seguito le suddette operazioni per un campo che è obbligatorio e che deve rientrare in un intervallo.

 [Required(ErrorMessage = "Campo Età obbligatorio")]

 [Range(0, 110, ErrorMessage ="Valore non valido")]

 public int? Eta { get; set; }

mercoledì 1 settembre 2021

C# .Net Video Giochi strumenti e componenti gratuiti

 


In .Net è possibile creare video giochi per varie piattaforme, pc, dispositivi mobile, Xbox, e Windows.

Qui di seguito si riportano una serie di strumenti utili gratuiti e componenti da aggiungere ai propri progetti. Una serie di contenuti per iniziare a sviluppare o meglio creare video giochi con la tecnologia .Net . 

Qui https://devblogs.microsoft.com/dotnet/choose-a-net-game-engine/ un post con vari riferimenti sui vari componenti gratuiti, mentre qui https://devblogs.microsoft.com/dotnet/game-development-with-net/ altro post sullo sviluppo dei video giochi.

Qui https://dotnet.microsoft.com/apps/games?WT.mc_id=gamedev-blog-abhamed il nuovo portale per la creazione dei video giochi, mentre qui https://dotnet.microsoft.com/learn/games?WT.mc_id=gamedev-blog-abhamed l'area formativa qui https://dotnet.microsoft.com/learn/games/unity-tutorial/intro?WT.mc_id=gamedev-blog-abhamed l'area formativa Unity.

Che dire, buon divertimento.