martedì 14 dicembre 2021

Fuori Tema: Buon Natale e felice anno nuovo

 


Il fuori tema tanto amato che aspetto con grande gioia ed amore.

Un periodo non fatto da regali, ma da ricordi, da momenti di vivere con amore e felicità con le persone care, di fare il bilancio di quanto è trascorso in questo 2021 e dei nuovi propositi.

E con l'entrata dell'inverno, con il suo gelo, ghiaccio e pioggia, nel vedere la natura che si addormenta per poi rinascere a primavera è qualcosa che incuriosisce soprattutto nel vivere e prendersi cura di un parco pubblico, che poi è una riserva naturale.

Posso dire che è stato un anno positivo, anche se ci sono stati momenti difficili, ma anche belli, purtroppo con il problema Covid, anche quest'anno le festività, i giorni di fine anno ed inizio anno nuovo non li trascorrerò in vacanza, ma spero presto di rifarmi con una bella vacanza.

Tante le vittorie e qualche sosta in quel cammino che ogni anno cerco di compiere.

Purtroppo anche quest'anno non sono riuscito ad occuparmi della programmazione Raspberry, ossia dell'internet dell cose, tema a me molto sentito e della programmazione Xbox, che ora mai rimando sempre di anno in anno, attività che trascuro però per il volontariato, per l'amore verso gli altri.

Il prossimo anno cercherò però di dedicare più tempo a me, e soprattutto ai miei interessi ed hobby, ma anche quella di cercare di saziare quanto più possibile la mia curiosità.

Quest'anno ho ricevuto un bel regalo, oltre all'affetto delle persone care, gli scacchi, una passione nata da bambino trasmessa dai genitori.

Qualche giorno di pausa, qualche giorno di ferie e poi si riprende il nuovo anno con tanti obiettivi, tra i quali più tempo per me, programmazione di vario genere con particolare attenzione al Internet delle cose e Xbox.

Spero di pubblicare nel nuovo anno tanti articoli e notizie su argomenti diversi.

Auguro a tutti i miei lettori di trascorrere le vacanze con gioia, amore e momenti con le persone che vi vogliono bene, perchè sia una festa basata su valori, sull'affetto e non sul consumismo. Dopo il periodo di feste tornerò a pubblicare nuovi articoli e nuovo materiale.

Auguri a tutti di buon Natale e felice anno nuovo.

domenica 12 dicembre 2021

Programma gratuito per la creazione dei siti

 



Un software gratuito tra i migliori al mondo sulla creazione di siti web, quello realizzato da ambiera che offre all'utente che non conosce il linguaggio web, la possibilità di creare siti web in maniera visiva.

Il software è per sistemi operativi Windows e Mac.

Per maggiori informazioni e download visitate il seguente sito https://www.ambiera.com/rocketcake/index.html

sabato 11 dicembre 2021

Download gioco Prison Architect

 



Disponibile gratuitamente e senza limitazioni il gioco di strategia Prison Architect che fino al 16 dicembre 2021 si potrà scaricare gratuitamente.

Il gioco è per sistemi operativi Windows ed è in lingua italiana.  Dopo il 16 dicembre il gioco non si potrà scaricare gratuitamente.

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

venerdì 10 dicembre 2021

Download gratuito gioco Godfall Challenger Edition

 



Fino al 16 dicembre 2021 è possibile scaricare gratuitamente il gioco in lingua italiana sparatutto Godfall per sistemi operativi Windows.

Il gioco è in lingua italiana, dopo tale data il gioco non si potrà scaricare gratuitamente.

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

giovedì 9 dicembre 2021

Programma gratuito per la creazione di video giochi senza programmare CopperCube

 



Per tutti coloro che sono interessati alla creazione di video giochi senza utilizzare i linguaggi di programmazione, può tornare utile il programma CopperCube che offre all'utilizzatore la possibilità di realizzare giochi senza uso del linguaggio di programmazione.

Per maggiori informazioni e download visitate il sito in lingua inglese visibile qui https://www.ambiera.com/coppercube/ 

mercoledì 8 dicembre 2021

Download Blender

Come riportato dal sito Blender, rilasciata in questi giorni la versione 3 con nuove funzionalità soprattutto in ambito animazione e gaming.
Il miglior programma gratuito sulla creazione di animazione e video giochi al mondo che offre interessanti funzionalità.
Per maggiori informazioni e download visitate il seguente sito Download — blender.org 

.Net Componente gratuito per video giochi

FlaxEngine è un ottimo componente gratuito per lo sviluppo di video giochi con la tecnologia .Net ed in particolar modo con il linguaggio di programmazione C#.
Qui Flax Engine Documentation | Flax Documentation è possibile consultare la documentazione tra cui la parte relativa al linguaggio C#.

Per maggiori informazioni e download visitate il seguente sito Flax - Flax Engine 

martedì 7 dicembre 2021

C# Asp.net MVC Core utilizzo del file appsettings.json



In questo articolo vedremo come utilizzare il file appsettings.json nelle applicazioni .Net, in particolare alla tecnologia Asp.Net Core MVC.
Nella precedente tecnologia web di Microsoft, in particolar modo Asp.Net, il file web.config permetteva tramite apposite sezioni, di impostare alcune informazioni che potevano essere utilizzate nell’applicazione web.
In particolar modo parametri che potevano tornare utile per effettuare determinate operazioni in base al valore inserito, sollevando il programmatore o comunque un profilo con buone conoscenze informatiche ad intervenire sul codice o sulla base dati.
Con la nuova tecnologia Asp.Net MVC Core, il file di configurazione è appsettings.json con il quale è possibile inserire i vari parametri.

Creazione del progetto

Si crea un nuovo progetto di tipo Asp.Net Core MVC con l’ultima versione del Framework, nel momento in cui stiamo scrivendo è la 5, utilizzando il linguaggio di programmazione C#.
L’applicazione che andremo a realizzare è molto semplice, servirà  a capire come rilevare i dati da un file di configurazione, per gestirli nel sito. Nessun accesso al database e nessun controllo da inserire.
Il codice utilizzato si può utilizzare anche con le versioni precedenti.

L'ambiente di sviluppo utilizzato è Visual Studio 2019 Community.

Stesura del codice

Nel file di configurazione, in particolar modo il file “appsettings.json” inseriremo una voce di parametro, con al suo interno altri parametri.
Dopo il parametro “AllowedHosts” inseriamo il seguente riferimento:

"Parametri": {

    "ResponsabileArea": "Luigi",

    "Direttore": "Emanuele",

    "ResponsabilePersonale": "Olga",

    "Aree": [ "Tenica", "Amministrazione", "Personale" ]

 

 

  }


Come si vede nel precedente frammento di codice, abbiamo un elemento denominato “Parametri” con al suo interno tre parametri, di cui uno di tipo lista.
Qui di seguito si riporta il codice completo di appsettings contenente i valori di default che si trovano quando si crea un nuovo progetto.


{

  "Logging": {

    "LogLevel": {

      "Default": "Information",

      "Microsoft": "Warning",

      "Microsoft.Hosting.Lifetime": "Information"

    }

  },

  "AllowedHosts": "*",

  "Parametri": {

    "ResponsabileArea": "Luigi",

    "Direttore": "Emanuele",

    "ResponsabilePersonale": "Olga",

    "Aree": [ "Tenica", "Amministrazione", "Personale" ]

 

 

  }

}



Ora vediamo come leggere tali valori dall’applicazione web.
Nel file e classe “Startup” si trova un evento che permette la gestione della configurazione appena viene avviata l’applicazione web, questo è l’evento “ConfigureServices” . In questo evento vengono rilevate le varie informazioni presenti nel file di configurazione.
Tramtie l’interfaccia “IConfiguration” rileviamo con il metodo “GetValue” il valore.
Qui di seguito si riporta il frammento delle suddette operazioni.


C#

public void ConfigureServices(IServiceCollection services)

        {

            string ValoreResponsabileArea = Configuration.GetValue<string>("Parametri:ResponsabileArea");

            string ValoreDirettore = Configuration.GetValue<string>("Parametri:Direttore");

            string ValoreResponsabilePersonale = Configuration.GetValue<string>("Parametri:ResponsabilePersonale");

            services.AddControllersWithViews();

        }





Come si è visto nel codice precedente, vengono rilevati i valori dei singoli ruoli (ReponsabileArea, Direttore e ResponsabilePersonale ) o meglio parametri tramite il metodo GetValue.

Creazione della classe per il mapping

Una tecnica molto usata è quella di creare una classe con le proprietà che mappano ossia corrispondono ai nomi dei parametri presenti nel file di configurazione.
Nella cartella “Model” si crea una nuova classe denominata “Parametri”, questa avrà 3 proprietà di tipo string, ed una di tipo list string che farà riferimento al parametro nel file di configurazione delle aree di tipo array string.
Qui di seguito le suddette operazioni della classe.


C#

    public class Parametri

    {

 

        public string ResponsabileArea { get; set; }

        public  string Direttore { get; set; }

        public string ResponsabilePersonale { get; set; }

 

        public List<string> Aree { get; set; }

    }


Per utilizzare questa classe nell’evento per “ConfigureServices” dobbiamo utilizzare il metodo “GetSection” passando come valore il nome del parametro principale che racchiude i sotto parametri e poi il metodo “Get” passando come parametro la classe appena creata.
Qui di seguito si riporta il frammento di codice delle suddette operazioni.

C#

public void ConfigureServices(IServiceCollection services)

        {

 

 

            Parametri parametri = Configuration.GetSection("Parametri").Get<Parametri>();

 

 

 

            services.AddControllersWithViews();

        }


Nel caso che invece si vuole utilizzare il valore del parametro passandolo in una pagina, dovremmo rendere la proprietà di tipo “static”. Modificando la precedente classe, cambiando la classe “Direttore” in static possiamo utilizzarla anche nella pagina web index.

Qui di seguito la modifica della classe “Parametri”.


C#

  public class Parametri

    {

 

        public string ResponsabileArea { get; set; }

        public static string Direttore { get; set; }

 

        public string ResponsabilePersonale { get; set; }

 

        public List<string> Aree { get; set; }

    }



Di seguito la valorizzazione della classe con i valori presenti nel file di configurazione.



C#

public void ConfigureServices(IServiceCollection services)

        {

            Parametri parametri = Configuration.GetSection("Parametri").Get<Parametri>();

            services.AddControllersWithViews();

        }


Nell’evento “Index” del controller “Home”, passiamo il valore della proprietà “Direttore” di tipo static alla “View” tramite il ViewBag.
Qui di seguito il frammento di codice delle suddette operazioni.

HomeController.cs

public IActionResult Index()

        {

            

            ViewBag.Direttore = Parametri.Direttore;

            return View();

        }


Nella view che viene aperta come pagina iniziale, che è la “Index.cshtml” scriviamo il codice per visualizzare a video il valore presente nella proprietà “Direttore”.
Di seguito tali operazioni.

Index.cshtml

@{

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

}

 

<div class="text-center">

    <h1 class="display-4">Pagina esempio</h1>

    <p>Il nome del direttore :  @ViewBag.Direttore  .</p>

</div>


Conclusioni

L’articolo ha voluto fornire al lettore le basi della gestione dei file di configurazione, in particolare con la nuova tecnologia Asp.Net Core MVC del file Appsettings.
Con la nuova tecnologia i parametri che una volta venivano utilizzati nel file “web.config” sono utilizzati tramite file “json” permettendo una diversa gestione.
Con il Framework 5 sono state apportate notevoli cambiamenti, che permettono uno sviluppo più potente ed al tempo stesso flessibile.
I parametri utilizzati nei file di configurazion, permettono anche ad utenti con poca dimestichezza con le tecnologie di fornire informazioni all’applicativo per eseguire determinate operazioni.

lunedì 6 dicembre 2021

C# Firma digitale informazioni del certificato in .Net 5

Si riporta un articolo scritto per il sito https://www.iprogrammatori.it/articoli/microsoft-net-framework/art_c-firma-digitale-informazioni-del-certi_1758.aspx 




In questo articolo vedremo come rilevare le informazioni del certificato in un file di tipo p7m, che sono i file firmati digitalmente.
La firma digitale è un ambito molto usato, soprattutto ai fini di attestare la legalità di un documento, come può essere un contratto di compravendita, bando e rilasci di permessi.
Sempre più utilizzata soprattutto negli ultimi anni la firma digitale, che rendere il file valido.
L’articolo fornirà al lettore le informazioni su come rilevare le informazioni, come la data, lo stato, l’ente e tante altre informazioni utili.
Utilizzeremo l’ultima versione del Framework, che al momento in cui scriviamo è la versione 5, con l’ambiente di sviluppo Visual Studio 2019, ed il  linguaggio di programmazione C#.

Creazione del progetto

Si crea un nuovo progetto di tipo “App Windows Forms” selezionando come versione del Framework la versione 5.
Inseriamo nella form che viene visualizzata a video, 6 label, che saranno utilizzate per visualizzare le informazioni relative al certificato, una casella di testo, due pulsante, di cui uno per rilevare le informazioni del certificato ed un altro per selezionare il file firmato, il tutto sarà come mostrato in figura 1.


Figura 1 – la finestra con i vari controlli.

Stesura del codice

Dopo aver impostato la form con i vari controlli, scriviamo il codice per rilevare le informazioni relative al file firmato.
Nel pulsante dei tre puntini, che avrà la proprietà “btnSelezionaFile”, facciamo doppio click in modo che passiamo in visualizzazione codice nell’evento click del pulsante.
Scriviamo il codice per visualizzare una finestra per selezionare i file firmati digitali.
Qui di seguito il frammento di codice per la selezione del file ed impostare la casella di testo, con il percorso e nome del file.

C#

private void btnSelezionaFile_Click(object sender, EventArgs e)

        {

            OpenFileDialog fileDialog = new OpenFileDialog();

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

            {

                TxtPercorsoFile.Text = fileDialog.FileName;

            }

        }



Ora torniamo in modalità grafica, e facciamo doppio click sul pulsante con il testo “Rileva”, in questo modo passiamo in visualizzazione codice nell’evento click del pulsante.
Prima di scrivere il codice per il rilevamento delle informazioni del certificato, occorre aggiungere lo spazio dei nomi per la gestione dei certificati.
In alto sopra ad ogni dichiarazione, scriviamo lo spazio dei nomi per la gestione dei certificati, qui il frammento di codice.



C#

using System.Security.Cryptography.X509Certificates;


Ritorniamo all’evento click del pulsante per il rilevamento dei dati del certificato, tramite la classe “X509Certificate” passiamo nel costruttore il percorso e nome del file firmato, che abbiamo nella casella di testo. In questo modo si crea un oggetto con le proprietà e metodi che forniscono le informazioni al quale siamo interessati.
Una volta creato l’oggetto di tipo “X509Certificate” impostiamo le varie label con le informazioni da noi richieste, come l’ente, la data di validità, ed altro ancora.
Qui di seguito il frammento di codice delle suddette operazioni.

C#

private void BtnRileva_Click(object sender, EventArgs e)

        {

            try

            {

                X509Certificate CertificatoRilevato = new X509Certificate(TxtPercorsoFile.Text);

                label1.Text = "Ente Certificato: " +  CertificatoRilevato.Issuer;

                label2.Text = "Valido dal: " + CertificatoRilevato.GetEffectiveDateString();

                label3.Text = "Valido fino al: " + CertificatoRilevato.GetExpirationDateString();

                label4.Text = "Oggetto: " + CertificatoRilevato.Subject;

                label5.Text = "Numero seriale: " + CertificatoRilevato.GetSerialNumberString();

                label6.Text = "HAS Certificato: " + CertificatoRilevato.GetCertHashString();

            }

            catch (Exception ex)

            {

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

            }

        }



Conclusioni

L’articolo ha fornito al lettore una tecnica di come rilevare le informazioni del certificato di un file firmato.
La firma digitale è uno scenario che in questi ultimi anni trova sempre più riscontro, soprattutto in questi ultimi due anni con la problematica della pandemia, che ha portato molti enti pubblici ad un intenso uso di questa tecnologia.
Dotare gli applicativi di lettura dei certificati, può tornate utile quando si vuole verificare il file firmato.
Il codice è utilizzabile anche con versioni precedenti del Framework e con ambienti di sviluppo precedenti.

domenica 5 dicembre 2021

Download gioco while True: learn()

 




Disponibile gratuita e senza limitazioni il gioco di strategia While true: Learn() per sistemi operativi Windows.

Fino al 9 dicembre 2021 si potrà scaricare gratuitamente il gioco dopo tale data il download sarà a pagamento.

Per maggiori informazioni e download visitate il seguente sito while True: learn() | Acquistalo e scaricalo subito sull'Epic Games Store 

sabato 4 dicembre 2021

Download gioco Dead by Daylight

 




Disponibile gratuita e senza limitazioni il gioco di orrore Dead By Dalight per un pubblico adulto e per sistemi operativi Windows.

Il gioco si potrà scaricare gratuitamente fino al 9 dicembre 2021 dopo tale data non sarà più possibile scaricarlo gratuitamente.

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

venerdì 3 dicembre 2021

Sito per Download immagini gratuite 3D

Dal seguente sito https://clouddevs.com/3dbay/    è possibile consultare e scaricare gratuitamente immagini di 3D, per usi propri o commerciali.
Alcune immagini sono anche senza l'attribuzione di licenza.
Il sito è in lingua inglese.

giovedì 2 dicembre 2021

Sistema operativo online con strumento online di ogni genere

Una bella interfaccia amichevole, simile ad un sistema operativo con tanti tools gratuiti che permettono ad ogni utente di avere strumenti per l'office automation, grafica, gioco e tanto altro.

Dal seguente sito https://desktop.ssuiteoffice.com/ si può accedere ad un sito che offre gratuitamente strumenti online, in lingua inglese. 

mercoledì 1 dicembre 2021

C# .Net creazione di videogiochi - strumenti e componenti gratuiti

 



Una serie di tutorial, manuali, esempi ed altre informazioni utili sulla creazione di video giochi in ambito .Net.

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, buona programmazione