Archives for Windows

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 »
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 »
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 »
C# 7.0

Novidades do C# 7 – Local Functions


Neste terceiro post da série sobre novidades do C# 7 serão apresentadas as Local Functions. Se tiver interesse em saber mais sobre as postagens anteriores consulte os links: http://netcoders.com.br/csharp-7-pattern-matching/ http://netcoders.com.br/csharp7-binary-literals-digit-separators/ http://netcoders.com.br/csharp7-ref-returns/ Configurando o uso do C# 7 no Visual Studio “15” Para os exemplos descritos neste artigo foram criados dois projetos a partir do template “Console Application” do Preview 2 do Visual Studio “15”, com os mesmos utilizando a versão 4.6.1 do .NET Framework. O download do novo Visual Studio pode ser realizado por meio do seguinte link: https://www.visualstudio.com/en-us/news/releasenotes/vs15/vs15-relnotes Para configurar o uso do C# 7 acesse a seção...
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 »
C# 7.0

Novidades do C# 7 – Ref Returns


Neste terceiro post da série sobre novidades do C# 7 será apresentado em detalhes um recurso chamado Ref Returns. Caso queira acompanhar as postagens anteriores consulte os links: Novidades do C# 7 – Pattern Matching Novidades do C# 7 – Binary Literals e Digit Separators Configurando o uso do C# 7 no Visual Studio “15” Para o exemplo descrito neste artigo foi utilizado um projeto baseado no template “Console Application” do Preview 2 do Visual Studio “15”, além da versão 4.6.1 do .NET Framework. O download do novo Visual Studio pode ser realizado por meio do seguinte link: https://www.visualstudio.com/en-us/news/releasenotes/vs15/vs15-relnotes...
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 »
C# 7.0

Novidades do C# 7 – Binary Literals e Digit Separators


Embora ainda se encontre em fase de implementação e apresente funcionalidades passando pela fase de especificação/prototipação, algumas das novidades do C# 7 já estão disponíveis para testes no Visual Studio “15”. Num post anterior iniciei uma série sobre as novidades da linguagem, abordando em detalhes o uso do recurso chamado Pattern Matching. Neste novo artigo serão descritas duas novas funcionalidades que integram o C# 7: Binary Literals e Digit Separators. Para os exemplos descritos neste artigo foram utilizados projetos do tipo “Console Application” no Preview 2 do Visual Studio “15”, com os mesmos se baseando na versão 4.6.1 do...
Continuar Lendo »