.Net Framework no Visual Studio Code

Altamir Junior Dias
CWI Software
Published in
4 min readApr 23, 2020

--

Por mais que as tecnologias evoluam, surjam ferramentas melhores, acabamos sempre voltando as anteriores por uma necessidade ou outra.
Hoje trabalho para um cliente onde podemos construir Back-ends usando o .Net Core, e Front-Ends em Angular 8, tudo no Visual Studio Code.

Algumas dessas aplicações em Angular 8 ficam hospedados em uma plataforma do Sharepoint e recentemente se fez necessário implementar uma ferramenta de notificações que conectasse no Sharepoint para coletar dados, analisá-los e gerar notificações.

Aí veio o problema, não existe um conector de dados para o Sharepoint que funcione no .Net Core, no Visual Studio Code, mas sim para o .Net Framework, no Visual Studio. Muitos já devem ter pensado nessa altura, .NET Framework? Visual Studio? Licença do Visual Studio?

Descobri recentemente que é possível compilar uma aplicação .NET Framework usando o CLI do .Net Core no Visual Studio code, e melhor depurando.

Mostrarei aqui nesse artigo um passo a passo para executar esse processo.

Para começar, vamos criar a nossa aplicação no terminal do Visual Studio Code:

dotnet new console -n fullframework

Com o comando acima o CLI do .Net Core cria um projeto console na pasta fullframework. Nesta pasta estarão os arquivos program.cs e fullframework.csproj.

O Visual Studio Code percebe que o projeto pode ser depurado e pergunta se precisa incluir os arquivos de depuração que está faltando.

Aceitando, o Visual Studio Code cria uma pasta .vscode com dois arquivos, launch.json e tasks.json. Mais tarde voltaremos ao launch.json.

Já podemos executar o compilador do .Net Core para o projeto criado com o comando abaixo.

dotnet build

No meu caso o comando acima gera os binários na pasta bin\Debug\netcoreapp3.1 porque esta definido no fullframework.csproj que o TargetFramework é o netcoreapp3.1.

Podemos mudar o TargetFramework para qualquer versão do .Net Core. Mas podemos usar uma das versões do .NET Framework que podem ser encontradas nessa página: https://dotnet.microsoft.com/download/dotnet-framework.

Quando for selecionada uma das versões, deve ser clicado para baixar o Developer Pack e não o Runtime. No meu caso eu baixei e instalei a versão .Net Framework 4.7.1.

Uma vez baixado e instalado o Developer Pack basta alterar o Target Framework para essa versão.

O meu ficou assim:

Pronto, basta executar o comando de build novamente e o código será compilado para o .NET Framework 4.7.1. E agora a pasta bin\Debug tem mais uma pasta para o binário da net471.

E o mesmo acontece se você executar o comando de publicação do .Net Core:

dotnet publish

Dentro da pasta bin\Debug\net471 existirá uma pasta chamada publish com os binários de publicação.

Só isso já seria o suficiente para trabalhar com o Visual Studio Code com o CLI do .Net Core usando um .NET Framework, mas pode ficar melhor, podemos depurar também.

Lembra do launch.json lá do início? Vamos usar ele agora. Nele encontraremos uma configuração para executar o .Net Core em modo de depuração.

Para depurar a nossa aplicação no .Net Framework precisamos mudar apenas duas entradas nessa configuração, a type e a program.

Como pode ser visto na imagem acima a type esta definida como coreclr e precisamos mudar para apenas clr. CLR é a sigla de Common Language Runtime que era utilizada nos binários compilados do .NET Framework, agora para o DotNet Core temos a CORECLR, que nada mais é do que a CLR do .Net Core.

Precisamos ajustar também a program, mudando para o binário da pasta específica da versão que estamos utilizando, e trocando de dll para exe.

Ficou assim no meu exemplo:

Pronto, agora é só executar o depurador através da interface do Visual Studio Code.

Essas mudanças simples tornaram possível que eu pudesse agora incluir a referência para o pacote de conexão do Sharepoint na minha aplicação desenvolvida no Visual Studio Code, usando o CLI do .Net Core mas compilando para o .NET Framework.

Espero que como serviu para mim, isso possa servir para outros também.

Bons códigos.

--

--