Cómo compartir la lógica de validación entre el servidor y Blazor WebAssembly
La mayor fuente de divergencia en la validación entre un cliente Blazor WebAssembly y una API ASP.NET Core es la tentación de escribir las reglas dos veces. Esta guía recorre la única estructura que escala en .NET 11: una biblioteca de clases Shared que posee los DTO y sus validadores, consumida por el cliente WASM (EditForm + DataAnnotationsValidator o Blazored.FluentValidation) y por el servidor (filtro de endpoint en minimal API o model binding de MVC), con un viaje de ida y vuelta probado que vuelca los ValidationProblemDetails del servidor en el EditContext.