Close Menu
Código Simples .NETCódigo Simples .NET
    Facebook X (Twitter) Instagram
    Trending
    • NewSQL em 2025: O Estado Atual, Tendências e o Futuro dos Bancos de Dados Relacionais Escaláveis
    • 12 Regras Essenciais para Reduzir a Latência de Aplicações
    • Cache Hit Ratio: Como uma Simples Métrica Pode Revolucionar sua Arquitetura
    • Como a Uber calcula o tempo estimado de chegada
    • 30 APIs Gratuitas para desenvolvedores
    • Por que escalar escrita é tão mais difícil do que escalar leitura?
    • MongoDB Analyzer para .NET: Visualize e otimize suas consultas de forma simples
    • Cardinalidade: O Conceito que Transforma o Desempenho de Bancos de Dados SQL e NoSQL
    Facebook X (Twitter) Instagram
    Código Simples .NETCódigo Simples .NET
    Código Simples .NETCódigo Simples .NET
    Home»Asp.net»C#»Blazor .NET – CRUD com MongoDB

    Blazor .NET – CRUD com MongoDB

    Jhonathan SoaresBy Jhonathan Soares2 de janeiro de 20195 Mins Read C#
    Share
    Facebook Twitter LinkedIn WhatsApp Copy Link

    Neste artigo, criaremos um aplicativo Blazor usando o MongoDB como nosso provedor de banco de dados. Se você ainda está em dúvidas como Blazor funciona ou o que ele é, talvez você possa dar uma olhada no meu artigo sobre Introdução ao Blazor;

    Vamos criar um aplicativo de página única (SPA) e executar operações CRUD nele. Um popup modal exibirá o formulário para manipular as entradas do usuário e o formulário também terá uma listagem de usuários logo na página inicial.

    Vamos usar o Visual Studio 2017 e o MongoDB 4.0. Porém o código funciona com qualquer versão do MongoDB 3.4+

    Veja o código fonte do projeto no meu Github e analise completamente para aprofundar seu conhecimento.

    Configurando o MongoDB

    Neste exemplo, eu estou utilizando uma máquina local sem qualquer tipo de autenticação, o que não é recomendado para ambientes de produção, ok?

    Primeiramente, eu criei um banco chamado EmployeeDB, e adicionei um único registro que irei utilizar na listagem de usuários até criamos os métodos de inserção.

    use EmployeeDB  
    
    //criando coleções
    db.createCollection('Employee');
    db.createCollection('Cities');
    
    //inserindos cidades padrão
    db.Cities.insertMany([  
           { CityName : "São Paulo" },  
           { CityName : "Maceió"},  
           { CityName : "Alfenas"},  
           { CityName : "Pouso Alegre"},  
           { CityName : "Fortaleza" }  
        ]);  
        
        
    //inserindo um funcionário
    
    db.EmployeeRecord.insert({'Name':'Jhonathan','Gender':'Male','Department':'TI','City':'Alfenas'});
    
    
    
    
    

    Após a inserção você deverá ver um registro no seu banco de dados:

    Bom, se você chegou até aqui, vamos codar! Iremos criar uma solução com 3 projetos:

    • Projeto compartilhado, onde irei ter minha classe de domínio (model) e a classe que irá conectar com o MongoDB.
      • Aqui eu coloquei chamado de BlazorMongo.Shared
      • O mesmo é uma class library utilizando .net standard 2.0 + MongoDB Driver 2.7
      • Dentro dele possui uma pasta de domínio onde coloquei minhas classes de modelagem e uma pasta de repositório, onde eu faço a persistência no banco.
    • Projeto API que será onde irei colocar meus métodos de CRUD expostos via REST
      • Aqui eu coloquei chamado de BlazorMongo.API
      • O mesmo é uma API utilizando .net core 2.1 + MongoDB Driver 2.7 + Microsoft.AspNetCore.Blazor.Server 0.7
      • Dentro dele possui uma controller onde coloquei meu métodos que fazem todo o CRUD com MongoDB chamando o repositório que eu criei no projeto BlazorMongo.Shared
      • Também adicionei na classe startup a referência que ele é um projeto de API Blazor, isso é muito importante para que nossa SPA se comunique com a API de forma automática.
    • Projeto Blazor, onde será meu SPA web.
      • Aqui removi a página Index padrão e adicionei uma Razor Page com o mesmo nome porém fazendo implementação do BlazorComponent e não do Razor.
      • Nessa página também adicionei os componentes que irão fazer a chamada no código da Razor page que irá acionar nossa API.

    Essa é a estrutura da minha solução:

    Vamos entender esse código da página Index. No topo, definimos a rota desta página como “/”. Isso significa que se anexarmos “/” ao URL raiz do aplicativo, seremos redirecionados para esta página, ela é a nossa Home Page. Também herdamos a classe IndexModel , que é definida no arquivo Index.cshtml.cs . Isso nos permitirá usar os métodos definidos na classe
    IndexModel .

    Depois disso, definimos um botão para adicionar um novo registro de funcionário. Quando clicado, este botão abrirá um popup modal para manipular as entradas do usuário.

    A lista de documentos de funcionários retornados do banco de dados é armazenada na variável empList . Se a variável não for nula, vincularemos os valores a uma tabela para exibir os documentos do funcionário de maneira tabular. Cada linha da tabela tem dois links de ação, Editar para editar o documento do empregado e Excluir para excluir o documento do empregado.
    Para lidar com as entradas do usuário, estamos usando um formulário. Estamos usando um único formulário para a funcionalidade Adicionar Funcionário e Editar Empregado. O formulário é definido em um popup modal e o popup modal é exibido na tela com base no valor de uma propriedade booleana isAdd . O valor dessa propriedade booleana é definido na página code behind (.cshtml.cs).

    A lista de Cidades dentro do formulário é vinculada à nossa coleção Cities no banco de dados com a ajuda da variável cityList . O cityList será preenchido quando o aplicativo for inicializado. Assim como a lista de usuários também:

    O formulário terá um botão Salvar que invocará o método SaveEmployee , definido no para Adicionar ou Atualizar um documento do empregado. Semelhante ao Add popup modal, também temos um popup modal de exclusão . Será um modal somente para leitura e solicitará uma confirmação para excluir um documento do empregado. Ao clicar em “Sim”, ele invocará o método DeleteEmployee para excluir o documento do empregado.

    Assim, criamos com sucesso um aplicativo de página única (SPA) usando o Blazor com a ajuda do MongoDB como provedor de banco de dados.

    Demonstração de Execução:  Selecione o projeto padrão da API para execução e pressione F5 para iniciar o aplicativo.

    Uma página da web será aberta conforme mostrado na imagem abaixo.

    Conclusão :

    Criamos um Aplicativo de Página Única (SPA) usando o Blazor com a ajuda do MongoDB como o provedor de banco de dados. Criamos um sistema de gerenciamento de registros de funcionários e executamos operações CRUD. A entrada do usuário é manipulada por meio de um formulário em um popup modal. Nós usamos o Visual Studio 2017 e o MongoDB 4.0 para nossa demonstração.

    Por favor, veja o código fonte do projeto no meu Github e analise completamente para aprofundar seu conhecimento.

    Um grande abraço a todos! 🙂

    Fontes e referências:

    https://blazor.net/

    https://docs.mongodb.com/ecosystem/drivers/csharp/

    https://www.c-sharpcorner.com/article/blazor-crud


    Share. Facebook Twitter LinkedIn Telegram WhatsApp Copy Link
    Jhonathan Soares
    • Website
    • Facebook
    • X (Twitter)
    • LinkedIn

    Criador do blog Código Simples e com mais 15 anos de experiência em TI, com títulos de MVP Microsoft na área de Visual Studio Development, Neo4j Top 50 Certificate, Scrum Master e MongoDB Evangelist.

    Posts Relacionados

    MongoDB Analyzer para .NET: Visualize e otimize suas consultas de forma simples

    NoSql 7 de fevereiro de 20255 Mins Read

    Cardinalidade: O Conceito que Transforma o Desempenho de Bancos de Dados SQL e NoSQL

    NoSql Sql 14 de janeiro de 20257 Mins Read

    O que é a Ecma e qual é sua relação com C#?

    C# Post do Leitor 29 de julho de 20247 Mins Read
    Newsletter

    Digite seu endereço de e-mail para receber notificações de novas publicações por e-mail.

    Junte-se a 25mil outros assinantes
    Posts recentes
    • NewSQL em 2025: O Estado Atual, Tendências e o Futuro dos Bancos de Dados Relacionais Escaláveis
    • 12 Regras Essenciais para Reduzir a Latência de Aplicações
    • Cache Hit Ratio: Como uma Simples Métrica Pode Revolucionar sua Arquitetura
    • Como a Uber calcula o tempo estimado de chegada
    • 30 APIs Gratuitas para desenvolvedores
    Categorias
    • Arquitetura (14)
      • Testes (2)
    • Asp.net (120)
      • C# (89)
      • Mvc (13)
    • Banco de dados (90)
      • NoSql (58)
      • Sql (38)
    • Boas práticas (29)
      • Gestão & Produtividade (1)
      • Metodologias Ágeis (6)
    • Cursos (52)
    • Dicas (105)
    • Front-End (92)
    • IA (1)
    • Linux (6)
    • NodeJS (4)
    • Post do Leitor (9)
    • Python (5)
    • Seo (12)
    • Tecnologia (30)
      • ITIL (1)
      • Padrões de Projeto (4)
    • Testes (2)

    VEJA TAMBÉM

    Cursos
    12 de fevereiro de 20166 Mins Read

    1000 livros gratuitos sobre programação!

    Olha que dica bacana! A pagina só com livros sobre programação é mantida no GitHub…

    30 APIs Gratuitas para desenvolvedores

    Facebook X (Twitter) Instagram LinkedIn

    Type above and press Enter to search. Press Esc to cancel.

    Vá para versão mobile