Falaaaaaaaaaa desenvolvedor, tudo bem???? Eu estou ótimo e animado com o lançamento do meu blog, FINALMENTE a ideia saiu do papel e foi pro ar, bom, mas não estou aqui pra falar do meu blog e sim de um assunto muito discutido e que gera muita dor de cabeça na vida dos desenvolvedores, MAS NÃO AQUI, no artigo de hoje vou ensinar como de forma prática, você vai realizar o deploy de uma aplicação ASP .NET Core com poucos comandos e o melhor DE GRAÇA.
Para isso vamos utilizar o Heroku como plataforma, para quem não sabe ele é uma plataforma de Cloud Computing (PaaS — Plataform as a Service) que disponibiliza uma série de recursos GRATUITOS e pagos, como por exemplo, pequenos bancos de dados (relacionais e não relacionais), hospedagem, serverless e etc.
Obviamente esses recursos gratuitos são somente a nível de teste e não é recomendado seu uso comercial. Como o artigo trata da questão de hospedagem vou focar nesse recurso mais especificamente.
...
Entendendo a plataforma e seus recursos
Por padrão o Heroku disponibiliza para você uma hospedagem de até 5 SERVIÇOS (SITES). Nativamente ele suporta diversas linguagens e tecnologias, como por exemplo:
Node.JS, Ruby on Rails, Java, PHP, Python, Go, Scala, Clojure.
Tá bom Lucas e cadê o ASP .NET Core aí nessa lista?
Calma jovem desenvolvedor, então, por padrão, o Heroku não suporta ASP .NET Core…

Então como eu vou hospedar minha aplicação??? WTF???
Relaxaaaaa, por padrão o Heroku nos disponibiliza um recurso chamado BUILDPACK, ele existe também em outras plataformas de Cloud e é uma forma bem bacana de hospedar serviços web.
O buildpack se resume em, uma imagem do ambiente de execução da aplicação que você necessita, então quando nós criamos nosso serviço no heroku indicando qual buildpack queremos utilizar, automaticamente ele usa essa imagem do ambiente para poder criar a instância que vai rodar seu serviço.
Então imagine, quando você seleciona o buildpack do ASP .NET Core ele pega essa imagem do ambiente de execução, copia as configurações e dependências dela e disponibiliza pra você um ambiente fresquinho e prontinho pra poder rodar sua aplicação.
MAS, não confunda buildpacks com contêiners. Ele cria o ambiente para rodar NATIVAMENTE e não em um contêiner, quando eu digo que ele não roda ASP .NET Core por padrão é porque ele não tem um ambiente pré configurado.
Ufaaaaaa, agora que você já entendeu como o heroku deixa a nossa aplicação rodando vamo botar a mão na massa!!!
...
Botando a mão na massa: Criando sua conta
Como todo serviço PaaS (Plataform as a Service) é necessário criar uma conta para poder utilizar dos seus recursos, no Heroku também, então acesse a página de cadastro e crie sua conta gratuitamente e o melhor, sem precisar colocar número de cartão e coisas do tipo.
https://signup.heroku.com/login
Já que estamos falando de requisitos, eu não posso esquecer do Git, que é necessários para podemos versionar e enviar o nosso projeto para o repositório do Heroku que é onde ele automaticamente envia para o ambiente criado com a buildpack.
Vou deixar aqui também o link para download do Git.
Após sua conta no Heroku estiver criada, o Git instalado, precisamos de um último requisito, que é o Heroku CLI, a ferramenta que nos auxilia a criar o ambiente de produção e enviar nosso projeto para ele.
Você pode realizar o download da ferramenta no seguinte link:
https://devcenter.heroku.com/articles/heroku-cli
Belezaaaaaa com tudo já instalado vamos para o que interessa, hospedar nossa aplicação, por questão de simplicidade vou hospedar apenas um Olá Mundo em ASP .NET Core 3.0.
OBS: Fica tranquilo, vou mostrar como hospedar TODAS as versões
Então vamos lá entre na pasta onde está seu arquivo .csproj:

Abra o CMD nessa pasta e digite o seguinte comando para poder inicializar o versionamento no projeto:
git init
Beleza, agora a gente vai criar nossa aplicação no Heroku e agora você precisa prestar muita atenção na versão do .NET Core que você está utilizando. Digite o seguinte comando para criar a aplicação no heroku:
heroku create NOME_DA_APLICACAO — buildpack https://github.com/jincod/dotnetcore-buildpack#VERSAO_FRAMEWORK
OBS: O nome da aplicação deve ser sem espaços, sem caracteres especiais (somente hífen) e conter somente letras minúsculas.
Lucaaaaaassss eu não sei qual a versão do framework eu coloco no link, o que eu faço?? Fique calmo jovem dev, vou deixar o link com todas as versões aqui em baixo, identifique a sua e substitua no link.
https://github.com/jincod/dotnetcore-buildpack/releases
No meu caso o link de criação para v3.0 ficou da seguinte forma:
heroku create eschechola-hello-heroku — buildpack https://github.com/jincod/dotnetcore-buildpack#v3.0.100
OBS: Na primeira vez que você executar esse comando ele irá pedir pra você se autenticar com login e senha da sua conta do heroku.

Bacana, o nosso ambiente no Heroku foi criado com sucesso e agora precisamos enviar nossa aplicação para lá.
Os conhecedores de Git a partir daqui estão “em casa” praticamente, lembra quando eu falei que seria em poucos comandos sua aplicação no ar? Pois bem, já foram 2 e agora vamos para os 3 últimos comandos.
Agora na mesma pasta que você digitou o comando de criação de ambiente, digite o seguinte comando:
git add .
Ele vai adicionar o seu projeto na lista de alterações do repositório que você inicializou anteriormente.
Agora precisamos realizar o commit (comentário da versão) da nossa aplicação
git commit -m "Primeira versão"
Agora vamos para o último comando e finalmente nosso projeto ASP .NET Core vai estar no ar, para poder enviar o projeto versionado, commitado para o Heroku digite o seguinte comando:
git push heroku master
Assim que você der enter, ele vai iniciar o processo de deploy automaticamente, nesse momento ele está enviando o projeto para o repositório do Heroku que foi criado no momento que criamos o projeto com sua buildpack, após enviar para o repositório ele irá pegar essa versão do projeto, irá compilar, gerar as dlls necessárias e enviar para o ambiente de produção, tudo feito AUTOMATICAMENTE.

Por fim, ele me informa que meu website foi publicado no endereço:
https://eschechola-hello-heroku.herokuapp.com/
E que o repositório com a versão do projeto está em:
https://git.heroku.com/eschechola-hello-heroku.git
E agora se você quiser abrir seu website pode digitar o endereço dele no navegador OU digitar:
heroku open

Hospedado com sucesso com apenas 5 comandos!!
...
Conclusão
No artigo de hoje eu mostrei como a gente pode resolver um dos maiores problemas do desenvolvedor de forma simples e com 5 comandos, o deploy de aplicações e o melhor utilizando uma plataforma que disponibiliza até 5 projetos gratuitamente e ainda da suporte a maioria das versões do .NET Core além disso ele ainda versiona o nosso projeto e deixa ele em um repositório privado, pode falar o Heroku é incrível e esse é apenas um dos milhares de recursos que ele nos proporciona.
Baixe os comandos apresentados clicando aqui.
Caso precise entrar em contato, me mande uma mensagem aqui.
