.NET

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 Inicial
  • Update-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-striped e .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;