Blazor - Use the .dev.localhost TLD na URL da apliacção


   Neste eu explico que a nova opção - Use the .dev.localhost TLD in the application URL- que aparece no template de projeto Blazor.

Ao criar um novo projeto Blazor Web App no Visual Studio (especialmente nas versões mais recentes voltadas ao .NET 10), você encontrará uma nova opção de configuração: "Use the .dev.localhost TLD in the application URL".



Historicamente, o desenvolvimento local em .NET sempre foi sinônimo do endereço https://localhost:[porta]. Embora funcional, essa abordagem trazia limitações em cenários de arquiteturas mais complexas. Este novo recurso altera o sufixo (TLD - Top-Level Domain) da URL de desenvolvimento para utilizar o padrão sugerido por RFCs de rede para ambientes isolados.

Em termos simples: ela altera o endereço (URL) que o seu navegador usa para abrir o projeto durante o desenvolvimento.

O que muda na prática?

Sem marcar (Padrão): O seu app abre em algo como https://localhost:7001.

Marcando a opção: O seu app abrirá em um endereço como https://meuprojeto.dev.localhost:7001

Por que isso é útil?

Existem três motivos principais, sendo o primeiro muito relevante para o seu trabalho com Blazor e IA:

1. Gerenciamento de Cookies e Isolamento

Quando você desenvolve vários projetos usando apenas localhost, todos eles compartilham os mesmos cookies e armazenamento local (Local Storage).

Isso pode causar conflitos se você estiver testando diferentes sistemas de autenticação ao mesmo tempo. Usando um subdomínio específico (como meuprojeto.dev.localhost), os cookies ficam isolados apenas para aquele projeto.

2. Teste de Subdomínios (Multi-tenancy)

Se você estiver escrevendo um código que precisa identificar o cliente pelo subdomínio (ex: cliente1.meuapp.com), usar o .dev.localhost facilita simular esse comportamento localmente sem precisar mexer no arquivo hosts do Windows.

3. HTTPS e Certificados

O sufixo .localhost é reservado por padrão para apontar para a sua própria máquina. Navegadores modernos (como Chrome e Edge) entendem que qualquer URL terminando em .localhost é segura, o que ajuda a evitar aqueles alertas chatos de "Sua conexão não é privada" durante o desenvolvimento de APIs ou apps Blazor.

O que isso resolve na prática?

A introdução deste recurso foca em três pilares principais do desenvolvimento web moderno:

Isolamento de Estado: Ao usar um subdomínio específico para cada projeto (ex: MeuAppIA.dev.localhost), o navegador isola automaticamente Cookies, LocalStorage e SessionStorage. Isso evita que o estado de um sistema de login de um projeto antigo interfira no teste do seu novo app de IA.

Simulação de Multi-tenancy: Para desenvolvedores que criam aplicações SaaS (onde cada cliente possui seu próprio subdomínio, como cliente1.meuapp.com), este recurso permite testar a resolução de subdomínios localmente sem a necessidade de editar manualmente o arquivo hosts do sistema operacional ou configurar proxies reversos complexos.

Segurança e HTTPS Simplificado: O sufixo .localhost é tratado por navegadores como o Chrome e Edge como uma origem "segura por padrão" (Secure Context). Isso facilita a comunicação com APIs modernas e dispositivos de hardware que exigem HTTPS, mantendo uma experiência de desenvolvimento fluida e sem alertas de certificados inválidos.

Nota:  Se você marcar essa opção e por algum motivo o navegador não abrir, pode ser que alguma configuração de rede ou Proxy na sua máquina esteja bloqueando subdomínios. Na dúvida, deixe desmarcado para garantir que o foco fique no código C#.

O que muda na configuração?

Arquivo launchSettings.json: O template gera as URLs da sua aplicação usando o nome do projeto como subdomínio. Por exemplo, para um projeto chamado MinhaApp, as configurações http e https no arquivo launchSettings.json serão alteradas para usar minhaapp.dev.localhost em vez de apenas localhost .

Certificado HTTPS: O certificado de desenvolvimento que o .NET instala agora é um curinga (wildcard) para *.dev.localhost. Isso garante que o navegador confie no seu endereço personalizado sem mostrar avisos de segurança .

Como o Navegador "Entende" esse Endereço?

O sistema operacional, por si só, pode não saber que meuprojeto.dev.localhost deve ser traduzido para o seu computador.

Navegadores Modernos: Funciona perfeitamente! Eles já são programados para entender que qualquer domínio terminado em .localhost deve ser redirecionado para o computador local (127.0.0.1). Você pode simplesmente digitar o endereço e testar .

Outras Ferramentas (curl, Postman, etc.): Para usar com ferramentas de linha de comando ou APIs, talvez seja necessário adicionar uma entrada manual no arquivo hosts do seu sistema operacional para fazer a resolução correta .

Em resumo, esta opção é uma melhoria na experiência de desenvolvimento que oferece isolamento e clareza ao trabalhar com múltiplos projetos .NET 10 simultaneamente.

A opção "Use the .dev.localhost TLD in the application URL" no .NET 10 representa uma evolução significativa na experiência de desenvolvimento com Blazor e ASP.NET Core.

Quando usar?

Esta opção é altamente recomendada para:
   Desenvolvedores que trabalham com múltiplos projetos simultaneamente
   Times que precisam testar integrações entre diferentes aplicações
   Cenários onde o isolamento de cookies é importante (ex: autenticação)

Resumo

O .NET 10 simplifica o desenvolvimento ao oferecer automaticamente endereços únicos e padronizados para cada projeto, eliminando um problema comum do dia a dia sem exigir configuração manual complexa. É um daqueles pequenos detalhes que fazem grande diferença na produtividade e organização do ambiente de desenvolvimento.

Em uma frase:  Adeus localhost:5001 confuso, bem-vindo meuprojeto.dev.localhost organizado

E estamos conversados...  

"Volta, minha alma, para o teu repouso, pois o Senhor te fez bem"
Salmos 116:7

Referências:


José Carlos Macoratti