mercoledì 15 settembre 2021
C# tutorial creazione di video giochi con .Net
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.
martedì 31 agosto 2021
Data di uscita di Windows 11 rilascio per il 5 ottobre 2021
Sul sito di Microsoft è stata pubblicata la data di rilascio di Windows 11, il 5 ottobre 2021 sarà possibile scaricare o aggiornare il proprio dispositivo qualora rispetta i requisiti.
Per maggiori informazioni visitate la notizia ufficiale, dal seguente sito https://news.microsoft.com/it-it/2021/08/31/windows-11-disponibile-a-partire-dal-5-ottobre-2021/
giovedì 12 agosto 2021
FT: Buone vacanze

Come ogni anno, è arrivato anche per me il momento della pausa e di fare il punto della situazione o meglio di riflessione su questo primo giro di boa, a metà anno del 2021.
Un anno che in grandi linee è trascorso molto bene, tra smart working e lavoro in ufficio, nuove amicizie e tanti momento piacevoli. Certo, non è sempre stato tutto perfetto ci sono stati momenti in cui sono caduto, ma come dal mio carattere mi sono alzato.
Qualche giorno di vacanza, di conoscere la bella Italia e poi si ritorna al lavoro aspettando le vacanze invernali.
Purtroppo da quando c'è il Coronavirus, anche i viaggi si sono limitati, non più al mare, ma in estate in qualche città d'arte, che mi fanno sempre più apprezzare il mio paese che sempre considero una grande nazione, mentre d'inverno spero che si possa fare un viaggio come in precedenza.
Spero che con i restanti giorni di ferie, posso sperimentare la programmazione delle schede Raspberry con .Net, ed altre tanti prove da fare anche in altri ambiti, che poi tra volontariato, vita privata e lavoro non riesco mai a trovare un attimo per me.
Una vacanza che spero mi rigeneri e soprattutto chiudo l'anno anche tante altre soddisfazioni.
Auguro a tutti i miei lettori, amici e colleghi buone vacanze e soprattutto di trascorrere momenti spensierati, di gioia e di divertimento.
Altri giorni di pausa e poi a settembre riprenderò a scrivere altri post ed articoli sul mondo dell'informatica.
mercoledì 11 agosto 2021
C# Controlli gratuiti per Windows Forms
Interessante sito, dove scaricare il sorgente di alcuni controlli per lo sviluppo di applicazioni Windows Forms.
Dal seguente sito https://customcontrolsincs.blogspot.com/ è possibile scaricare i sorgenti di controlli per dotare le applicazioni di tipo Windows Application di aspetti grafici accattivante come stile Office, barra Ribbon, oppure label particolari.
Per maggiori informazioni e download visitate il sito indicato.
martedì 10 agosto 2021
Regular Expression verifica correttezza formato del codice fiscale
L'espressione regolare qui di seguito, verifica se il codice fiscale è scritto nel formato corretto ed in maiuscolo
[A-Z]{6}\d{2}[A-Z]\d{2}[A-Z]\d{3}[A-Z]
lunedì 9 agosto 2021
Download gratuito componente per la creazione di video giochi per html5
Excalibur è un componente gratuito per la creazione di video giochi 2D in ambito Html5.
Il componente semplifica la creazione di video giochi.
Per maggiori informazioni e download visitate il seguente sito https://excaliburjs.com/ dove si può consultare la guida, ed altre informazioni utili.
domenica 8 agosto 2021
Download gioco gratuito Minit
Disponibile il download gratuito fino al 12 agosto 2021, il gioco di avventura Minit in lingua italiana, per tutti i sistemi operativi Windows.
Il gioco è scaricabile qui Minit | Acquistalo e scaricalo subito sull'Epic Games Store dove si trovano maggiori informazioni.
sabato 7 agosto 2021
Download gioco A Plague Tale: Innocence
Un gioco per un pubblico adulto, quello di strategia con una buona grafica ma anche ambientato in uno scenario molto cupo.
Il gioco A Plague Tale: Innocence, per sistemi operativi Windows, il download gratuito è disponibile fino al 12 agosto 2021, dopo tale data si potrà scaricare a pagamento.
Per maggiori informazioni e download visitate il seguente sito A Plague Tale: Innocence | Acquistalo e scaricalo subito sull'Epic Games Store
venerdì 6 agosto 2021
C# The operation is not valid for the state of the transaction.
Durante lo sviluppo di accesso alla base dati, può capitare che utilizzando TransactionScope generi l'errore "The operation is not valid for the state of the transaction." dovuto ad operazioni su altri task.
Una possibile soluzione può essere quella di impostare nel costruttore della classe TransactionScope, il tipo di lettura e la durata di timeout e livello.
Qui di seguito un frammento di codice per evitare tale eccezione.
TransactionOptions options = new TransactionOptions();
options.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;
options.Timeout = new TimeSpan(0, 15, 0);
using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, options))
{
//Codice
}
Programma gratuito di firma digitale ed avanzata
Su internet ci sono vari programma per la firma digitale, ma segnalo quello di Namirial che offre anche funzionalità avanzate ed è presente anche in versione portatile.
Il programma in lingua italiana, si può installare sul proprio pc, oppure usare la versione portatile che non richiede nessuna installazione ed utilizzare in vari pc.
Anche il suo utilizzo molto intuitivo offre all'utente un valido strumento.
Qui https://www.firmacerta.it/software-firma-digitale.php è possibile scaricare la versione normale, oppure scorrendo verso il basso la versione portatile.
Inoltre si trova anche la versione per sistemi operativi Mac.
Per il download e maggiori informazioni visitate il sito indicato.
C# firma digitale estrapolare il file firmato digitalmente .p7m con .Net 5.0
Si riporta l'articolo scritto per il sito https://www.iprogrammatori.it/articoli/microsoft-net-framework/art_c-net-50-estrapolare-il-file-firmato-digitalmente-p7m-_1742.aspx
In questo articolo vedremo come rilevare i file firmato digitalmente che viene generato con l’estensione “.p7m” senza utilizzare componenti di terze parti ma le classi messe a disposizione dal Framework 5.0.
L’articolo si basa in ambito di Windows application con il linguaggio di programmazione C#, tramite Visual Studio 2019 community.
Vediamo come poter estrapolare dal file firmato digitalmente, con estensione p7m il relativo file originale.
Creazione del progetto
Si crea un nuovo progetto di tipo “Windows Application” selezionando come versione del Framework 5
Dopo aver creato il progetto, aggiungiamo nella form un controllo di tipo “Label” con il quale andremo a scrivere una descrizione, due controlli di tipo “Button” ed un controllo di tipo “Casella di testo”.
Un pulsante avrà la funzionalità di aprire una finestra per la selezione dei file di tipo “.p7m” mentre un altro pulsante, permetterà di estrapolare il contenuto nel file nella cartella in cui gira l’applicativo.
La form sarà simile come quella mostrata in figura 1.
Figura 1 – I controlli posizionati nella form
Il controllo Label avrà il testo con scritto “Percorso e nome file:” mentre il pulsante dei tre puntini, avrà la proprietà Name impostata su “BtnSelezionaFile”. Il controllo TextBox avrà impostata la proprietà “Name” con il valore “TxtPercorsoNomeFile” ed infine il pulsante posizionato in basso con il testo “Esporta File” avrà impostata la proprietà “Name” con il valore “BtnEsporta”.
Stesura del codice
Passiamo ora alla stesura del codice, facciamo doppio click sul pulsante dei tre punti, in questo modo passiamo in visualizzazione codice.
Nell’evento click del pulsante, scriviamo il codice per visualizzare a video una finestra che permette di selezionare i file che sono di tipo “.p7m”, il tutto tramite la classe “openFileDialog”.
Qui di seguito le suddette operazioni.
C#
private void BtnSelezionaFile_Click(object sender, EventArgs e)
{
OpenFileDialog fileDialog = new OpenFileDialog();
fileDialog.Filter = "File p7m (*.p7m)|*.p7m";
if (fileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
TxtPercorsoNomeFile.Text = fileDialog.FileName;
}
}
Ora passiamo in visualizzazione grafica, e proviamo a fare una prova per vedere se la finestra di selezione file funziona.
Facciamo doppio click sul pulsante con la dicitura “Esporta File”, in questo modo viene visualizzata la parte di codice relativo all’evento click, sopra, nella parte dei namespace, dobbiamo aggiungere quelli per la gestione dei file e della crittografia.
Qui di seguito le suddette operazioni.
C#
using System.IO;
using System.Security.Cryptography.Pkcs;
Restando sempre in visualizzazione codice, andiamo nella parte del codice relativo all’evento click del pulsante per esportare i file, e scriviamo il codice per leggere nei file p7,.
Faremo uso della classe “SignedCMS” che tramite metodi e proprietà possiamo ottenere il file.
Qui di seguito il frammento di codice, che estrapola dal file di tipo “p7m” il suo contenuto e lo salva nella cartella dove viene eseguito il programma.
C#
private void BtnEsporta_Click(object sender, EventArgs e)
{
try
{
if (TxtPercorsoNomeFile.Text.Trim() == "")
{
MessageBox.Show("Selezionare un file firmato digitalmente, di tipo p7m");
}
byte[] FileFirmatoP7m = File.ReadAllBytes(TxtPercorsoNomeFile.Text);
if (FileFirmatoP7m == null)
throw new ArgumentNullException("Errore nel file firmato selezionato.");
//Uso la classe per estrapolare il fle
SignedCms cmsFirmato = new();
cmsFirmato.Decode(FileFirmatoP7m);
if (cmsFirmato.Detached)
throw new InvalidOperationException("Errore nella fase di estrapolazione del contenuto dal file firmato.");
//Estrapola l'array byte del file firmato
byte[] FileRilevato = cmsFirmato.ContentInfo.Content;
//Nome del file che viene generato
string NomeFileDaCreare = new FileInfo(TxtPercorsoNomeFile.Text).Name.Replace(new FileInfo(TxtPercorsoNomeFile.Text).Extension, "");
File.WriteAllBytes(Environment.CurrentDirectory + "\\" + NomeFileDaCreare, FileRilevato);
}
catch (Exception ex)
{
MessageBox.Show("Errore: " + ex.Message);
}
}
Conclusioni
In questo articolo abbiamo visto come possiamo dotare le nostre applicazioni della possibilità di estrapolare in un file firmato digitalmente il suo contenuto, e quindi rilevare il file e poterlo aprire con il programma installato sul proprio pc. Può tornare utile anche nell’eventualità che si vuole realizzare un programma per la gestione della firma elettronica.
giovedì 5 agosto 2021
Programma gratuito di office automation video scrittura, foglio di calcolo e presentazioni
Segnalo un programma in lingua italiana riguardante un programma di office Automation, alternativa a Microsoft Office, con programma di video scrittura, foglio di calcolo e presentazioni.
Il programma FreeOffice, qui https://www.freeoffice.com/it/ il sito, è un programma gratuito ed in lingua italiana, che fornisce la possibilità di scrivere documenti di testo, foglio di calcolo o presentazioni.
Non fornirà le funzionalità avanzate che il programma Microsoft Office offre, ma per quelle basi o la stesura di semplici documenti, come la scrittura di curriculum va più che bene.
Un programma gratuito ed in lingua italiana molto valido.
Per maggiori informazioni e download visitate il seguente sito https://www.freeoffice.com/it/
mercoledì 4 agosto 2021
Download gratuito VPN Gratuita WireGuard
Se cercate una VPN sicura e con funzionalità interessanti e gratuita WireGuard può fare al caso vostro.
Il software fornisce ottime prestazioni e sicurezza. Per maggiori informazioni e download visitate il seguente sito https://www.wireguard.com/ mentre per il download per i vari sistemi operativi, visitate il seguente sito https://www.wireguard.com/install/
martedì 3 agosto 2021
C# convertire base64 string image in array byte
Il frammento di codice qui di seguito, illustra una tecnica di come convertire una stringa di tipo immagine che inizia con "data:image/jpeg;base64," in un array di byte per creare un immagine.
int valore = VariabileString.IndexOf(',') + 1;
byte[] byteArray = Convert.FromBase64String(VariabileString[valore..^0]);
System.IO.File.WriteAllBytes("C:\\Varie\\MioFile.jpg", byteArray);
lunedì 2 agosto 2021
Download gratuito programma di cattura schermo Screenpresso
domenica 1 agosto 2021
Download gioco gratuito Train Sim World 2
Un bellissimo gioco di simulazione in ambito ferroviario quello proposto da epicgames, disponibile gratuite e senza limitazioni.
Il gioco Train Sim World 2, per sistemi operativi Windows, riguarda la gestione e la guida dei treni, il gioco si potrà scaricare gratuitamente fino al 5 agosto 2021 dopo questa data, il download sarà a pagamento.
Per maggiori informazioni e download visitate il seguente sito Train Sim World 2 | Acquistalo e scaricalo subito sull'Epic Games Store