Best of .NETMarch 2026

  1. 1
    Article
    Avatar of dotnet.NET Blog·10w

    Extend your coding agent with .NET Skills

    Microsoft's .NET team has launched dotnet/skills, a GitHub repository hosting agent skills for .NET developers. Agent skills are lightweight packages bundling intent, task-specific context, and supporting artifacts that coding agents like GitHub Copilot and Claude Code can discover and use to complete tasks more reliably. The repo follows the Agent Skills specification and is organized as a plugin marketplace. Skills can be installed via CLI commands or VS Code Copilot settings. The team validates each skill against a baseline to measure whether it actually improves agent responses, and plans to iterate based on community feedback.

  2. 2
    Article
    Avatar of avalonia-blogAvalonia UI Blog·9w

    Avalonia for Visual Studio Code

    The Avalonia team has released a preview of a fully rewritten Visual Studio Code extension for Avalonia UI development. Built on a new shared XAML parser that also powers the Visual Studio extension, it brings feature parity between both IDEs. Key improvements include dramatically enhanced IntelliSense with richer completions and x:DataType Quick Info, Go To Definition support, clearer error diagnostics, automatic XAML namespace imports, event handler generation, and a more reliable XAML previewer with better DPI handling and zoom features. Notably, the extension is now part of the paid Avalonia Accelerate subscription and is no longer open-source, though free community licences are available for organizations under €1M in revenue.

  3. 3
    Article
    Avatar of devblogsDevBlogs·11w

    Announcing WinUI Gallery 2.8

    WinUI Gallery 2.8 has been released, adding Windows jump list integration that lets users quickly access favorited or recently viewed samples from the taskbar. The release includes new samples for AppWindow TitleBar customization, jump lists, and improved clipboard operations. Additional improvements include 60+ new Segoe Fluent Icons, accessibility enhancements, upgraded .NET 9 and Windows App SDK 1.85 support, and improved launch performance.

  4. 4
    Article
    Avatar of csharpcornerC# Corner·11w

    LINQ in C#

    An introductory guide to LINQ (Language Integrated Query) in C#. Covers what LINQ is, why it was introduced, and where it can be used. Walks through common LINQ methods including Where, Select, OrderBy, First/FirstOrDefault, Count, Sum, Max, and Min. Compares method syntax vs query syntax, demonstrates a real-world example with a class, and explains the important concept of deferred execution. Also highlights common beginner mistakes.

  5. 5
    Article
    Avatar of atomicobjectAtomic Spin·9w

    C# Finally Has First-Class CLI Scripts in .NET 10

    .NET 10 introduces file-based apps, enabling C# developers to run standalone .cs files directly with `dotnet run file.cs` — no .csproj required. Scripts can reference NuGet packages and existing project files via directives like `#:package` and `#:project`, giving scripts direct access to application domain logic. This fills a long-standing gap in the C# ecosystem (previously addressed only by F#'s `dotnet fsi` or third-party tools), making it practical to maintain a Scripts/ folder for data seeding, format verification, one-off exports, and other utility tasks without creating throwaway console apps or polluting test suites.

  6. 6
    Article
    Avatar of avalonia-blogAvalonia UI Blog·9w

    The Avalonia WebView Is Going Open-Source

    Avalonia is open-sourcing its WebView control as part of the upcoming Avalonia 12 release. Previously a commercial-only feature in the Accelerate tier, the WebView uses native platform web rendering instead of bundling Chromium. The decision reflects that embedding web content has become a standard requirement, making a commercial license feel inappropriate. Existing Accelerate subscribers retain full support, and the commercial offering continues with other advanced tooling and components. The open-source WebView will ship in an Avalonia 12 pre-release and be included in the stable release.

  7. 7
    Article
    Avatar of wearedotnetWe Are .NET·10w

    Minimal APIs After the Hype: What Remains When Boilerplate Is Gone?

    ASP.NET Core Minimal APIs have matured past the hype cycle. Rather than replacing controllers or MVC, they reset the default starting point from complexity to simplicity, forcing developers to consciously justify every abstraction. The piece reflects on what this shift revealed: much of traditional .NET API ceremony was habit rather than necessity. Minimal APIs excel in microservices, edge services, prototyping, and serverless scenarios, but struggle with large domain models and multi-team governance. Their lasting impact is not fewer lines of code but fewer assumptions—making architecture a deliberate decision rather than an inherited default.

  8. 8
    Article
    Avatar of grafanaGrafana Labs·11w

    OpenTelemetry support for .NET 10: A behind-the-scenes look

    Grafana Labs engineers worked with the OpenTelemetry .NET community to deliver native .NET 10 support for the OpenTelemetry instrumentation libraries on the same week as .NET 10's stable release in November 2025. The post covers the value of early preview validation (catching a logging source generator regression before RC2), key changes in the new release including schema URL support for metrics and traces, new ASP.NET Core metrics for authentication, Blazor, and memory pools, and a breaking change where the default trace context propagator switched to W3C. It also flags a binding redirect gotcha for .NET Framework apps using .NET 10 assemblies.

  9. 9
    Article
    Avatar of collectionsCollections·10w

    Microsoft's new AI agents for .NET and Azure modernization: what they actually do

    Microsoft has released two AI agentic tools in public preview targeting application and infrastructure modernization. The `modernize-dotnet` GitHub Copilot custom agent extends .NET modernization workflows to VS Code, CLI, and GitHub, supporting ASP.NET Core, Blazor, Azure Functions, WPF, and more. It follows an assess-plan-execute model and supports custom skills for internal migration patterns. The Azure Copilot migration agent automates discovery, assessment, planning, and deployment for servers, VMs, and databases, aiming to bridge infrastructure and developer workflows. Microsoft claims up to 70% reduction in modernization effort from early customers, though independent validation is lacking. A zero-cost Cloud Accelerate Factory program pairs these tools with expert guidance. Both agents are designed to complement each other but are still in public preview.

  10. 10
    Article
    Avatar of aspnetASP.NET Blog·8w

    Generative AI for Beginners .NET: Version 2 on .NET 10

    Version 2 of the free open-source course 'Generative AI for Beginners .NET' has been released, completely rebuilt on .NET 10. The curriculum is restructured into five focused lessons covering generative AI fundamentals, practical techniques (chat completions, prompt engineering, RAG, function calling), AI application patterns, multi-agent systems using the Microsoft Agent Framework, and responsible AI. The primary AI abstraction has shifted from Semantic Kernel to Microsoft.Extensions.AI (MEAI), which aligns with .NET 10 patterns like dependency injection. RAG samples have been rewritten using native SDKs, 11 legacy Semantic Kernel samples moved to deprecated, and all eight language translations updated.

  11. 11
    Article
    Avatar of dotnet.NET Blog·10w

    .NET 11 Preview 2 is now available!

    .NET 11 Preview 2 has been released, bringing improvements across the runtime, SDK, libraries, ASP.NET Core, Blazor, F#, Entity Framework Core, .NET MAUI, and more. Key highlights include Runtime Async V2, JIT improvements, cached interface dispatch, smaller SDK installers on Linux and macOS, native OpenTelemetry tracing for ASP.NET Core, TempData support for Blazor, OpenAPI 3.2.0 support, SQL Server DiskANN vector search and JSON_CONTAINS() in EF Core, and various .NET MAUI enhancements including TypedBinding performance improvements. F# gains simplified DIM interface hierarchies, overload resolution caching, and new collection utilities.

  12. 12
    Article
    Avatar of milanjovanovicMilan Jovanović·11w

    5 Architecture Tests You Should Add to Your .NET Projects

    Architecture rules documented only in wikis will eventually be violated. Using ArchUnitNET, you can encode those rules as automated tests that run in CI. Five test categories are covered: layer dependency tests (enforcing Clean Architecture's dependency rule), naming convention tests (ensuring handlers and validators follow consistent naming), colocation tests (verifying CQRS command/handler pairs live in the same namespace using raw reflection), visibility tests (enforcing that handlers are internal rather than public), and dependency guard tests (preventing infrastructure libraries like EF Core from leaking into Domain or Application layers). Setup requires a base class that loads all project assemblies, and all tests run in milliseconds without any infrastructure.

  13. 13
    Article
    Avatar of aspnetASP.NET Blog·11w

    Release v1.0 of the official MCP C# SDK

    The Model Context Protocol (MCP) C# SDK has reached v1.0, implementing the 2025-11-25 MCP Specification. Key additions include: enhanced OAuth authorization server discovery with three PRM exposure methods; icon metadata for tools, resources, and prompts; incremental scope consent following the principle of least privilege; URL mode elicitation for secure out-of-band user interactions; tool calling support within LLM sampling requests using Microsoft.Extensions.AI; OAuth Client ID Metadata Documents (CIMD) as a preferred alternative to Dynamic Client Registration; long-running HTTP request handling via SSE polling with DistributedCacheEventStreamStore; and experimental Tasks support for durable state tracking and deferred result retrieval with lifecycle management.

  14. 14
    Article
    Avatar of wearedotnetWe Are .NET·12w

    .NET 10: System.Text.Json Improvements – Anthony Giretti's .NET blog

    Two notable improvements are coming to System.Text.Json in .NET 10. First, duplicate JSON property rejection: previously, deserializing JSON with duplicate keys silently kept the last value; now you can set AllowDuplicateProperties = false on JsonSerializerOptions to throw a JsonException instead, enabling stricter input validation. Second, direct PipeReader integration: rather than bridging a PipeReader to a Stream or manually looping with Utf8JsonReader, you can now pass a PipeReader directly to JsonSerializer.DeserializeAsync, reducing boilerplate and improving performance in high-throughput pipeline scenarios.

  15. 15
    Article
    Avatar of bartwullemsThe Art of Simplicity·11w

    TryParse error when using Minimal APIs

    A gotcha in ASP.NET Core Minimal APIs causes an InvalidOperationException when a service class injected into an endpoint has a non-static TryParse method. Starting from .NET 6, the framework validates the signature of any TryParse method found on parameter types and throws if it doesn't match the expected static binding convention. The fix is simple: rename the method to something other than TryParse so the model binding conventions don't apply.

  16. 16
    Article
    Avatar of freecodecampfreeCodeCamp·8w

    How to Work With Dapper in .Net

    A hands-on guide to using Dapper, a micro-ORM for .NET, to build a Web API backed by PostgreSQL. Covers installation, database seeding, the repository pattern, CRUD operations (query, insert, update, delete), SQL injection protection via parameterisation, batch deletes, transactions, and multi-mapping for JOIN queries. Compares Dapper to Entity Framework, highlighting trade-offs between development speed and execution performance.

  17. 17
    Article
    Avatar of clickhouseClickHouse·11w

    ClickHouse.Driver 1.0.0: The Official .NET Client Hits Stable

    ClickHouse.Driver 1.0.0 is the first stable release of the official .NET client for ClickHouse. It introduces a new `ClickHouseClient` API that replaces ADO.NET classes for most use cases, offering thread-safe, singleton-friendly access with methods for DDL, bulk inserts, streaming queries, and raw format I/O. Key additions include automatic SQL parameter type extraction, JWT authentication, POCO serialization for JSON columns, mid-stream exception detection, QBit vector type support, and automatic query ID generation. The release drops .NET Framework/.NET Standard support (targets net6.0–net10.0), changes DateTime behavior for timezone-less columns, deprecates `ClickHouseBulkCopy`, and changes the JSON write mode default from Binary to String. ADO.NET compatibility is retained for ORM use with Dapper and linq2db.

  18. 18
    Article
    Avatar of wearedotnetWe Are .NET·8w

    What Does "Simple" Really Mean in Enterprise .NET?

    Simplicity in enterprise .NET is not about fewer lines of code or fewer layers — it is about reducing friction over a system's lifetime. The post distinguishes between 'simple' and 'simplistic' designs, arguing that removing structure doesn't eliminate complexity but merely hides it. True simplicity must account for time (how easily a system can be changed), team dynamics (shared cognitive load and consistency), and purposeful abstraction. Architectural patterns like clean architecture, layered architecture, and vertical slices don't guarantee simplicity on their own — what matters is how well they align with the system's actual needs. A more honest definition: simplicity is the quality that allows a system to be understood, changed, and extended with minimal effort over its lifetime.

  19. 19
    Article
    Avatar of aspnetASP.NET Blog·9w

    Pin Clustering in .NET MAUI Maps

    NET MAUI 11 Preview 2 introduces pin clustering for the Map control on Android and iOS/Mac Catalyst. A single property `IsClusteringEnabled="True"` activates automatic grouping of nearby pins into cluster markers with count badges. Pins can be assigned a `ClusteringIdentifier` to form independent clusters by category (e.g., coffee shops vs. parks). A `ClusterClicked` event provides access to the pins in a cluster, their geographic center, and the ability to suppress default zoom behavior. On Android, a custom grid-based algorithm handles clustering; on iOS/Mac Catalyst, native MapKit `MKClusterAnnotation` support is used. The feature is available in .NET 11 Preview 2 with sample code in the maui-samples repository.

  20. 20
    Video
    Avatar of zoranhorvatZoran Horvat·9w

    Why C# Refuses to Compare Collections

    C# compares collections by reference rather than by value, and this design decision is intentional. There is no single correct definition of collection equality: two collections could be considered equal if they contain the same elements in the same order (sequence equality), or the same elements regardless of order (content/multiset equality). The post demonstrates implementing custom IEqualityComparer classes — a SequenceComparer using LINQ's SequenceEqual and a ContentComparer that sorts before comparing — to show how developers can define equality themselves. It also highlights performance implications (O(n) for sequence, O(n log n) for content comparison vs. O(1) for reference) and the fundamental problem of defining equality on mutable objects, which can lead to stale or incorrect equality flags after mutation.

  21. 21
    Article
    Avatar of jbogardThe Barley Architect·11w

    AutoMapper 16.1 and MediatR 14.1 Released

    Jimmy Bogard has released AutoMapper 16.1 and MediatR 14.1 as part of regular quarterly releases. AutoMapper 16.1 adds support for factories and conditions to use dependencies (previously limited to Func-based callbacks). MediatR 14.1 adds support for complex generic hierarchies and includes several bug fixes. Both packages are available on NuGet. AutoMapper also hit the milestone of 1 billion downloads.