Hoje veremos como migrar aplicações Windows Forms criadas no .NET Framework para o .NET Core 3.1. |
Hoje veremos como migrar uma aplicação Windows Forms criada no .NET Framework para executar no ambiente .NET Core. Essa tarefa pode ser mais ou menos trabalhosa dependendo da complexidade da sua aplicação e dos pacotes externos que seu projeto Windows Forms utiliza.
Para o exemplo deste artigo eu vou eleger uma aplicação Windows Forms chamada WF_Listview_Imagens bem simples que não usa pacotes externos e assim é bem simples de migrar.
Abaixo vemos esse projeto em execução. Nele o usuário pode selecioniar uma pasta e exibir todas as imagens da pasta e tambémn pode selecionar uma imagem para ver detalhes:
Esta aplicação usa os controles ListView e PictureBox e os controles Button.
Abrindo este projeto no Visual Studio 2019 vemos a estrutura abaixo onde vemos as referência do .NET Framework às bibliotecas usadas no projeto:
Verificando a compatibilidade do projeto
Antes de iniciar a migração, devemos verificar a compatibilidade deste aplicativo com o .NET core. Para verificar isso, precisamos de um aplicativo chamado Portability Analyzer, disponível gratuitamente no GitHub, que você pode baixar no link : Download Portability Analyzer
Descompacte o pacote em uma pasta local e execute o arquivo .exe que vai apresentar a seguinte tela:
Aqui pasta informar o caminho e nome do arquivo .exe da aplicação que desejamos migrar e a seguir basta clicar no botão Analyze:
Será exibido um relatório no formato Excel chamado PortabilityReport.xlsx que pode ser aberto clicando no botão - Open Report (se você tiver o Excel instalado ou um aplicativo que abra arquivos neste formato).
O arquivo aberto vai apresentar um relatório mostrando o nível de compatilibidade em percentual. Se o valor for 100% , como no nosso exemplo, a aplicação é totalmente compatível e não precisa de ajustes.
Como não precisamos fazer nenhum ajuste vamos continuar.
Agora na janela Solution Explorer clique com o botão direito sobre o nome do projeto e a seguir selecione a opção : Unlod Project (Descarregar Projeto)
Agora
podemos editar o arquivo de projeto .csproj
clicando sobre o nome do projeto e selecionando:
Editar <nome_projeto>
Será aberto o arquivo com o conteúdo exibido na figura abaixo.
Selecione todo o conteúdo e recorte (CTRL+X) e cole (CTRL+C) em um arquivo texto.
A seguir inclua o código abaixo neste arquivo:
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
</PropertyGroup>
</Project>
|
Conforme mostra a figura abaixo:
Aqui definimos :
Salve as informações e na janela Solution Explorer clique com o botão direito do mouse sobre o nome do projeto e agora escolha a opção : Recarregar Projeto (Load Project)
Pronto !!!
Examinando novamente a estrutura do projeto temos o resultado abaixo:
Observe que agora estamos usando o framework Microsoft.NetCore.App.
Agora é só alegria...
Executando o projeto iremos obter o mesmo resultado, só que agora estamos rodando no .NET Core:
Em outro artigo vermos como migrar projetos com referência a pacotes externos. Aguarde...
"Porque
o Senhor é justo, e ama a justiça; o seu rosto olha para os retos."
Salmos 11:7
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Visual Studio - Dica de produtividade - Quick Launch - Macoratti.net
Visual Studio - Dica de produtividade - Nuget - Macoratti.net
C# - Usando Listas com elegância - Macoratti
C# - Trabalhando com Coleções Genéricas do tipo List(<T>)
C# - Diferentes maneira de criar uma lista de objetos - Macoratti
C# - Acessando dados de um dicionário ordenado - Macoratti
C# - Usando um Dicionário para armazenar e ... - Macoratti
C# - Escolhendo a coleção correta para sua ... - Macoratti
https://docs.microsoft.com/pt-br/dotnet/standard/analyzers/portability-analyzer