SimpleChat: un template Blazor provider-agnostico per chat AI con .NET 10 Aspire
SimpleChat è un template open-source Blazor + .NET 10 Aspire che gestisce quattro provider AI (OpenAI, Azure OpenAI, Anthropic, Google AI) tramite un unico IChatClient, pronto per essere...
LINQ in C#: guida completa alle operazioni di aggregazione (Count, Sum, MinBy, MaxBy, Aggregate)
Guida pratica alle operazioni di aggregazione LINQ in C#: dalla trappola Count vs Any, a MinBy/MaxBy di .NET 6, ai fold multi-valore con Aggregate, fino ai nuovi CountBy...
Costruire un MCP Server in C#: agenti AI con contesto reale usando il Model Context Protocol
Il Model Context Protocol (MCP) è lo standard aperto per collegare agenti AI a dati e strumenti personalizzati. Vediamo come costruire un MCP Server in C# con l'SDK...
CQRS senza MediatR: implementare Command e Query handler in .NET con il DI container
MediatR è passato a licenza commerciale e molti team .NET stanno cercando alternative. Buone notizie: CQRS è un pattern, non una libreria. Ecco come implementare command e query...
Pattern matching in C#: scenari avanzati che probabilmente non conosci
Il pattern matching in C# offre molto più dei semplici controlli di tipo. Esploriamo i pattern avanzati — property, list, relational, switch expression — con esempi pratici per...
Deserializzazione JSON sicura in .NET 10: guida completa a JsonSerializerOptions.Strict
.NET 10 introduce JsonSerializerOptions.Strict, un preset che attiva cinque protezioni di sicurezza in System.Text.Json: proprieta' duplicate, campi non mappati, nullable, parametri obbligatori. Guida pratica con esempi di codice...