Este projeto demonstra como criar páginas poderosas no .NET utilizando Razor Pages, aplicando boas práticas de programação orientada a objetos e integração com banco de dados PostgreSQL.
O objetivo é construir um CRUD completo de contatos com estrutura limpa, escalável e moderna.
- .NET 8
- C# 12
- Razor Pages
- Entity Framework Core
- PostgreSQL
- Bootstrap (opcional para estilização)
- Design Patterns: MVC, MVVM, Repository
- Processador Dual Core ou superior
- 4 GB de RAM (mínimo)
- 500 MB de espaço livre em disco
- Windows 10 ou superior
- Visual Studio 2022 ou 2025 com suporte ao .NET 8
- PostgreSQL instalado e configurado
- .NET SDK 8.0
- Git (para versionamento e publicação)
Define a entidade Contato com propriedades como Nome, Telefone, Email, Data de Nascimento e Foto. Aplica validações com atributos como [Required], [StringLength] e [EmailAddress].
Classe de contexto do Entity Framework Core que representa a conexão com o banco de dados e expõe o DbSet<Contato>.
Interface que define os métodos do repositório: GetAllAsync, GetByIdAsync, AddAsync, UpdateAsync, DeleteAsync.
Implementação da interface IContatoRepository. Contém a lógica de acesso ao banco de dados usando o AppDbContext.
Página inicial da aplicação. Apresenta uma mensagem de boas-vindas e um botão para acessar a lista de contatos.
Exibe a lista de contatos cadastrados em uma tabela. Inclui botões para editar, visualizar detalhes e excluir.
Classe PageModel que carrega os contatos usando o repositório e os disponibiliza para a view.
Formulário para cadastrar um novo contato. Campos para nome, telefone, email, data de nascimento e foto.
Classe que recebe os dados do formulário, valida e salva o novo contato no banco de dados.
Formulário para editar um contato existente. Os dados são preenchidos automaticamente.
Carrega o contato por ID, permite edição e salva as alterações no banco.
Confirmação de exclusão de um contato. Exibe o nome e pergunta se deseja excluir.
Carrega o contato por ID e executa a exclusão após confirmação.
Exibe os detalhes completos de um contato, incluindo a foto.
Carrega o contato por ID e disponibiliza os dados para visualização.
Configura os serviços da aplicação, incluindo:
- Conexão com PostgreSQL
- Injeção de dependência do repositório
- Mapeamento de Razor Pages
Arquivo de configuração que contém a ConnectionString para o banco PostgreSQL:
"ConnectionStrings": {
"PostgresConnection": "Host=localhost;Database=AgendaDb;Username=postgres;Password=senha123"
}
---Estrutura de pastas e arquivos do repositório
🌐 Pasta de Imagens
wwwroot/imagens/ Diretório público para armazenar imagens dos contatos. Pode ser usado para upload ou exibição via URL.
🛠️ Como Executar o Projeto
1. Clone o repositório
bash git clone https://github.com/Santosdevbjj/razorPagesProjeto.git cd razorPagesProjeto
2. Configure o banco PostgreSQL
- Crie o banco AgendaDb
- Atualize appsettings.json com suas credenciais
3. Execute as migrações
bash dotnet ef migrations add InitialCreate dotnet ef database update
4. Execute a aplicação
bash dotnet run
5. Acesse no navegador
http://localhost:5000
📬 Contato: