sabato 31 maggio 2025

TypeScript break out loop for

Nel linguaggio TypeScript, se vogliamo uscire da un ciclo for, dobbiamo utilizzare la parola chiave Break,
Di seguito si riporta un frammento di codice di esempio.

TypeScript:
 for (let index = 0; index < 30; index++) {
      if(index==5)
      {
        //Codice
        break;

      }
      console.log(index);
    }
    console.log('codice');

venerdì 30 maggio 2025

Download immagini gratuite con intelligenza artificiale aiuphouse

 


Un ottimo sito nel quale scaricare gratuitamente e senza registrazioni, le immagini create tramite intelligenza.

Il sito aiuphouse permette di ricercare e scaricare senza registrazione e senza lasciare email, immagini create dall'intelligenza artificiale, ed utilizzare liberamente.

Per maggiori informazioni visitate il seguente sito AI Up House - Dive into the World of AI Images

giovedì 29 maggio 2025

Sito online per la condivisione di video ed immagini

 

free hosting video ed immagini

Un sito che offre numerosi funzionalità  per la condivisione dei file di tipo immagine e video.

Il sito mette a disposizione gratuitamente e senza registrazione, la possibilità a tutti gli utenti di condividere video ed immagini. 

I siti sono:

https://imagekit.io/tools/free-image-hosting/ 

https://imagekit.io/tools/free-media-hosting/

https://imagekit.io/tools/free-video-hosting/



mercoledì 28 maggio 2025

Sito online per rimuovere lo sfondo dalle immagini imagekit

 

rimuovere sfondo imagekit

Il sito https://imagekit.io/tools/remove-background/ permette tramite l'intelligenza artificiale, di rimuovere dalle immagini lo sfondo.

Il sito è in lingua inglese, ma facilmente utilizzabile.


martedì 27 maggio 2025

Gestione del codice sorgente tramite GitFiend per GIT software gratuito

 


Un software gratuito e multi piattaforma per la gestione del codice sorgente, parliamo di GitFiend , che permette di gestire vari aspetti dei repository GIT.

Il software si può installare per vari sistemi operativi.

Per maggiori informazioni e download visitate il seguente sito https://gitfiend.com/

mercoledì 21 maggio 2025

Sito gratuito per il trasferimento dei file wormhole

 


Il sito wormhole è un ottimo portale gratuito ed in lingua italiana per trasferire i file. Il sito, non richiede ne email e ne account, una volta caricato il file, verrà generato un link, il quale è possibile condividere con le persone.

Un sito molto ben fatto e facile da utilizzare per il trasferimento dei file.

Il sito è visibile qui Wormhole - Condivisione di file semplice e privata

martedì 20 maggio 2025

C# Entity Framework la gestione di un valore Json in un campo di Sql Server

 



Descrizione

In questo articolo, vedremo come gestire un dato di tipo “Json” in un database Sql Server , utilizzando il linguaggio di programmazione C# ed il Framework Entity Framework Core 9.

L’articolo vuole illustrare la tecnica di salvataggio di un dato, di tipo Json e la relativa lettura, il tutto tramite un progetto di tipo Windows Application in 


Stesura del codice

Supponiamo di avere due tabelle, una denominata Anagrafica e l’altra Prodotti, in cui nella tabella Prodotti, vorremmo mettere il valore json dell’entità Anagrafica nel campo “Note”.

Di seguito si riporta l’istruzione Insert per l’inserimento del dato, dove nel campo “Note”, verrà inserito un valore di tipo Json relativo all’entità Anagrafica.


C#

Anagrafica anagrafica = new Anagrafica();

 anagrafica.Nome = "Luigi";

 anagrafica.Cognome = "Cristaldi";

 

 Prodotti prod = new Prodotti () {

     Descrizione = "Sistemista",

     Note = JsonSerializer.Serialize(new Anagrafica() { Nome = anagrafica.Nome, Cognome = anagrafica.Cognome })

 

 };

 

 DatiContext dati = new DatiContext();

 dati.Anagraficas.Add(anagrafica);

 dati.Prodottiis.Add(prod);

 dati.SaveChanges();

Il dato sarà inserito in un campo di tipo varchar ma nella formattazione Json.
Per eseguire una query “SQL”, apriamo il Management Studio di Microsoft Sql Server, ed eseguiamo la seguente query


SELECT TOP (1000)   [Descrizione], [Note]

FROM [Dati].[dbo].[ Prodotti]

WHERE ISJSON(COALESCE([Note], '{}')) = 1

AND JSON_VALUE(COALESCE([Note], '{}'), '$.Nome') = 'luigi';

Oppure questa


SELECT TOP (1000)   [Descrizione], [Note]

FROM [Dati].[dbo].[Prodotti]

WHERE ISJSON([Note]) = 1

AND JSON_VALUE([Note], '$.Nome') = 'luigi'

AND [Note] IS NOT NULL

AND [Note] <> '';


Il risultato sarà come riportato in figura 1



Figura 1 – Il risultato della query



Tramite la funzione “Json_value” possiamo eseguire le query di tipo Json, mentre con il parametro    “ISJon” verifica la correttezza del campo nella lettura della tabella, se è di tipo Json oppure no.
Gli altri parametri servono da escludere nella ricerca quei campi che non hanno un valore.
Nel caso che si vuole eseguire una query tramite Entity Framework,  per estrapolare il valore del dato salvato come Json, tramite il metodo “contains” possiamo rilevare il valore.

Si riporta il frammento di codice che estrapola i record che hanno per nome il valore “Luigi”.

C#

DatiContext dati = new DatiContext();

 var jsonProdotti = dati.Prodotti

     .Where(p => p.Note.Contains("\"nome\":\"Luigi\"")).ToList();




Conclusioni
L’articolo ha voluto fornire una breve introduzione nella gestione dei dati di tipo Json, nei campi di un database Sql Server, eseguendo le varie query tramite l’ultima versione Entity Framework Core 9.
Un modo per gestire i dati in un formato sempre più utilizzato e che trova ampio utilizzo in vari ambiti.

lunedì 19 maggio 2025

C# creazione di un task pane in .Net 9 con VSTO per Microsoft Word

Introduzione

In questo articolo vedremo come creare un task panel con la tecnologia .Net 9, tramite il linguaggio di programmazione C# ed il modello VSTO.
Il componente aggiuntivo che verrà creato permetterà di visualizzare sulla destra del programma di video scrittura più conosciuto al mondo, Microsoft Word, un panellino con una scritta, il tutto come mostrato in figura 1.


creazione taskpanel in .Net e VSTO


Figura 1 – Il panello laterale che verrà creato



Creazione del progetto

Tramite l’ambiente di sviluppo Visual Studio 2022 Community, si crea un nuovo progetto tramite il linguaggio C#, in particolare per Microsoft Office, scegliendo come progetto “Componente aggiuntivo VSTO per Word”, il tutto come in figura 2.



creazione taskpanel in .Net e VSTO
Figura 2  - La scelta del tipo del progetto.

Dopo aver scelto il progetto, facciamo click sul pulsante “Avanti”, in modo che passiamo alla scelta della versione del Framework, selezioniamo l’ultima versione, nel momento in cui stiamo scrivendo l’articolo la versione è la 4.8.1, al nome e percorso del progetto in cui salvare il componente.
Impostiamo il nome al nostro progetto, e facciamo click sul pulsante “Crea”, in questo modo verrà creato il progetto.
Una volta creato il progetto, occorre creare il pannello personalizzato, in particolare, visualizzeremo un controllo personalizzato, detto “UserControl”, che per coloro che programmano in ambito Windows Application, già conoscono.
Dalla finestra “Esplora soluzione”, facciamo click sul nome del progetto con il testo destro, e dal menu che viene visualizzato, selezioniamo la voce “Controllo utente (Windows Forms)”, il tutto come mostrato in figura 3. 



creazione taskpanel in .Net e VSTO
Figura 3 – La scelta del controllo utente



Dalla finestra che viene aperta, impostiamo il nome con il valore “PannelloPersonalizzato.cs”, e facciamo click sul pulsante “Aggiungi”, in questo modo verrà creato il controllo utente.
Aggiungiamo al controllo appena inserito un controllo di tipo Label, e nella proprietà “Text”, impostiamo il valore “PanelloPersonalizzato”, il tutto come mostrato in figura 4.



creazione taskpanel in .Net e VSTO
Figura 4 – Il pannello personalizzato

Stesura del codice

Terminata la creazione del progetto e l’aggiunta di un controllo personalizzato, non resta che scrivere il codice.
Facciamo doppio click sul file “ThisAddIn.cs” in modo che passiamo in visualizzazione codice nei vari eventi.


In alto, sopra nella dichiarazione dello spazio dei nomi, inseriamo lo spazio dei nomi riguardante i tools di Office, di seguito si riporta il frammento di codice delle suddette operazioni.


C#

using Microsoft.Office.Tools;

 


A livello di variabile globale, dopo la dichiarazione di classe, scriviamo la dichiarazione di un oggetto   di tipo “CustomTaskPanel”, il tutto come riportato qui di seguito.


C#

private CustomTaskPane ctpTaskPanelPersonalizzato;


Questa variabile ci permette di gestire il taskpanel, in particolare aggiungere al documento “Word” il pannello personalizzato.
Nell’evento Startup, dobbiamo aggiungere il riferimento al controllo personalizzato in precedenza, che sarà usato come Task Panel, e tramite l’oggetto di tipo “CustomTaskPanel” creato a livello globale, lo inseriamo nel documento word, impostando la proprietà visibile a true.
Di seguito si riporta il frammento di codice delle suddette operazioni.


C#

private void ThisAddIn_Startup(object sender, System.EventArgs e)

{

    //Crea un'istanza del controllo creato

    var taskPanelPersonalizzato = new    PannelloPersonalizzato();

    // Aggiungi il CustomTaskPane

    ctpTaskPanelPersonalizzato = this.CustomTaskPanes.Add(taskPanelPersonalizzato, "Pannello Attività Personalizzato");

    //Mostra il pannello

    ctpTaskPanelPersonalizzato.Visible = true;

           

}


Si riporta il codice completo, comprensivo del codice di default inserito durante la generazione del progetto.

C#

using Microsoft.Office.Tools;

 

 

namespace WordAddInDemo

{

    public partial class ThisAddIn

    {

        private CustomTaskPane ctpTaskPanelPersonalizzato;

        private void ThisAddIn_Startup(object sender, System.EventArgs e)

        {

            //Crea un'istanza del controllo creato

            var taskPanelPersonalizzato = new    PannelloPersonalizzato();

            // Aggiungi il CustomTaskPane

            ctpTaskPanelPersonalizzato = this.CustomTaskPanes.Add(taskPanelPersonalizzato, "Pannello Attività Personalizzato");

            //Mostra il pannello

            ctpTaskPanelPersonalizzato.Visible = true;

         

        }

 

        private void ThisAddIn_Shutdown(object sender, System.EventArgs e)

        {

             

        }

 

        #region Codice generato da VSTO

 

        /// <summary>

        /// Metodo necessario per il supporto della finestra di progettazione. Non modificare

        /// il contenuto del metodo con l'editor di codice.

        /// </summary>

        private void InternalStartup()

        {

            this.Startup += new System.EventHandler(ThisAddIn_Startup);

            this.Shutdown += new System.EventHandler(ThisAddIn_Shutdown);

        }

       

        #endregion

    }

}

 



Questo codice permette all’avvio del documento di Microsoft Word, di aprire il taskpanel personalizzato.



Conclusioni

L’articolo ha voluto illustrare al lettore, la possibilità di personalizzare il programma di video scrittura più usato al mondo, Microsoft Word, aggiungendo un pannello personalizzato, un task panel come viene definito tecnicamente, per migliorare l’operativo della videoscrittura.
Le potenzialità offerte dalla tecnologia .Net e da VSTO, offrono al programmatore, la possibilità di estendere il pacchetto Microsoft Office, con funzionalità anche complesso, scrivendo poche righe di codice.

sito online per la creazione gratuita di immagini tramite intelligenza artificiale dezgo

 


Text-to-image - Online Free AI Image Generator - Dezgo è un ottimo sito in lingua inglese, che senza registrazione e senza email, permette la creazione di immagini tramite l'intelligenza artificiale, digitando anche il testo in lingua italiana.

Un sito molto ben fatto che genera immagini gratuitamente con possibilità di scaricarli.


domenica 18 maggio 2025

Sito online per rimuove lo sfondo delle immagini con l'intelligenza artificiale sito gratuito craiyon

 


Il sito craiyon oltre a fornire la possibilità di creare immagini, permette tramite l'intelligenza artificiale, di rimuovere lo sfondo dalle immagini.

Una volta carica l'immagine al quale rimuovere lo sfondo, tramite il pulsante download sarà possibile scaricare l'immagine senza lasciare email e senza avere un account.

Un sito molto ben fatto.

Il sito è visitabile qui https://www.craiyon.com/background-remover

sabato 17 maggio 2025

Corsi gratuiti a Roma di Corso Grafico Multimediale-NFT Corso Segreteria, Marketing e Contabilità 4.0 e Corso BIM Interior

 

corsi gratuiti a Roma

Una serie di corsi gratuiti a Roma aperti a tutti coloro che non lavorano, con il quale migliorare la propria competenza.

Tramite il programma GOL, la società Archibit, organizza una serie di corsi gratuiti, in partenza dal prossimo mese.

Corsi molto interessante di vario genere.

Per maggiori informazioni ed iscrizioni, visitate il seguente sito https://www.archibit.net/corsi/corsi-finanziati/corsi-finanziati-gol-regione-lazio/

Strumento online per il trasferimento dei file e condivisione

 



Il sito Filebin è un sito molto semplice e ben fatto, che permette di trasferire e condividere file. Un valido strumento online gratuito, che non richiede ne registrazione e ne email, per trasferire i file. Dopo aver caricato i file, basterà condividere il link per scaricare i file.




venerdì 16 maggio 2025

TypeScript extend type

In questa serie di esempi di codice con il linguaggio TypeScript, vediamo come estendere i type, ossia i tipi.

Una serie di esempi di vari utilizzi.

Si riporta un esempio di come estendere un type, in modo che il type Nominativo avrà una nuova proprietà ereditata dal type Nome.


TypeScript

type Nome = {

 

  nome: string;

 

}

 

type NOminativo = Nome & {

  cognome: string;

 

}

 

Quando andremo a creare un tipo di tipo Nominativo, avremo due proprietà (nome e cognome) .
Di seguito si riporta il frammento di codice di tale utilizzo.


TypeScript

let nom: NOminativo = {

    cognome: "Maffei",

    nome: "Emanuele"

 

  }

 

console.log(nom);

Possiamo far in modo che un tipo eredita da altri due tipi, un questo modo avrà  le proprietà di entrambi i tipi.

Di seguito si riporta un frammento di codice .

TypeScript

type TipoA = {

  nome: string;

 

};

 

type TipoB = {

  cognome: string;

 

}

 

type Nominativo = TipoA & TipoB;

 

Di seguito il relativo utilizzo.
TypeScript

let dato: Nominativo = {

    cognome: "Maffei",

    nome: "Emanuele"

  };


Possiamo cambiare il tipo di proprietà che stiamo ereditando da altro tipo, un ovveride, tramite la parola chiave “Omit”.
Di seguito si riporta un esempio per cambiare la proprietà anni, da number a string.

TypeScript

type eta = {

  anni: number;

 

}

 

type persona = Omit<eta'anni'& {

 

  anni: string;

 

}

 Di seguito si riporta l’esempio di utilizzo.



TypeScript

let persona: persona = {

   anni: '2'

 

 }