martedì 24 marzo 2026

Spazio web gratuito che supporta Asp.Net free hosting Asp.Net

Di seguito si riportano una serie di siti, che offrono gratuitamente spazio web che supporti la tecnologia Asp.Net. Alcuni anche con database Microsoft Sql Server.













lunedì 23 marzo 2026

Strumento online per la creazione di slide di foto con slideshow

 

creazione di slide

Un sito molto ben fatto, e facile di utilizzo per la creazione di slide con le foto.

Il sito in lingua inglese https://slideshow-maker.io/ permette la creazione gratuita, senza registrazione e senza email, di creare dei video di galleria immagini aggiungendo delle immagini di proprio interesse.

Il sito è facile da utilizzare e con valide funzionalità, inoltre priva di pubblicità invasiva. 

Sito molto ben fatto.

C# creazione di un file word (docx) con .Net 9 ed openXML

In questo articolo, vedremo come creare un semplice documento Word, di tipo .docx, con la tecnologia .Net 9 (ma si può applicare anche a versioni precedenti) utilizzando il linguaggio di programmazione C# e il pacchetto nuget openXML.
Questo componente permette la creazione e gestione dei file Word, permettendo crearli o modificarli.

Creazione del progetto

Si crea un nuovo progetto .Net utilizzando l'ambiente di sviluppo Visual Studio 2022 Community, oppure aprire un progetto esistente. Come versione del Framework, usiamo l'ultima versione in cui stiamo scrivendo l'articolo, la versione .Net 9.
Selezioniamo come tipo di progetto "Windows Application".

Al progetto aggiungiamo un controllo tipo "Button", questo controllo, all'evento click permetterà la creazione del file Microsoft Word.
Aggiungiamo al progetto il riferimento alla libreria "DocumentFormat.OpenXml" il tutto come mostrato nella figura seguente

Creazione di un file Word con .Net e C#



Stesura del codice

Terminata la creazione del progetto, non resta che scrivere il codice, per creare un documento Word ed inserire del testo al suo interno.
Passiamo in visualizzazione codice, ed in alto, sopra ad ogni dichiarazione, dove si inseriscono i vari spazio dei nomi (namespace), aggiungiamo quelli per la gestione di Microsoft Word.

Di seguito si riporta il frammento di codice delle suddette operazioni


C#

using Text = DocumentFormat.OpenXml.Wordprocessing.Text;

 




Passiamo in visualizzazione grafica, e facciamo doppio click sul pulsante in modo che permette da passare i visualizzazione codice dell'evento click del controllo.
La classe WordProcessingDocument, permette di gestire i file di Microsoft Word , mentre la classe MainDocumentPart, fornisce la gestione del singolo documento Word, nel quale tramite le classi "Paragraph" e "Text" possiamo gestire il contenuto del documento

Di seguito si riporta il frammento di codice per la creazione di un documento Word, nel quale impostare del testo.


C#

private void BtnWord_Click(object sender, EventArgs e)

 {

     try

     {

 

         string filePath = "C:\\Varie\\DocumentoWordOpenXML.docx";

 

             

         //Creazione del documento documento Word

         using (WordprocessingDocument wordDocument = WordprocessingDocument.Create(filePath, DocumentFormat.OpenXml.WordprocessingDocumentType.Document))

         {

             //Gestione del documento principale

             MainDocumentPart mainPart = wordDocument.AddMainDocumentPart();

             mainPart.Document = new Document();

             Body body = new Body();

 

             //Creazione del paragrafo con del testo

             Paragraph paragraph = new Paragraph();

             Run run = new Run();

             Text text = new Text("Benvenuti nella creazione di documenti Word");

 

             //Struttura del documento

             run.Append(text);

             paragraph.Append(run);

             body.Append(paragraph);

             mainPart.Document.Append(body);

             mainPart.Document.Save();

         }

 

     }

     catch (Exception ex)

     {

         MessageBox.Show(ex.Message);

     }

 }




Ora non resta che seguire il codice e fare click sul pulsante per verificare il codice appena scritto.

Nel caso che invece si vuole formattare la scritta, con lo stile in corsivo, grassetto ed allineato al centro, tramite le classi "ParagraphProperties", "RunProperties",  possiamo applicare diverse formattazione.

Di seguito si riporta una funzione, che richiamandola dal pulsante, crea un documento con il testo al centro, grassetto, in corsivo ed allineato al centro. 

C#

private void CreaDocxConFormattazione(string NomeFile)

 {

     try

     {

 

               

         using (WordprocessingDocument wordDocument = WordprocessingDocument.Create(

     NomeFile, WordprocessingDocumentType.Document))

         {

             MainDocumentPart mainPart = wordDocument.AddMainDocumentPart();

             mainPart.Document = new Document();

             Body body = new Body();

 

             //Gestione del paragrafo con formattazione al centro

             ParagraphProperties paragraphProperties = new ParagraphProperties(

                 new Justification() { Val = JustificationValues.Center });

 

             //Imposta lo stile del testo

             RunProperties runProperties = new RunProperties(

                 new Bold(),                       // Grassetto

                 new Italic(),                     // Corsivo

                 new FontSize() { Val = "28" },    // 28 = 14pt (misura in half-points)

                 new RunFonts() { Ascii = "Calibri" } // Font Calibri

             );

 

             //Imposta il testo

             Text text = new Text("Benvenuti nella creazione di documenti Word");

 

             //Prepara il documento

             Run run = new Run();

             run.Append(runProperties);

             run.Append(text);

 

             Paragraph paragraph = new Paragraph();

             paragraph.Append(paragraphProperties);

             paragraph.Append(run);

 

             body.Append(paragraph);

             mainPart.Document.Append(body);

             mainPart.Document.Save();

         }

 

     }

     catch (Exception ex)

     {

         MessageBox.Show(ex.Message);

     }

 

           

       

 }


Di seguito il frammento di codice che esegue la funzione precedente,  da richiamare nell'evento click del pulsante.

C#

private void BtnWord_Click(object sender, EventArgs e)

{

    try

    {

        string filePath2 = "C:\\Varie\\DocumentoWordOpenXML2.docx";

 

        CreaDocxConFormattazione(filePath2);

             

         

 

    }

    catch (Exception ex)

    {

        MessageBox.Show(ex.Message);

    }

}




Conclusioni

L'articolo ha fornito al lettore le basi per la gestione e creazione di un file Microsoft Word, il programma di video scrittura più utilizzato al mondo che offre ottime prestazioni. Tramite la classi presenti in Document OpenXML, possiamo gestire  con semplicità i file Word, e dotare i progetti per la gestione dei file docx, il tutto senza utilizzare componenti di terzi parti o particolari librerie. 

domenica 22 marzo 2026

C# Windows Forms eseguire il suono predefinito di Windows tramite .NET 10

Nel caso che abbiamo la necessità di eseguire il suono predefinito di Windows (da non confondere con il beep del pc) con cui viene indicato una determinata azione, per esempio quel suono che viene eseguito quando alziamo o abbassiamo il volume del sistema operativo, tramite il metodo play della sottoclasse beep di SystemSounds, possiamo emettere il suono predefinito.
In questo frammento di codice del linguaggio di programmazione C#, in un progetto di tipo Windows Forms, di .NET 10, vediamo come eseguire tale suono.

Inserire il seguente spazio dei nomi, in alto alla form sopra ad ogni dichiarazione .

C#

using System.Media;


Nell'evento click di un pulsante o nell'evento load della form, eseguire il suono predefinito tramite il metodo play, di seguito il frammento di codice delle suddette operazioni.


C#

SystemSounds.Beep.Play(); //Esegue il suono predefinito di Windows


C# eseguire il beep del computer in .NET 10 e progetto Windows forms

Tramite il metodo "Beep" della classe Console, possiamo eseguire il beep del computer (non il suono predefinito di Windows) ,  in .NET 10, tramite il linguaggio di programmazione C#.
Il beep, è quel suono comune dei pc, spesso avvertito quando c'è un blocco applicativo oppure non si trova un elemento.
Il metodo fornisce due modalità, uno senza parametri, ed con i parametri, in quest'ultimo caso  i parametri riguardano il primo la frequenza ed il secondo la durata.

Di seguito l'esempio di codice.


C#

Console.Beep();

 Oppure con parametri, impostando frequenza e durata

Console.Beep(900, 800); // Frequenza 900 Hz, durata 800 ms


Windows 11 trovare le immagini di sfondo del desktop quando impostato “Contenuti in evidenzia di Windows”.

Nel caso che si imposta lo sfondo del desktop con la scelta “Contenuti in evidenzia di Windows”, come mostrato nella figura qui di seguito, avremo di volta in volta, una diversa immagine per ogni giorno.


immagini di sfondo del desktop contenuti in evidenzia di Windows
Figura 1 – La scelta della personalizzazione dello sfondo.

Questa opzione di norma è di default quando si acquista un nuovo pc, ed almeno che non la si cambia con altre impostazioni o con qualche sfondo di nostro interesse, avremo ogni giorno una nuova immagine come sfondo del desktop.
Di norma sul desktop troveremo un icona con la scritta “Scopri di più su questa immagine”, come riportato in figura 2.


immagini di sfondo del desktop contenuti in evidenzia di Windows
Figura 2 – L’icona che fornisce informazioni sull’immagine

Questa icona, permette di aprire una pagina web con le informazioni dello sfondo, quando si fa click.
Se desideriamo trovare le immagini che vengono visualizzate di volta in volta sullo sfondo del desktop, dobbiamo trovarle nelle sottocartelle che si trovano all’interno della cartella IrisService.
La prima cosa da fare è abilitare la visualizzazione delle cartelle nascoste, perché sono cartelle che di norma non sono visibili.
Il percorso preciso è il seguente.


C:\Users\NomeUtente\AppData\Local\Packages\MicrosoftWindows.Client.CBS_cw5n1h2txyewy\LocalCache\Microsoft\IrisService

Dove “NomeUtente”, è il nome con cui si è fatto l’accesso al pc.
Si può accedere anche con il seguente comando dalla finestra di ricerca.

%LocalAppData%\Packages\MicrosoftWindows.Client.CBS_cw5n1h2txyewy\LocalCache\Microsoft\IrisService 

Nel caso che non è presente la cartella IrisService, oppure le sottocartelle, vuol dire che l’opzione dello sfondo del desktop non è impostato su “Contenuti in evidenzia di Windows”, oppure non sono trascorsi circa 24 ore da quando si è impostata.

Le sottocartelle contenenti le immagini, di norma sono nominate con un numero lungo, tipo come quelle di seguito, ed il numero può variare.

immagini di sfondo del desktop contenuti in evidenzia di Windows
Figura 3 – Le cartelle contenenti le immagini.

A questo punto una volta entrati nelle sottocartelle, saranno visibili immagini in vari due formati, per ogni immagine, come riportato qui di seguito.


immagini di sfondo del desktop contenuti in evidenzia di Windows
Figura 4 – Le immagine delle cartelle, per lo sfondo del desktop.



Angular material impostare in pageSizeOptions del controllo mat-paginator del testo che indica visualizza tutti i record con TypeScript

Utilizzando il controllo mat-paginator di Angular Material può capitare l'esigenza di personalizzare i valori presenti pageSizeOptions con del testo, il tutto come mostrato qui di seguito.

angular materiale impostare una voce personalizzata per mat-paginator
La voce personalizzata

Supponiamo di voler visualizzare il testo "tutti" tra i vari elementi da visualizzare nella pagina di una Table, che al click visualizzi tutti i record, tramite questa tecnica possiamo impostare dei valori personalizzati.

Nel file di stile (scss) del componente, inseriamo gli stili di override del controllo. Di seguito il frammento di codice delle suddette operazioni.

Component.scss

  ::ng-deep mat-option:last-child:before{

    content: 'Tutti';

  }

  ::ng-deep mat-option:last-child .mat-option-text{

    display: none;

  }

 

Dopo aver modificato il file di stile, scriviamo del codice nella parte .ts, in particolare  un metodo che restituisce le varie voci.

Component.ts

    getPageSizes(): number[] {

         

          return [5, 10, 20, this.totaleRecords];

       

      }

 Dove TotaleRecords è una variabile di tipo number, che contiene il numero di tutti i record rilevati da un servizio web.

Sopra, in alto, nella parte delle dichiarazioni, scriviamo il seguente codice.


 

  @ViewChild(MatPaginator)

    paginator: MatPaginator;

Ora non resta che modificare il codice html, in particolare caricare i dati nella combo, dopo che il servizio restituisca i dati.

Di seguito il frammento di codice di esempio.





Component.html
 

   <mat-paginator #paginator

                               showFirstLastButtons

                               [pageSize]="pageSize"

                               [pageIndex]="pageIndex"

                               [pageSizeOptions]="!loading ? getPageSizes() : [5, 10, 20]"

                               [length]="totaleRecords"

                               (page)="pageChanged($event)">

                </mat-paginator>

 


Nel controllo sarà visibile la voce "tutti".