![]() |
Hoje veremos como realizar o auto Refresh usando o dotnet watch em aplicações ASP .NET Core no NET 5.0. |
Com o lançamento do .NET 5, vieram muitas melhorias de desempenho e novos recursos na ASP .NET Core. Hoje vamos focar no recurso que permite o auto Refresh usando o dotnet watch.
Se você já instalou o .NET Core SDK 5.0 ou Visual Studio 16.8 (ou posterior), executando qualquer projeto ASP .NET Core (independentemente do TargetFramework), a página será atualizada sempre que detectar uma alteração feita.
O dotnet watch é uma ferramenta que executa um comando CLI do .NET Core quando os arquivos de origem são alterados. Por exemplo, uma alteração de arquivo pode acionar a compilação, execução de teste ou deploy.
Para executar o projeto usando esta ferramenta abra uma janela de comandos e navegue até a pasta do projeto e a seguir emita o seguinte comando: dotnet watch run
O projeto será aberto e qualquer alteração irá ser detectada e a página será atualizada.
Assim o dotnet watch atualiza o navegador ao detectar alterações nos arquivos observados. Para fazer isso, o comando watch injeta um middleware no aplicativo que modifica as respostas HTML criadas pelo aplicativo.
O middleware adiciona um bloco de script JavaScript à página que permite que o dotnet watch instrua o navegador ser atualizado. Atualmente, as alterações em todos os arquivos monitorados, incluindo conteúdo estático, como arquivos .html e .css, fazem com que o aplicativo seja reconstruído.
Dessa forma a execução do
dotnet watch em um aplicativo web inicia um
navegador que navega para a URL do aplicativo quando estiver pronto; ele faz
isso lendo a saída do console do aplicativo e aguardando a mensagem pronta
exibida pelo WebHost.
Vamos testar isso na prática...
recursos usados:
Criando o projeto ASP .NET Core MVC
Vamos criar uma solução chamada AspnWeb5 que será a nossa aplicação web ASP .NET Core MVC.
Para isso clique com o botão direito do mouse sobre a solução e a seguir clique em Add-> New Project;
Selecione o template ASP .NET Core Web Application e clique em Next;
Informe o nome AspnWeb5 e clique em Create;
A seguir escolha :
Clique no botão Create;
Isso criará um novo projeto MVC com uma aplicação básica.
Abra uma janela de comandos e navegue até a pasta onde o projeto foi criado e emita o comando: dotnet watch run
O comando será executando e a aplicação será levantada para atendimento:
Abaixo vemos a página Index.cshtml sendo exibida e a view Index.cshtml aberta no VS 2019:
Vamos alterar o nome Macoratti para Macoratti .net e veremos que imediatamente a página será atualizada:
Este recurso pode ser usando no VS 2019 como mostrado e também no VS Code usando a ferramenta de linha de comando NET CLI.
Qualquer comando CLI do .NET Core pode ser executado com dotnet watch. Por exemplo:
Comando | comando com watch |
dotnet run | dotnet watch run |
dotnet run -f netcoreapp3.1 | dotnet watch run -f netcoreapp3.1 |
dotnet test | dotnet watch test |
No Visual Studio 2019 você também pode definir a seguinte configuração :
1- A partir do
Menu Tools -> Options;
2- Selecione Projects and Solutions -> ASP .NET Core
3- Selecione : Auto
build and refresh browser after saving changes
4- Pressione Ctrl
+ F5 (Start Without Debugging)
Configuração dotnet-watch
Algumas opções de configuração podem ser passadas ao
dotnet watch por meio de variáveis de ambiente.
As variáveis
disponíveis são:
DOTNET_USE_POLLING_FILE_WATCHER - Se definido como
"1" ou "true", o dotnet watch usa um observador de arquivo de pesquisa em
vez do FileSystemWatcher da CoreFx. Usado ao observar arquivos em
compartilhamentos de rede ou volumes montados em Docker.
DOTNET_WATCH_SUPPRESS_MSBUILD_INCREMENTALISM - Por
padrão, o dotnet watch otimiza o build evitando certas operações, como
executar a restauração ou reavaliar o conjunto de arquivos observados em cada
alteração de arquivo. Se definido como "1" ou "true", essas otimizações são
desabilitadas.
DOTNET_WATCH_SUPPRESS_LAUNCH_BROWSER - O dotnet
watch run tenta iniciar navegadores para aplicativos web com
launchBrowser configurado em launchSettings.json. Se definido como
"1" ou "true", esse comportamento é suprimido;
DOTNET_WATCH_SUPPRESS_BROWSER_REFRESH - O dotnet
watch run tenta atualizar os navegadores quando detecta mudanças no arquivo.
Se definido como "1" ou "true", esse comportamento é suprimido. Esse
comportamento também é suprimido se
DOTNET_WATCH_SUPPRESS_LAUNCH_BROWSER estiver definido.
"Mas o fruto do
Espírito é: amor, gozo, paz, longanimidade, benignidade, bondade, fé, mansidão,
temperança.
Contra estas coisas não há lei."
Gálatas 5:22,23
Referências:
ASP .NET Core - Iniciando com o Blazor
ASP .NET Core - CRUD usando Blazor e Entity ..
Blazor - O novo framework SPA da Microsoft
Visual Studio Code - Suporte ao desenvolvimento Blazor
ASP .NET - Arquitetura em camadas
ASP .NET Core MVC - Tratamento de exceções - II
ASP .NET Core - CRUD usando Blazor e Entity ..
ASP .NET Core Blazor - Macoratti.net
NET - Considerações sobre arquitetura e .
NET - Compreendendo a arquitetura em ..
NET - A arquitetura em cebola (Onion Architecture)