Padrão de Repositório é um dos padrões comuns de design que permitem estruturar seu código de uma maneira que facilitaria o processo de leitura e escrita de dados para o Banco de Dados. O padrão do repositório destina-se a criar uma camada de abstração entre a camada de acesso de dados e a camada lógica de negócios de um aplicativo. Ele oferece muito menos acoplamento especialmente quando as configurações do Banco de Dados mudam.

Vou demonstrar aqui a implementação de um Repositório Genérico e onde usar essa implementação, além de destacar seus benefícios para a estruturação da sua aplicação.

Para…


Quem nunca se estressou ao pensar em todas as regras necessárias para fazer a validação de seus objetos em C# e como elas serão testadas !

Sempre que criamos uma aplicação, temos modelos que precisam ser validados, existem validações de Contratos, validações de Modelos, validações de negócios, e estas validações além de complexas podem se tornar incompreensíveis se forem mal escritas.

Venho programando há muito tempo, e uma das melhores implementações de validação que aprendi a utilizar é a biblioteca “FluentValidation” que permite que validemos as propriedades dos objetos de forma clara e de fácil compreensão, além de ser fáceis…


Para começar, é preciso saber o que são os tipos genéricos em C#, no post anterior (link), demonstrei a implementação de tipos genéricos em classes.

Então para melhorar nossas práticas e dar mais qualidade em nosso código, utilizamos muitas vezes as Interfaces, que nada mais são do que um “contrato” estabelecendo regras para quem à implementa, onde as classes deverão possuir todos os métodos contidos nas interfaces.

Mas muitas vezes, nós temos que criar um padrão para nosso projeto, onde várias classes devem herdar um modelo (exemplo: classes de serviços e repositórios), e para evitar que tenhamos que criar múltiplas…


Muitas vezes precisamos resolver problemas comuns e evitar a reescrita de código, esse é o propósito de qualquer desenvolvedor quando quer ganhar produtividade, sendo assim, se houvesse uma solução “Genérica” para um problema seria ótimo !

Muitas tarefas são comuns, e você gostaria de usar um código que pudesse ser reutilizado com qualquer classe do seu projeto (um CRUD por exemplo).

O que são Generics em C# ?

Quando programamos em C#, definimos nossas classes para múltiplos propósitos, então pensando em podermos “Generalizar” a referência a estes objetos, ainda quando estava no .Net Framework 2.0 foi criado o tipo Genérico (System.Collection.Generic) que veio para ajudar na reutilização…


Em projetos simples sempre nos deparamos com a necessidade de realizar upload de imagens ou arquivos em geral em nossas aplicações.

Aqui irei demonstrar à vocês como fazê-lo utilizando .NET MVC , inicialmente salvando os anexos enviados numa pasta dentro da sua aplicação, que pode estar num servidor tradicional ou num Web App da Cloud Azure.

Esta não é a única solução, mas a mais simples, ainda vou demonstrar em outro post como fazê-lo num Storage na Nuvem !

Para começar, vamos criar uma aplicação .NET Core MVC, escolhendo o template de projeto.


Muitas vezes nós precisamos enviar e-mails com C#, é uma tarefa simples e básica, as vezes precisamos até enviar anexos neste e-mail.

Então para deixar um exemplo prático e simples de se utilizar, vou criar este projeto abaixo que foi usado numa aula do Curso de Desenvolvimento de Software na Etec de Itu.

Para envio de e-mails, o C# dispõe de uma classe SmtpClient que vem da biblioteca nativa System.Net.Mail (mais informações em: SmtpClient Classe (System.Net.Mail) | Microsoft Docs).

Então vamos criar um projeto .Net …


Certo dia numa aula na Etec surgiu uma dúvida de um aluno sobre como fazer algo muito simples, mas achei bastante positiva a abordagem.

A situação era a seguinte:

Meus alunos haviam desenvolvido um projeto .NET Core 3.1 MVC, onde haviam 2 entidades: Cliente e ClienteEndereço, e eles queriam ter uma tela onde ao cadastrar um cliente novo, já fosse dado o input de um endereço (um cliente suporta vários endereços nesse cenário).

Sendo assim, estas eram as classes de cliente e endereço:

classe clienteModel

Sendo assim, através da criação das Controllers + Views através do método “Scaffold”, tínhamos…


Uma das melhores coisas disponíveis no mundo da tecnologia é a possibilidade de executar múltiplas tarefas simultaneamente.

No início da computação nos meados dos anos 90, tínhamos sistemas operacionais que não permitiam a execução simultânea de tarefas!

Imaginem um mundo onde em seu computador, na hora de imprimir, ele parava de responder até que a impressão fosse concluída, ou se disparássemos uma outra tarefa que tinha prioridade, a sua impressão parava para que o computador pudesse concluir o outro trabalho.

Graças aos avanços tecnológicos hoje podemos ouvir música, trabalhar, fazer downloads, baixar arquivos tudo simultaneamente !!

Da mesma forma, podemos…


Continuando a explorar a biblioteca usada para salvar uma planilha do Excel com C# feita no meu artigo anterior, vamos agora aprender a carregar dados de uma planilha.

Para começar então, temos uma planilha base assim:


Sempre que precisamos realizar a conversão de uma classe para outra, podemos fazer uso de uma ferramenta bastante simples e que confere um ganho de desempenho no nosso tempo de desenvolvimento, é o Automapper !

Presente desde versões mais antigas do .NET, o AutoMapper facilita em muito as nossas implementações, com uma simples linha de código, ele faz toda a conversão dos campos de uma classe para outra.

Veja no exemplo abaixo, tudo que foi comentado foi substituído pelas linhas do Automapper.

Para usá-lo devemos seguir alguns passos bastante simples, e que normalmente vamos fazer uma única vez na criação…

Marcio Nizzola

Desenvolvedor .Net Sr. | Prof. da Etec Itu | Membro Fundador da Comunidade Itu Developers.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store