.NET
10 - Novidades do Blazor
![]() |
Neste artigo vou apresentar um resumo das principais novidades previstas para o .NET 10 relacionadas ao Blazor. |
O .NET 10, previsto para novembro de 2025, traz aprimoramentos significativos ao Blazor, incluindo ganhos de desempenho, produtividade para desenvolvedores e capacidades cross-platform, consolidando-o como uma opção ainda mais versátil para o desenvolvimento de aplicações web modernas.
Exemplos de segurança usando Blazor Web App
Foram adicionados e atualizados os exemplos de segurança interligados
Blazor Web App nos seguintes artigos:
Garantir a segurança de um ASP.NET Core com OpenID Connect (OIDC)Blazor Web App
Proteger um ASP.NET Core Blazor Web App com o Microsoft Entra ID
Proteger um ASP.NET Core Blazor Web App com a Autenticação do Windows
Todas as soluções de exemplo OIDC e Entra agora incluem um projeto de API
Web separado (MinimalApiJwt) para demonstrar como configurar e
chamar uma API Web externa com segurança. O uso de APIs Web é demonstrado com um
manipulador de token e um cliente HTTP nomeado para o provedor de identidade
OIDC ou para pacotes/API Web da Microsoft Entra ID.
As soluções de
exemplo são configuradas no código C# nos arquivos Program. Para configurar as
soluções a partir de arquivos de configurações de aplicativo (por exemplo,
appsettings.json), consulte a seção nova sobre a configuração de fornecimento
utilizando o provedor de configuração JSON (configurações de aplicativo) nos
artigos OIDC ou Entra.
Os exemplos do Entra também incluem novas
diretrizes sobre como usar um cache de token distribuído criptografado para
cenários de hospedagem de farm da Web.
Destaques por versão Preview:
- .NET 10
Preview 1: Introduziu a nova palavra-chave Field,
geração de documentação com OpenAPI e suporte a left joins no
LINQ e Entity Framework.
- .NET 10 Preview 2: Melhorias
no Blazor como o parâmetro rowClass para o Quick Grid
(estilização dinâmica de linhas) e fingerprinting de assets web
(como o script do Blazor) para apps WebAssembly independentes, visando cache
mais eficiente.
- .NET 10 Preview 3: Aprimoramentos na
persistência de estado para maior clareza.
Principais Atualizações do Blazor no .NET 10
1. Desempenho
O runtime do .NET 10 inclui otimizações
em:
Inlining JIT
Desvirtualização de métodos
Alocações de stack
Resultando em aplicações Blazor mais rápidas.
2. Produtividade
para Desenvolvedores
Novos recursos como a palavra-chave
Field e melhorias na interoperabilidade com JavaScript reduzem código
repetitivo.
3. WebAssembly
FingerPrinting e
assets (como scripts do Blazor) permite cache mais agressivo e carregamento mais
rápido.
No ano passado, o lançamento do .NET 9 introduziu a impressão digital do lado do servidor de ativos estáticos em Blazor Web Apps com a introdução das convenções de ponto de extremidade de roteamento de Ativos Estáticos do Mapa (MapStaticAssets), o ImportMap componente e a ComponentBase.Assets propriedade (@Assets["..."]) para resolver módulos JavaScript com impressão digital.
Para o .NET 10, você pode optar por ativar a impressão digital feita no lado do
cliente de módulos JavaScript para aplicativos independentes Blazor WebAssembly.
Em aplicativos Blazor WebAssembly autônomos, durante a
compilação/publicação, a estrutura substitui espaços reservados em index.html
por valores calculados durante a compilação para ativos estáticos de impressão
digital. Uma impressão digital é colocada no nome do arquivo de script
blazor.webassembly.js
4. Novos Recursos
rowClass no Quick Grid: Estilização dinâmica de linhas baseada
em dados.
Permite aplicar uma classe de estilo a uma linha da grade com base no item da linha usando o novo parâmetro RowClass. No exemplo a seguir, o método GetRowCssClass é chamado em cada linha para aplicar condicionalmente uma classe de folha de estilos com base no item de linha.
<QuickGrid ... RowClass="GetRowCssClass"> ... </QuickGrid> @code { private string GetRowCssClass(MyGridItem item) => item.IsArchived ? "row-archived" : null; } |
NavigateTo atualizado: Evita que o navegador role para o topo ao navegar para a mesma página.
Anteriormente, NavigationManager.NavigateTo rolava até a parte superior da página para navegação na mesma página. Esse comportamento foi alterado no .NET 10 para que o navegador não role mais para a parte superior da página ao navegar para a mesma página. Isso significa que o viewport não é mais redefinido ao fazer atualizações no endereço da página atual, como ao alterar a string de consulta ou o fragmento.
Componente de IU de reconexão adicionado ao modelo de projeto Blazor Web App
O modelo de projeto Blazor Web App agora inclui um componente ReconnectModal, incluindo arquivos JavaScript e folhas de estilos agrupados, para melhorar o controle do desenvolvedor sobre a IU de reconexão quando o cliente perde a conexão WebSocket com o servidor. O componente não insere estilos programaticamente, garantindo a conformidade com configurações de CSP (Política de Segurança de Conteúdo) mais rigorosas para a política de style-src.
Em versões anteriores, a interface do usuário de reconexão padrão foi criada
pela estrutura de uma maneira que poderia causar violações de CSP. Observe que a
interface do usuário de reconexão padrão ainda é usada como alternativa quando o
aplicativo não define a interface do usuário de reconexão, como ao usar o
componente ReconnectModal do modelo de projeto ou um componente personalizado
semelhante.
Novos recursos de IU de reconexão:
Além de indicar o estado de reconexão definindo uma classe CSS específica no
elemento de interface de reconexão, o novo evento
components-reconnect-state-changed é disparado para alterações de
estado de reconexão.
O código pode diferenciar melhor os estágios do
processo de reconexão com o novo estado de reconexão "retrying",
indicado pela classe CSS e pelo novo evento.
Ignorar a cadeia de
caracteres e o fragmento de consulta ao usar NavLinkMatch.All
O
componente NavLink agora ignora a cadeia de caracteres de consulta e o fragmento
ao usar o valor NavLinkMatch.All para o parâmetro Match.
Isso significa que o link mantém a classe active se o caminho da URL
corresponder, mas a cadeia de caracteres de consulta ou o fragmento mudarem.
Para reverter para o comportamento original, use o conjunto de
Microsoft.AspNetCore.Components.Routing.NavLink.EnableMatchAllForQueryStringAndFragmentAppContext
opções como true.
5. Melhorias no Blazor Server
Compressão de WebSockets e
protocolos de reconexão aprimorados para maior responsividade.
6.
Integração com ASP.NET Core 10.0
Recursos como OpenAPI
e atualizações em APIs mínimas são integrados ao Blazor.
À medida que novas atualizações forem sendo incluídas e que os novos recursos estejam mais consolidados voltarei ao assunto apresentando exemplos práticos.
Para mais detalhes consulte o site: Novidades no ASP.NET Core no .NET 10
E estamos conversados...
"Porque o amor ao dinheiro é a
raiz de todos os males; e nessa cobiça alguns se desviaram da fé, e se
traspassaram a si mesmos com muitas dores"
1 Timóteo 6:10
Referências:
NET - Unit of Work - Padrão Unidade de ...