Conversão de sistema ASP.Net MVC para .Net Core 6 ou 7
APIs e sistemas baseados no antigo ASP Net MVC 5 apresentam dificuldades de compatibilidade com os sitemas de hospedagem VPS Linux. Isso pode tornar inviável a disponibilização de sistemas baseados nesse framework nas principais VPS do mercado.
Pensando nisso, os profissionais da Microsoft recomendam que seja criada uma nova aplicação .Net Core (versão 7 é a mais recente no momento) e que os recursos do projeto baseado em MVC 5 sejam passados para essa nova aplicação.
Tudo pode ser feito pelo Visual Studio 2022. Isso inclui:
- Configurações de Conexão com banco de dados
- Atualização de MySql.Data para Pomelo com EntityFrameworkCore, DBContext e DBSets
- Configurações de API
- Modelos, Repositórios, Entidades, Interfaces, Serviços
- Mapeamentos para controladores
- Atualização dos métodos das rotas e suas assinaturas
- Assets: Conteúdos e scripts JS, CSS, Imagens e etc…
- Atualização das chamadas de Cookies e requisições
- Atualização dos endpoints de login
- Demais ajustes necessários, de acordo com os erros emitidos pelo Visual Studio
Funcionando na VPS
A publicação/deploy é facilitada pelo Visual Studio em Compilação > Publicar
. É possível escolher o alvo como Linux x64 e definir configurações de FTP para que a aplicação seja publicada com um clique.
Para executar o .Net Core no servidor é necessário executar o comando dotnet, mas para funcionar em produção:
- Desbloquear no Firewall a porta TCP que será usada.
- Instalar um certificado SSL como Let’s encrypt
- Configurar um serviço systemd/ctl executando o dotnet
- Configurar o proxy_pass para URL usada pelo dotnet
- cadastrar isso como um serviço no servidor
- Reiniciar o nginx