Articoli su c# e il mondo .net

  • Union Types nel costruttore: PHP vs C#

    Union Types nel costruttore: PHP vs C#

    Perché questo articolo PHP 8 ha introdotto i union types—comodissimi nei costruttori perché permettono di accettare più tipi senza duplicare la firma. In C# non esistono union types nativi, ma ci sono pattern idiomatici per ottenere la stessa ergonomia con type safety superiore. In questo articolo vediamo come tradurre la feature, quando conviene farlo e…

  • Perché scegliere Hexagonal Architecture (e non fermarsi a Layered o Clean)

    Perché scegliere Hexagonal Architecture (e non fermarsi a Layered o Clean)

    Introduzione Molti sviluppatori iniziano con la classica Layered Architecture e alcuni tentano la Clean Architecture. Ma quando serve testabilità, manutenibilità e flessibilità, la scelta migliore è spesso la Hexagonal Architecture, nota anche come Ports and Adapters. In questo articolo vedremo: Cos’è l’Hexagonal Architecture? L’Hexagonal Architecture organizza l’applicazione in modo da isolare completamente la business logic…

  • Async/Await : quello che (forse) ti sfugge potrebbe rallentare tutto

    Async/Await : quello che (forse) ti sfugge potrebbe rallentare tutto

    L’introduzione di async/await in C# ha reso la programmazione asincrona molto più accessibile. Tuttavia, per chi lavora su sistemi scalabili, concurrent o ad alte prestazioni, usarli “alla leggera” può introdurre rallentamenti, memory leak o comportamenti imprevedibili. In questo articolo vediamo cosa succede realmente dietro la keyword async, perché ogni metodo asincrono ha un costo, e…

  • Microservizi in C#:  quando usare un API Gateway con Ocelot

    Microservizi in C#: quando usare un API Gateway con Ocelot

    I microservizi sono diventati uno standard de-facto per costruire sistemi scalabili e autonomi. In ambito .NET/C#, l’ecosistema offre tooling maturo per deploy containerizzato, osservabilità e integrazioni cloud. In questo articolo vediamo linee guida pratiche e valutiamo pro/contro dell’uso di un API Gateway con Ocelot. Perché usare i microservizi (e quando evitarli) Vantaggi Svantaggi Regola d’oro:…

  • Cosa sono i channels in c#?

    Cosa sono i channels in c#?

    1. Introduzione Nelle applicazioni .NET moderne, specialmente quelle con high concurrency o asynchronous workflows, è comune dover scambiare dati tra parti diverse del sistema in modo sicuro e senza introdurre colli di bottiglia.I C# Channels, introdotti in .NET Core 3.0 (System.Threading.Channels), offrono un approccio performante e thread-safe per implementare il pattern Producer/Consumer in memoria. 2.…

  • Pattern Avanzati di Programmazione: Riutilizzo, Flessibilità e Architetture a Low Coupling

    Pattern Avanzati di Programmazione: Riutilizzo, Flessibilità e Architetture a Low Coupling

    Nel mondo dello sviluppo moderno, la capacità di scrivere codice riutilizzabile, flessibile e facilmente testabile è un tratto distintivo degli sviluppatori senior. Architetture solide si basano su due principi cardine: In questo articolo esploreremo come usare Dependency Injection (DI) e IoC in modo avanzato, applicando pattern flessibili e reali in ambienti enterprise complessi. 1. Dependency…

  • Clean Code nelle PR: guida essenziale

    Clean Code nelle PR: guida essenziale

    Nel lavoro quotidiano di uno sviluppatore senior, la revisione del codice (PR Review) è una delle attività più strategiche e frequenti. Non si tratta solo di approvare righe di codice, ma di contribuire attivamente alla qualità complessiva del software, migliorando leggibilità, manutenibilità e coerenza dell’intero progetto. Questa guida raccoglie alcuni dei principi da tenere sempre…

  • Come diventare un programmatore senior

    Come diventare un programmatore senior

    Quali sono gli elementi essenziali per diventare un programmatore senior? Cosa si intende per “seniority”? Quello che è certo è che il titolo di programmatore senior non è legato al tempo per il quale si è programmato. Ho incontrato spesso dei programmatori “veterani” ma che avevano uno stile di programmazione e un background non definibili…

  • Quali sono le decisioni migliori quando si sceglie un tipo di architettura software?

    Quali sono le decisioni migliori quando si sceglie un tipo di architettura software?

    Con il tempo ho imparato che prendere la decisione giusta non significa solo avere competenze tecniche. Bisogna saper valutare i compromessi, pensare agli effetti a lungo termine e collaborare efficacemente con gli altri. In questo articolo voglio condividere come affronto il design architetturale di un sistema software e come prendo decisioni difficili.Spoiler: non esiste quasi…

  • API ASP.NET Core con EF Core e SQL Server errori da evitare

    API ASP.NET Core con EF Core e SQL Server errori da evitare

    Quando si implementano delle API con .net Core utilizzando Entity Framework, alcuni problemi di prestazioni non dipendono dalla logica ma come si utilizzano le chiamate ad Entity Framework. Di seguito alcune regole base da rispettare per evitare problemi di prestazioni. 1. Recupera solo i dati necessari (proiezioni) ❌ Errato: — recuperi TUTTE le colonne (nome,…