C# 7.0

C# 7.0: novos Expression-bodied Members


Uma das novidades trazidas pelo C# 6.0 foi a possibilidade de implementar propriedades somente leitura e funções por meio de expressões lambda. Este recurso ficou conhecido como Expression-bodied Members, tendo sido abordado anteriormente em outro artigo deste blog. O C# 7.0 expandiu as possibilidades de uso dos Expression-bodied Members, permitindo o uso de expressões lambda em construtores, finalizers e propriedades que aceitem a atribuição de valores (neste caso com as seções get e set presentes). No exemplo a seguir é possível observar a implementação da classe CargaDados, com um construtor e um finalizer: Já a próxima listagem traz o...
Continuar Lendo »
C# 5.0

Dicas sobre .NET: Classes Sealed


A noção de herança representa um dos tópicos mais conhecidos dentro da Orientação a Objetos. Dando grande ênfase à questão do reaproveitamento de código, este conceito permite a implementação de variações de uma classe a partir da redefinição de alguns de seus comportamentos básicos (ou mesmo todos). Outra possibilidade também seria estender as capacidades de um tipo, adicionando a este último novas funcionalidades que não foram previstas na classe original. No caso específico da plataforma .NET, qualquer classe pode a princípio ser herdada. Embora esta capacidade seja uma característica desejável, existem situações em que surgirá a necessidade de se...
Continuar Lendo »
ASP.NET Core

Validando dados com Fluent Validation


Fala galera, beleza? Vou apresentar uma maneira bem sucinta de validar os dados de modo server-side no ASP.NET Core usando o Fluent Validation. Para quem não conhece o Fluent Validation, trata se de uma excelente biblioteca disponível no .NET Framework para realizar validação de classes usadas como View Models, Commands (conceito do CQRS), DTOs ou até mesmo entidades de domínio. A validação ocorre usando o que o próprio framework define como Fluent Interface que nada mais é que construir as regras de validação com métodos encadeados e expressões lambdas, modo que todo desenvolvedor .NET já é acostumado a trabalhar. No caso do...
Continuar Lendo »
Bibliotecas e Ferramentas

Dicas sobre .NET: convertendo JSON para XML (e vice-versa)


Figurando entre os padrões mais comuns para o intercâmbio de informações, os formatos XML e JSON constituem presença praticamente certa ao se considerar a comunicação entre diferentes aplicações por meio de Web Services. Tal popularidade se deve, sem sombra de dúvidas, ao suporte que as principais plataformas de desenvolvimento da atualidade oferecem a estas especificações. Nota-se inclusive que há no mercado uma maior preferência pelo padrão JSON, dada sua simplicidade e o menor volume de dados trafegado ao se escolher esta opção. Apesar de tudo isso, o formato XML continua a ser bastante utilizado em soluções corporativas. Levando em...
Continuar Lendo »
C# 5.0

Dicas sobre .NET: consultas LINQ em objetos compostos


Muitas consultas LINQ envolvem apenas a seleção de propriedades no conjunto de objetos que se está manipulando. Este procedimento costuma se assemelhar ao uso da cláusula SELECT em uma tabela relacional convencional. Embora a prática citada seja a mais comum em aplicações .NET, há casos nos quais objetos contam com propriedades que também são coleções. E eis que surge a necessidade de se retornar os valores dos objetos-filhos. Como proceder nestes casos? Ainda assim será possível o uso de uma consulta LINQ nestes cenários. Para exemplificar isto serão utilizadas duas classes (Cidade e Estado), cuja implementação está na próxima...
Continuar Lendo »
Acesso a Dados

Acesso a dados com Dapper .NET


Fala galera, Umas das operações quando nós construirmos uma aplicação é como faremos o acesso os dados em uma base relacional. Ao longo dos anos como desenvolvedor .NET fiquei pensando como seria como aliar a produtividade para acessar dados junto com performance do banco de dados. Tempos atrás quando desenvolvíamos aplicações a onda do momento era fazer “Store Procedure” para acesso a dados, porém sempre caímos na questão da produtividade em se construir uma aplicação. Depois surgiu o .NET 3.5 e com ele o Linq2Sql e mais recente o Entity Framework, ganhamos muito em produtividade mas todos sabíamos que...
Continuar Lendo »
ASP.NET WEB API 2

Swagger – Documente seu ASP.NET Web API Rest


Fala Galera, Hoje meu post irá falar sobre como podemos documentar nossas API REST. Documentar nunca foi e nunca será uma tarefa das mais legais geralmente é monótono, cansativo e trabalhoso. Documentação tende-se a se perder a longo do tempo e facilmente ficar desatualizado. E ai que surgiu o Swagger, ele é um framework que automatiza a documentação, com ele você pode descrever, consumir e visualizar sua API REST. O interessante do Swagger é que ele mantém sua documentação sempre sincronizada tanto no lado cliente quanto no lado servidor já que ele está integrado diretamente ao código. Swagger é um Framework multi...
Continuar Lendo »
Desenvolvimento

Dicas sobre .NET: utilizando a classe Stopwatch


Determinar o tempo de processamento de uma tarefa é uma necessidade bastante comum em projetos de software. Este tipo de procedimento costuma estar associado à implementação de logs de monitoramento ou, mesmo, à geração de feedback reportando o andamento de uma atividade. Muitos desenvolvedores costumam registrar o horário de início e término em casos como este, calculando ao final o tempo decorrido na execução de um conjunto de instruções. Embora se trate de uma prática válida e adotada por muitas aplicações, a plataforma .NET conta com um recurso que simplifica esta tarefa: a classe Stopwatch, que integra o namespace...
Continuar Lendo »
Arquitetura

Message Broker com RabbitMQ


Fala Galera, Hoje venho falar sobre como podemos desacoplar nossa aplicação, distribuindo o processamento de alguns serviços e ganhando escalabilidade. Esse paradigma em computação é conhecida como Computação Distribuída. Um dos conceito da computação distribuída é a troca de mensagem com a utilização de Filas. E neste post estarei demonstrando como usar uma topologia de fila com o RabbitMQ O que é RabbitMQ Message Broker? RabbitMQ é uma serviço de Message Broker, open source multiplataforma que foi desenvolvido em ERLANG, totalmente suportados por diversas linguagens de programação, fácil de usar, confiável, com administração nativa e failover. Instalação Para essa demostração, irei utilizar o...
Continuar Lendo »
Arquitetura

Cache Distribuído & Session State com Redis NoSQL Server


Fala Galera, Hoje irei postar sobre como podendo integrar o Redis NoSQL para ser utilizado como cache distribuído em nossas aplicações ASP.NET. O Redis é um banco de dados NoSQL de alta performance, in-memory, data estruturado e aceita diversos tipo como hashs, strings, lists, sets e ordered sets e muito mais. As vantagens de se usar o Redis são: Simples de Configurar Fácil de Usar Alta performance Configurando o Redis no Azure Para configurar o Redis no Azure, vamos entrar no painel de controle do Azure portal.azure.com e crie um novo serviço do Redis conforme figura abaixo: Com o serviço...
Continuar Lendo »