Quando trabalhamos com mapeamento de objetos em nossas aplicações, é comum ocorrer de precisarmos mapear uma propriedade para uma outra propriedade com o mesmo nome, mas com tipos diferentes.

Por exemplo, há um objeto com uma propriedade chamada Enderecos que é do tipo List<Endereco> e é necessário mapear esta propriedade para um outro objeto que também tenha uma propriedade chamada Enderecos, mas que é do tipo List<EnderecoDto>.

Após pesquisar bastante, fiz algumas alterações no CloneInjection do ValueInjecter para fazer esta clonagem.

Vamos ao exemplo.

Suponhamos que temos uma API e não queremos expor nossos objetos de domínio, então criamos DTO’s…


Hoje venho compartilhar com vocês um código para aplicar máscara de moeda (máscara de reais) nos dados inseridos no Entry do Xamarin Forms.

O código do exemplo está disponível no meu Github neste link (github.com/tiagoavila/MascaraMoedaEntryXamarinForms)

No projeto compartilhado do seu aplicativo crie uma classe conforme o código abaixo:

Depois na sua página XAML, insira um Entry da seguinte forma:

Desta forma, ao digitar, o valor inserido já será formatado automaticamente para o formato de moeda (R$ 9.999,99).


Quando trabalhamos com API’s um dos requisitos mais importantes é a segurança. Para isto uns dos recursos mais utilizados são a validação de IP e também o uso de Basic Authentication.

Neste post vou demonstrar um exemplo de código para este fim. Vamos lá…

Para implementar ambas as funcionalidades, vamos utilizar um middleware, para interceptar as chamadas para a API. Caso queira saber mais sobre middlewares, clique aqui.

Para a validação de IP’s forneceremos uma lista de endereços permitidos (estes endereços ficarão no arquivo appsettings.json do projeto).

Caso algum IP esteja na lista, passamos para a etapa de validação do…


Este artigo mostra como utilizar o ASP.NET Core Identity juntamente com o banco de dados MySQL em uma aplicação .NET Core 2.0.

Link para o projeto no github.

Mãos a obra.

No Visual Studio, crie uma aplicação web com ASP.NET Core (New Project > Visual C# > .NET Core . ASP.NET Core Web Application).

Na próxima janela selecione Web Application e então clique no botão Change Authentication.


Nesse post falarei sobre como habilitar a compactação com gzip em uma aplicação feita em ASP.NET Core.

Primeiro instale via nuget o pacote do middleware de compactação, Microsoft.AspNetCore.ResponseCompression.

Na classe Startup.cs, no método ConfigureServices adicione o middleware e a configuração do gzip:

services.Configure(options => { options.Level = CompressionLevel.Fastest; }); services.AddResponseCompression(options => { options.Providers.Add<GzipCompressionProvider>(); });

O código ficará como nesta imagem:


A pouco tempo tive um cenário em um cliente onde ele necessitava ler um arquivo xls que era fornecido a ele por um banco. Então resolvi montar um exemplo de como fiz.

Utilizei a biblioteca ExcelDataReader, que se encontra disponível no Nuget. Lembrando que você deve instalar o pacote ExcelDataReader e também ExcelDataReader.DataSet.

O código abaixo faz um foreach nas linhas do arquivo xls e através da propriedade ItemArray é possível obter um array com o valor de cada célula.

Originally published at tiagoavilablog.com on September 22, 2017.


Em um projeto que venho trabalhando onde estava utilizando a biblioteca BoletoNet para geração de boletos e arquivos de remessa, tive a necessidade de salvar o boleto como PDF e em disco para ser utilizado posteriormente. A biblioteca BoletoNet gera o boleto como um HTML e eu precisava gerar um PDF a partir do HTML, para então salvá-lo em disco.

O procedimento foi pegar o HTML do boleto e utilizar a biblioteca Pechkin para gerar um arquivo PDF, de todas as bibliotecas que testei, esta foi a única que não corrompeu as imagens ou teve problemas na geração do PDF.

Tiago Ávila

Desenvolvedor/Consultor Freelancer .NET apaixonado por tecnologia

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