Categoria: programmazione .net e c#

  • 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,…

  • Registrazione e RBAC in .net API c#

    Registrazione e RBAC in .net API c#

    Nell’articolo precedente ci siamo occupati di aggiungere JWT per l’autorizzazione alle risorse API. In questo articolo vedremo come aggiungere la gestione degli utenti e proteggere gli ending point delle api con autenticazione, autorizzazione e ruoli. Per semplificare definiamo i seguenti ruoli: La parte di creazione del model, del repository e degli useCases segue quanto visto…

  • Aggiungere JWT ad un applicazione .net Core

    Aggiungere JWT ad un applicazione .net Core

    In questo articolo ho iniziato a descrivere il mio viaggio nello sviluppo di un’applicazione API .net. Gli ultimi giorni li ho passati a capire come aggiungere l’autenticazione tramite token JWT. Non è stato semplice o meglio non riuscivo a capire il perchè dopo aver implementato tutto il necessario ricevessi l’errore “invalid_token”. Dopo qualche sessione di…

  • Applicazione per gestire le ore

    Applicazione per gestire le ore

    Iniziamo l’anno con lo sviluppo di un’applicazione per gestire il log delle ore spese sui progetti dei clienti. E’ un’applicazione che utilizzerò come studio. Quello che vorrei realizzare è un’applicazione che gestisce: Le tecnologie che voglio sperimentare sono: Iniziamo dalla parte che conosco meglio .net Core API. .net Core Api architettura Iniziamo dall’architettura dell’applicazione. Per…