Article image
André Fanelli
André Fanelli08/07/2025 23:47
Compartilhe

ASP.NET Core MVC na Prática: Como Estou Construindo um Sistema Web de Inventário

  • #SQL
  • #.NET
  • #.NET Core
  • #Bootstrap
  • #.NET C#
  • #Design Patterns
  • #Arquiteturas

Introdução

O “bom e velho” MVC. Algumas pessoas criticam por ser um padrão “ultrapassado”, mas para quem está iniciando, tenho certeza que é um excelente caminho para começar a entender como um projeto deve ser bem estruturado e também uma leve introdução sobre arquiteturas e padrões de projeto. 

Neste artigo, continuo a compartilhar minha experiência na construção do "Inventarium", um sistema de inventário utilizando o framework ASP.NET Core MVC. O objetivo era criar uma aplicação robusta, escalável e de fácil manutenção, aplicando boas práticas do MVC e padrões modernos de desenvolvimento.

O desafio

O projeto exigia um sistema web capaz de:

  • Registrar e listar vários tipos de dispositivos (computadores, notebooks, monitores, etc.)
  • Permitir autenticação com diferentes níveis de acesso (Administrador e Leitura)
  • Ser responsivo e intuitivo para uso em diferentes dispositivos
  • Aplicar boas práticas de organização do código

A arquitetura MVC em ação

Utilizei a arquitetura Model-View-Controller (MVC) do ASP.NET Core para estruturar a aplicação:

  • Modelos: representaram os dados (por exemplo, CadPc, CadNote) com atributos validados via DataAnnotations.
  • Views: renderizadas com Razor e Bootstrap para criar uma UI responsiva.
  • Controllers: cuidaram da lógica de negócio e interação com o banco de dados via Entity Framework Core.

Gerenciamento de dependências com Injeção de Dependência (DI)

O ASP.NET Core possui DI nativo. Aproveitei isso para injetar:

  • ApplicationDbContext para acesso ao banco de dados
  • UserManager e SignInManager para gestão de usuários
  • ITenantProvider para resolver o tenant logado em tempo real

Camadas bem separadas

Cada responsável pelo sistema ficou isolado:

  • Controladores apenas controlam
  • Views só exibem informação
  • Modelos definem os dados

Validação de formulários e Feedback ao usuário

Usei anotações como [Required], [StringLength], e mensagens de erro personalizadas nas views. Também utilizei o SweetAlert2 para exibir feedback visual ao usuário (ex: sucesso no cadastro ou exclusão).

Paginas protegidas por roles de usuário

A ação dos controllers foi protegida com [Authorize(Roles = "Administrator")], separando as permissões entre quem apenas visualiza e quem pode cadastrar/editar/excluir.

Resultados

O sistema ficou leve, rápido e fácil de manter. As funcionalidades são distribuídas de forma intuitiva e, com a separação em MVC, fica simples expandir o projeto para novos tipos de dispositivos ou regras de negócio.

Conclusão

Trabalhar com ASP.NET Core MVC oferece uma estrutura poderosa, confiável e limpa para desenvolvimento web. Ao respeitar os princípios da arquitetura MVC e boas práticas de código, é possível construir aplicações profissionais mesmo em projetos pessoais.

Algumas referências:

Padrões de Projeto : O modelo MVC

Visão geral do ASP.NET Core MVC

Compartilhe
Comentários (2)
André Fanelli
André Fanelli - 17/07/2025 17:05

Obrigado pelo comentário!

Foi um projeto que surgiu de um problema real que enfrentei em uma empresa que prestei serviço e somente anos depois estou conseguindo tirar a ideia do papel. Mas, sim, irei implementar essa funcionalidade de exportação de dados nesses exatos formatos em breve. Quem sabe também não vira um artigo rsrs.

E sobre o padrão MVC, foi a escolha que mais fez sentido para mim nesse projeto. Não queria complicar muito a ponto de se tornar inviável, não sou programador profissional ainda. Mas, esse projeto tem me ajudado muito com aprendizado com .NET. Ainda não concluí o projeto, então tem muito conhecimento a ser extraído dele.

DIO Community
DIO Community - 15/07/2025 11:59

André, o projeto Inventarium que você está desenvolvendo com ASP.NET Core MVC parece ser uma ótima implementação de boas práticas de arquitetura e padrões de design no desenvolvimento web. A escolha do padrão MVC não apenas organiza a aplicação de forma clara, mas também garante que a lógica de negócios, a interface do usuário e a manipulação de dados fiquem bem isolados, o que facilita a manutenção e a escalabilidade do sistema.

A forma como você usou o Entity Framework Core para interagir com o banco de dados e a Injeção de Dependência (DI) para separar as camadas do sistema demonstra um bom entendimento de como tornar o sistema modular e flexível.

A sua escolha por ASP.NET Core MVC para esse projeto também é interessante, pois ela oferece performance e uma boa integração com o .NET Core, o que garante a escalabilidade e robustez do sistema. Você já pensou em implementar outras funcionalidades, como exportação de dados para CSV ou PDF, ou até mesmo a integração com APIs externas, para expandir as capacidades do sistema no futuro?