Integrações entre Sistemas – Parte 15 – Web Service (Async) com Servidor Síncrono

Introdução Após uma conversa interessante com o Roger Luiz Pereira (grande desenvolvedor e amigo de trabalho) no escritório, alguns questionamentos interessantes foram levantados sobre os métodos. Um deles está relacionado com o quanto de desempenho a implementação com async/await no lado do servidor contribui no desempenho. O objetivo deste post é contemplar este cenário nos … Continue reading Integrações entre Sistemas – Parte 15 – Web Service (Async) com Servidor Síncrono

Integrações entre Sistemas – Parte 14 – Web Service (Async)

Introdução Com a evolução do framework e a implementação do modelo Async/Await, fiquei curioso sobre como seria o desempenho em relação aos demais métodos de integração já apresentados nas demais partes desta série (Ver o Índice para localizar as demais). O que muda na implementação? Basicamente, peguei a mesma implementação usada na parte 4 para … Continue reading Integrações entre Sistemas – Parte 14 – Web Service (Async)

Programação Paralela – Parte 4 – I/O Assícrono com Async/Await

Introdução Na parte 3 desta série, vimos como o I/O assíncrono pode ser mais eficiente, liberando a CPU da thread que espera por I/O para fazer outra atividade, aumentando o desempenho geral da aplicação. Vimos também como essa implementação pode ser complexa. O objetivo deste post é mostrar como as novas features de async/await, implementadas … Continue reading Programação Paralela – Parte 4 – I/O Assícrono com Async/Await

Programação Paralela – Parte 3 – Operações de I/O e Locks

Introdução Na parte 1 desta série, observamos que muitas vezes aumentar a quantidade de threads da aplicação sem nenhum critério pode causar pior desempenho do que manter a aplicação numa única thread. Na parte 2, como os locks também podem gerar problemas potenciais de performance. E qual a relação destes dois assuntos com I/O (input/output … Continue reading Programação Paralela – Parte 3 – Operações de I/O e Locks

Programação Paralela – Parte 2 – Locks em threads

O que é um lock? Há situações em threads que precisamos fazer com que uma thread espera a outra, dado que ambas pretendem acessar um recurso que não pode ser acessado simultaneamente. Neste caso, utilizamos locks. O problema é que sempre que uma thread espera por um lock, ela está consumindo recursos, gerando trabalho para … Continue reading Programação Paralela – Parte 2 – Locks em threads

Programação paralela – Parte 1 – Quantas threads?

Introdução Recentemente, comecei a fazer alguns estudos referentes à parte de programação assíncrona do .NET 4.5. Para chegar no conceito de como funciona a parte de I/O assíncrono, achei interessante voltar um pouco e começar pelas raízes da programação paralela, com o objetivo de ilustrar claramente as diferenças e como esses conceitos se combinam. Daí … Continue reading Programação paralela – Parte 1 – Quantas threads?

Linguagens compiladas, interpretadas e byte-code

Introdução Recentemente, comecei a aprender Python. Tudo começou num bate-papo no café do TDC 2013, com o @juanplopes (thanks!). Estávamos discutindo sobre linguagens, ele mencionou o Python e eu imediatamente falei sobre minha "birra" com linguagens interpretadas. Então o Juan comentou de algumas alternativas de JIT-Compiler para o Python. Esse post nasceu para falar de … Continue reading Linguagens compiladas, interpretadas e byte-code

Por que números de ponto flutuante (Float e Double) são imprecisos?

Objetivo Esses dias fui questionado por um colega de trabalho sobre usar números de ponto flutuante (float ou double) ou o tipo decimal para representar números. Confesso que nunca tinha refletido a fundo nessa questão e aproveitei a oportunidade para pesquisar melhor o tema. Já tive muitos problemas com imprecisões em floats em casas decimais … Continue reading Por que números de ponto flutuante (Float e Double) são imprecisos?

Automatizando o versionamento no Build – Parte 2

Objetivo Na parte 1, entendemos como o .NET faz para marcar a versão nos binários e como criar um arquivo para centralizar as propriedades comuns entre os assemblies. Agora vamos brincar um pouco de como automatizar isso com o MSBuild. Se vc não sabe o que é o MSBuild, sugiro a leitura de MSBuild in … Continue reading Automatizando o versionamento no Build – Parte 2

Automatizando o versionamento no Build – Parte 1

Objetivo Conforme comentei no post anterior sobre a documentação do MSBuildCodeMetrics, uma outra coisa que eu queria fazer era automatizar o versionamento durante o Build. O que eu quero dizer com isso é que eu queria "carimbar" meus binários com a localização em que eles estão no controle de versão. A idéia deste post (ou … Continue reading Automatizando o versionamento no Build – Parte 1