Integração .Net Core e Postgre

Foi-me dado mais um desafio: fazer uma aplicação com o .Net Core funcionar com o Postgre e ainda sem usar o Visual Studio (Microsoft), sendo, portanto, compatível com outros sistemas operacionais além do Windows.

A fim de cumprir o desafio, fiz algumas pesquisas (já sabem onde) e achei um artigo bastante interessante (http://www.devmedia.com.br/persistencia-de-dados-com-postgresql-e-asp-net-core-no-macos/36900), que vou tentar seguir.

Para esclarecer, Postgre é um SGBD (sistema gerenciador de bancos de dados) desenvolvido como projeto de código aberto. E para iniciar este desafio, a primeira coisa que fiz foi exatamente fazer o download do Postgre na página https://www.postgresql.org/download/

Feito o download e a instalação, abri o pgadmin III, e criei um novo banco de dados, tendo dado a ele o nome aspnetcore.

1

Em seguida fiz o download e instalação do .Net Core.

2

Dando continuidade, criei um diretório para colocar meu projeto e, pelo prompt de comando (sim, eu uso Windows), criei um novo diretório, dentro do qual iniciei o projeto, com o comando “dotnet new -t web”.

3
E esse comando criou um projeto com diversas pastas e arquivos:

4

A próxima instrução do artigo é a seguinte “A primeira coisa que temos que fazer é instalar o pacote NuGet com a biblioteca necessária para usarmos o PostgreSQL na aplicação”. Ops… o que é um pacote NuGet?

Como meus mestres e mentores aqui da WEMOGA andam muito ocupados, achei que não valia a pena incomodá-los com uma pergunta que nosso oráculo moderno pode responder, então aí está a definição encontrada após pesquisa no Google:

“O Nuget, anteriormente chamado de NuPack, é um gerenciador de bibliotecas para a plataforma .NET. O papel do Nuget é justamente ser um gerenciador de bibliotecas de modo a garantir que todas as dll´s de um pacote estejam atualizadas com suas versões corretas evitando assim erros de referência em seus projetos”( http://www.macoratti.net/11/01/net_ngt.htm).

Dirimida a dúvida do que é o Nuget, abri o projeto no Visual Studio Code (é apenas mais um editor de código, gratuito e está disponível para Linux, OS X e Windows), fui até o arquivo project.json e inseri na seção dependencies a linha: “Npgsql.EntityFrameworkCore.PostgreSQL”:”1.0.0″.

5

Com banco de dados e aplicação criados, vamos agora fazer a conexão entre os dois. Feito isso, salvei o projeto e voltei ao prompt onde digitei comandos para instalar os pacotes NuGet daquela linha que foi adicionada no arquivo project.json (dotnet restore) e depois para fazer download das dependências de front-end para a aplicação (bower install).

De volta ao projeto no Visual Studio Code, fui até o arquivo appsettings.json, e modifiquei a string de conexão “Default Connection”, utilizando para isso os dados do banco de dados criado no Postgre “DefaultConnection”:”Host=localhost;Port=5432;Database=aspnetcore”.

6

Em seguida, no arquivo Startup.cs, foi substituída a linha:

services.Add.DbContext<ApplicationDbContext> (options=>options.UseSqlite(Configuration.GetConnectionString(“DefaultConnection”)));

7

Por:

Services.AddDbContext<ApplicationDbContext>(options =>options.UseNpgsql(Configuration.GetConnectionsString(“DefaultConnection”)));

8

Em seguida salvei os arquivos do projeto e voltei ao prompt para digitar o comando (dotnet ef database update) que irá criar as tabelas necessárias ao ASP.NET Identity (serviço de autenticação e autorização do ASP.NET).

9

 

Depois desse print, houve um erro relacionado ao banco de dados, tendo aparecido a seguinte exceção: role “tati” does not exist (esqueci de tirar print para vocês…). Resolvi esse erro entrando no pgadmin III e criando um novo “role”:

10
Criado o role “tati”, então executei o comando “dotnet ef database update” novamente e, após receber a mensagem “done”, abri o pg admin e oito tabelas haviam sido criadas no meu banco de dados.

11

O próximo comando, “dotnet run”, iniciou o servidor local.

12

Agora no Google Chrome (use o navegador de sua preferência) entrei no servidor local e o resultado foi o seguinte:

13

E os links “register” e “login” já estão funcionando:

14

15

É isso aí, funciona! Integração entre o .Net Core e o Postgres, usando apenas o Visual Studio Code (poderia ter sido usado outro editor, como o Sublime ou Brackets).

Então, por hoje é tudo pessoal!

 

 

Comments

comments