Desenvolvimento com .NET e PostgreSQL
Durante a disciplina de Técnicas Avançadas de Programação, desenvolvemos um sistema web utilizando ASP.NET Core MVC integrado ao banco de dados PostgreSQL. O projeto tinha como objetivo implementar uma relação 1:N entre entidades utilizando Entity Framework.
Criação do Projeto e Configuração
Iniciamos o desenvolvimento no Visual Studio 2022 com um projeto do tipo ASP.NET Core Web App (Model-View-Controller). Após isso, instalamos os pacotes necessários via NuGet:
-
Install-Package Npgsql.EntityFrameworkCore.PostgreSQL -
Install-Package Microsoft.EntityFrameworkCore.Tools
Em seguida, criamos o banco de dados
CrudFornecedorProduto no pgAdmin e
configuramos a string de conexão no arquivo
appsettings.json.
Modelagem e Contexto
Definimos duas entidades principais:
Fornecedor e Produto, sendo
que cada fornecedor pode possuir vários produtos. O
relacionamento foi definido por meio da propriedade
ICollection<Produto> no modelo Fornecedor.
Criamos também o ApplicationDbContext para
registrar os DbSets e configurar o Entity Framework.
Implementando Migrations
Com os modelos e contexto prontos, utilizamos os seguintes comandos para gerar e aplicar a migration inicial:
Add-Migration InicialUpdate-Database
Controllers e Views (Scaffold)
Utilizamos o recurso de Scaffolding para
gerar automaticamente os controllers e as views de
Produto e Fornecedor, com base no
Entity Framework. Isso acelerou a criação das operações CRUD.
"O scaffold gerou as views com ações como Criar, Editar, Detalhar e Excluir para ambas as entidades."
Interface e Estilo
Personalizamos a página inicial (Index.cshtml)
com cards estilizados para navegação. Também aplicamos
melhorias visuais nas páginas de listagem e edição, usando
classes do Bootstrap e efeitos com CSS.
- Cards com hover na tela inicial;
- Botões coloridos para ações de CRUD;
-
Tabelas com estilo
.table-stripede.table-hover.
Relacionamento 1:N na Prática
No cadastro de produtos, implementamos a exibição dos
fornecedores por meio de um
<select> com ViewData populado
pelo controller. Na exibição de detalhes, o nome do fornecedor
também foi exibido, utilizando Include no Entity
Framework.
Tratamento de Valores Monetários
Ajustamos a entrada de valores decimais (como preço) para
respeitar a cultura brasileira (pt-BR), evitando erros de
conversão entre vírgula e ponto. Isso foi feito configurando a
cultura no
Program.cs:
var cultureInfo = new CultureInfo("pt-BR");
CultureInfo.DefaultThreadCurrentCulture = cultureInfo;
CultureInfo.DefaultThreadCurrentUICulture = cultureInfo;