0

Aplicação Web com .NET (algumas dicas úteis para quem usa VSCode)

Stephanye Hoelbriegel
Stephanye Hoelbriegel

Mais uma vez venho passar minha experiência usando o VSCode e escrevo enquanto as coisas vão acontecendo...


Sou Steph Hoel, muito prazer!


Assistindo o curso "Desenvolvimento de aplicações com .NET" https://web.digitalinnovation.one/course/desenvolvimento-de-aplicacoes-com-net/ encontrei mais dificuldades. O instrutor usa o VS2019 e eu o VSCode, sendo assim é normal que tenha diferenças no modo de fazer as coisas.


Começando pela criação do projeto que eu sempre faço pelo terminal por linha de comando, usando: dotnet new mvc


Ainda não aprendi a criar uma soluction por ali, então vou no botão direito dentro do Soluction: Explorer


Com o projeto criado, tudo correu bem até ele adicionar um package... No VS2019 é fácil: só abrir o console de comando e jogar o código... Enquanto o VSCode precisa de uma extensão chamada "NuGet Package Manager GUI" para auxiliar e aí é só adicionar pela interface que abre.


Já para adicionar 'migration' dá para fazer pelo terminal, contanto que saiba o comando certo: dotnet ef migrations add [o que quer adicionar]


Enquanto para atualizar o banco de dados é só usar o comando 'dotnet ef database update', mas aí tem uma pegadinha: precisei instalar o SqlServer Express e alterar as variáreis de conexão para funcionar!


Avançando mais um pouco na aula 3 (tudo isso é na aula 3, ok?) me deparo com o instrutor criando uma controller usando scaffolding... Ok, não tem isso num menu para usarmos, partiu procurar como fazer no console... Depois de quase 2 horas de pesquisa, achei o código para fazer isso:


dotnet aspnet-codegenerator --project [nome do projeto] controller --force --controllerName [nome da controller] --model [namespace.nome da model] --dataContext [namespace.nome do contexto] --relativeFolderPath Controllers --controllerNamespace [namespace do controller]


Na segunda parte do curso eu encontrei outra dificuldade: como acessar as propriedades do projeto usando o VSCode? Resposta curta: não encontrei! Mas encontrei outra forma de fazer isso, direto no arquivo .csproj da minha API e na tag PropertyGroup adicionei a tag DocumentationFile com o nome da aplicação.xml mais ou menos assim:



Ao fazer o build, o arquivo xml foi gerado e eu precisei ainda fazer outros ajustes, mas tudo bem. Adicionando um pacote pelo terminal com o seguinte comando: dotnet add package Microsoft.VisualStudio.Web.CodeGeneration.Design consegui criar novos scaffolds


Com esse pacote instalado e dentro da pasta da minha API, criei uma nova controller com o comando a seguir: dotnet aspnet-codegenerator controller -async -m AppWeb.Models.Categoria -dc AppWeb.Models.Context -name CategoriasController -outDir Controllers -namespace AppApi.Controllers -udl -f


Seguindo o curso, desisti do VSCode e baixei o VS2019, já que uma função não era possível, a de inicializar dois projetos de uma vez.


Eu procurei em tudo quanto foi lugar, em vários arquivos de configuração, mas nada resolveu meu problema. Só uma coisa: baixar o VS2019. Eu realmente achei que ia dar certo, mas só aquela função de inicializar as duas aplicações ao mesmo tempo que funciona para mim, fora isso não me trouxe nenhuma vantagem (além de travar bastante).


Voltei ao VSCode para continuar o curso. Na hora de fazer o teste, pensei que seria complicado, mas com a extensão ".NET Core Test Explorer" ficou bem fácil até a parte onde os códigos não batem e o teste não é bem sucedido. Sendo assim, em meu terceiro dia de tentativa e erro, estou (no momento em que escrevo isso) começando o projeto todo de novo no VS2019 já que parece que só nele conseguirei o mesmo resultado.


Durante a criação do projeto pelo VS2019 não obtive problemas até chegar a parte do teste que não funcionava por nada. Daí fiz uma pesquisa e achei o que estava de errado que o especialista não tinha informado para fazer: adicionar o 'virtual' aos 2 DbSet do Context.cs


Tudo parecia perfeito até publicar o projeto na Azure. Precisei alterar uma configuração da aplicação, criando uma nova config de nome 'ASPNETCORE_ENVIRONMENT' e value 'Development'. Depois não consegui conectar ao banco de dados. Nada funcionou até que eu escolhi fazer uma mudança direto no código: alterar o "UseSqlServer" para a cadeia de conexão informada ao criar o banco de dados na Azure.


Tudo funcionou, com essas alterações e configurações adicionais que não foram informados pelo especialista ao ministrar o curso.


Publiquei o MVC. Publiquei a API (felizmente sem problemas). Mas não se esqueçam de alterar a configuração de 'Escalar verticalmente' para dev/test F1 Free, senão vai gastar seu crédito e sua fatura do cartão vai vir nas alturas (já que cobram em dólar)!!!


Obrigada por lerem até aqui e deixem um comentário caso tenha te ajudado ou mesmo se você precisa de ajuda! Estou aqui e no discord (Hoel#0529) para ajudar como puder!

0
4

Comentários (2)

0
CARLOS SILVA

CARLOS SILVA

21/09/2021 15:51

Que artigo de valor, Stephanye!

Sou do seu time que curte VS Code e Linux e prefere tudo pela CLI. Principalmente por meu ambiente ser um Linux, até da para usar uma IDE equivalente ao VS2019, que são as IDEs da JetBrains, mas as vezes, nos tornamos escravos das IDES e das telinhas que já fazem o trabalho pesado. O problema é que, na grande maioria das vezes, não temos ciência do que foi feito e como foi feito, isso gera uma grande dependência de software, esse é um dos grandes motivos de migrar para o Linux, já que vou programar para Web, posso fazer os mesmos projetos que no VS2019 além de ter maior controle do meu S.O.

VS Code além de ser leve e perfeito para deves que possuem máquinas fracas, ele nos obriga a ir além.

0
Vagner Gusmão

Vagner Gusmão

21/09/2021 14:00

Boas dicas, Stephanye. Obrigado por compartilhar

Pessoa desenvolvedora .NET

Brasil