C#

Introduzione ad Azure OpenAI

Introduzione Azure OpenAI Service è una nuova Resource in Azure per fornire l’accesso tramite REST API ai potenti modelli di linguaggio di OpenAI, inclusi i modelli della serie GPT-3, Codex e Embeddings. Questi modelli possono essere facilmente adattati al tuo compito specifico, inclusa la generazione

Lazy Initialization in C#

La Lazy Initialization è una tecnica di programmazione che consiste nell’assegnare un valore a un oggetto solo quando è effettivamente necessario, ritardando la sua inizializzazione fino al momento in cui viene effettivamente utilizzato.Lo scopo è ridurre il consumo di memoria e conseguentemente migliorare le prestazioni,

Principi SOLID. Interface segregation principle

Il Principio di Inversione delle Dipendenze è uno dei cinque principi di progettazione chiamati SOLID. Questi principi, sviluppati da Robert C. Martin, forniscono una guida per la creazione di un software mantenibile, flessibile e di qualità. In questo post, analizzeremo in dettaglio il principio di

Principi SOLID. Interface segregation principle

L’Interface Segregation Principle (ISP) è uno dei cinque principi fondamentali del paradigma SOLID per la programmazione orientata agli oggetti.L’ISP si concentra sulla struttura e l’organizzazione delle interfacce all’interno di un’applicazione, promuovendo l’uso di interfacce più piccole e specifiche invece di interfacce grandi e generiche. L’ISP

Ottenere puntatori a strutture dati di librerie esterne senza boxing

Talvolta è necessario dover interagire con librerie non gestite (DLL esterne) e accedere a delle loro strutture dati che si trovano nella memoria unmanaged.Il metodo PtrToStructure<T> presentato qui fornisce un modo efficiente per ottenere una struct gestita di tipo T da un puntatore IntPtr alla

casting

Casting in C#

Il cast (in particolare il downcasting) permette di esplicitare il tipo di una variabile a quello di una classe figlia o sotto-figlia. Il classico esempio è castare una variabile di tipo object al suo tipo effettivo. Il cast è una operazione comunissima che viene effettuata

semaphoreslim

SemaphoreSlim 101

SemaphoreSlim è una classe che permette la sincronizzazione di n thread che hanno una risorsa (scarsa) condivisa limitandone l’uso ad un numero massimo.

interlocked

Interlocked 101

La sincronizzazione dei thread è un elemento fondamentale nella programmazione asincrona, ne ho infatti parlato in vari post. La soluzione più versatile è sicuramente utilizzare il costrutto lock ma, in alcuni casi, l’utilizzo dei metodi della classe Interlocked permette di ottenere performance decisamente migliori. Questa

Come testare gli eventi

Testare che degli eventi siano stato effettivamente lanciati in C# non è immediato. Tipicamente è possibile testare che un evento venga lanciato aspettando un ManualResetEvent che viene settato in un listener dell’evento stesso. Questo metodo funziona ma risulta un po’ macchinoso; Fluent Assertion risolve il

Codice Pragmatico

Contatti

Per informazioni, dubbi o consulenze non esitate a contattarmi.

Lascia un messaggio

Ricevi le ultime news

Iscrivi alla newsletter

Solo articoli interessanti, promesso ;)