Archives for Arquitetura

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 »
Arquitetura

Criando Web.Config Seguros com ProtectedConfigurationProvider


Hoje irei demostrar como podemos criar arquivos de configuração criptografado para as nossas aplicações ASP.NET. Isso é muito importante dado que quando colocamos uma aplicação em produção não pensamos em proteger dados sensíveis deste arquivo, como uma conexão com o banco de dados por exemplo. Essa técnica visa proteger nosso Web.Config dado que nosso servidor é passível de ataque pelo simples de estar na Internet. Lembre-se a Internet é terra de ninguém então toda a preocupação com segurança é sempre válida. Caso nosso servidor seja invadido, o hacker terá que quebrar a criptografia do nosso Web.Config para saber o acesso ao banco...
Continuar Lendo »
Arquitetura

Entenda o que é Data Parallelism & Task Parallelism.


Fala Galera, Hoje vamos abordar dois conceitos muitos utilizados na plataforma .NET,  a programação em paralelo e em tarefas. Task Parallel Library (TPL) é a biblioteca responsável por podermos usar os conceitos deTask e de Parallel no .NET Essa biblioteca contém um conjunto de API’s (Application Programming Interfaces) para simplificar o processo de adicionar paralelismo e concorrência em uma aplicação. O que é Task Parallel Library Como foi dito, a TPL é uma biblioteca que contém um conjunto de APIs públicas e essasAPIs estão localizados no namespace System.Threading e System.Threading.Tasks. E como funciona a TPL? Para se executar uma programação Paralela ou em Tarefas...
Continuar Lendo »
Arquitetura

Implementando o Design Pattern Repository e Unit Of Work com Entity Framework


Hoje venho demonstrar como podemos implementar o design pattern Repository e Unit Of Work. Esses são alguns dos padrões mais comuns utilizados na construção de um software. A implementação desses padrões ajudam a isolar a camada de negócio da camada de armazenamento de dados e facilita de forma significativa a implementações de Unit Tests ou – Test Driven Development (TDD) . O Design Pattern Repository e o Design Pattern Unit Of Work O padrão Repository é responsável por intermediação entre as camadas de domínio e mapeamento de dados, agindo como uma coleção objeto de domínio abstraindo a implementação de acesso a banco de dados. Conceitualmente a classe que implementa...
Continuar Lendo »
Arquitetura

Seja Reativo com Reactive Extensions


Neste post vou falar sobre aplicações reativas e quando pensamos nesse assunto nos perguntamos por que desenvolver uma aplicação reativa? Por que usuários esperam dados reais em tempo real, eles esperam que a confirmação de uma compra online seja confirmada na hora, eles esperam que os jogos online sejam responsivos e respondam a determinadas ações. A programação reativa baseia-se em fluxos de dados e propagação de mudanças com o modelo de execução de uma linguagem de programação repercutindo automaticamente através do fluxo de dados. Para se construir aplicações reativas, as aplicações reativas devem ser capazes de: Reagir a eventos – a...
Continuar Lendo »
Arquitetura

Utilizando o MongoDB em aplicações .NET


É inegável a importância dos bancos de dados relacionais dentro do mundo corporativo. O surgimento desta tecnologia revolucionou o tratamento de informações nos mais variados ramos de atuação, conferindo agilidade e flexibilidade às organizações em suas operações cotidianas. Este uso em larga escala de bases relacionais deve certamente continuar, tendo como pilares a linguagem SQL e a praticidade desta última na manipulação de dados. Por mais que a tecnologia relacional atenda a um amplo escopo de necessidades, em alguns cenários bem específicos esta abordagem pode não ser a solução mais adequada: Questões como uma alta disponibilidade e a capacidade...
Continuar Lendo »
Arquitetura

Aplicando SOLID com C# – DIP (Dependency Inversion Principle)


Finalmente chegamos à última parte sobre SOLID e pra encerrar, vamos conversar sobre o DIP (Dependency Inversion Principle) ou Princípio da Inversão de Dependência. Seria injusto dizer que qualquer um dos princípios SOLID é mais importante que o outro. No entanto, provavelmente nenhum dos outros tem um efeito tão imediato e profundo em seu código do que o DIP. Cogitar desenvolver um software sem levar em conta esse princípio é comprometer o projeto violando boas práticas de arquitetura. Mantra ou Definição Módulos de alto nível não devem depender de módulos de baixo nível. Mas sim ambos devem depender de...
Continuar Lendo »
Arquitetura

REST: uma visão geral


Representando atualmente a opção mais popular para a implementação de serviços, o modelo arquitetural conhecido como REST (abreviação do inglês “Representational State Transfer”) é uma presença quase certa em muitos soluções de e-commerce, mecanismos de integração em tempo real e aplicações mobile. Esta abordagem foi proposta por Roy Fielding ainda no início dos anos 2000, tendo como pilares o uso de requisições HTTP e o conceito de recurso. A ideia de recurso diz respeito a um elemento (conjunto de dados) do qual uma aplicação depende, normalmente correspondendo a um item específico de uma área de negócios. Tomando como exemplo...
Continuar Lendo »
Arquitetura

Introdução ao MVVM (Model-View-ViewModel) – Parte 2 – View


Dando continuidade nessa série de artigos sobre MVVM, vou prosseguir descrevendo o funcionamento da View. Antes, gostaria de esclarecer que apesar de o MVVM ser utilizado em vários cenários. Este artigo vai focar em 3 cenários semelhantes: UWP (Windows 10), WPF e Xamarin.Forms. É na View onde acontece a maior diferenciação relacionado ao MVVM, quando comparado outros cenários. Portanto as partes: Xamarin.iOS, Xamarin.Android e Web (MVC, Angular e knockout.js) fica de fora, por enquanto. Para facilitar o entendimento vou demonstrar alguns exemplos, escritos em C# com WPF. WPF, é um acrônimo para o Windows Presentation Foundation, é uma abordagem...
Continuar Lendo »