Performance e o HTTP/2

Performance é um fator vital em nossas aplicações web, falando de performance de front-end, ela é uma das maiores responsáveis pelo tempo que nossas páginas demoram para carregar.

O HTTP/2 é uma nova versão do protocolo de comunicação que utilizamos na web, ele vem com vários benefícios que trazem muitas melhorias para nossas aplicações.

O principal objetivo do HTTP/2 é o de reduzir a latência de comunicação, possibilitando a paralelização de requisições com multiplexing, a diminuição de overheads causados pelo protocolo (utilizando uma compressão eficiente de headers HTTP), o suporte a priorização de requisições e a possibilidade de pushs vindos do servidor.

Continue reading

Docker e Yeoman: generator-docker

O Docker e a tecnologia de containers facilitam muita a padronização de ambientes, a agilidade em provisionar infra-estrutura e ainda, nos ajudam a transformar o ambiente de nossa aplicação em parte do projeto. Já o Yeoman é uma ferramenta que nos ajuda durante a criação de projetos, templates e scaffoldings, como por exemplo criar a estrutura de um projeto com ASP.NET Core sem a necessidade do Visual Studio.

Neste post vou mostrar um generator do Yeoman que utilizei para gerar scripts e arquivos de configurações para o Docker, atualmente ele gera scripts para ASP.NET 5.0, Node.JS e Go. Continue reading

Codificando Night Week 2016 \o/

Na semana passada aconteceu o Codificando Night Week 2016. Uma semana, todas as noites com palestras sobre diversos assuntos como desenvolvimento, testes, banco de dados,  mobile, web e performance.

image

Neste ano já atingimos aproximadamente 115.170 minutos assistidos (+-79 dias), quero agradecer a todos que ajudaram no evento, principalmente ao Angelo Belchior e ao Diego Nogare que participaram da organização, sem eles o evento não teria acontecido, bem como a todos os palestrantes que trouxeram conteúdos excelentes e fizeram apresentações sensacionais.

Abaixo eu tentei organizar e disponibilizar o material que encontrei sobre o evento:

Continue reading

ASP.NET 5 + Kestrel + Nginx e Ubuntu: configurando um ambiente de produção

Uma das grandes mudanças no desenvolvimento do ASP.NET 5 é a de que ele é suportado em múltiplas plataformas (Windows, Linux ou Mac), além de possuir o ambiente de desenvolvimento suportado nestas plataformas, o ambiente de produção também está sendo desenvolvido para que possamos fazer deploy de nossas aplicações em ambientes diferentes, como por exemplo em um Linux.

Montei um ambiente (ASP.NET 5 + Linux) para realizar alguns testes de performance e estabilidade, a ideia deste post é mostrar um pouco o que precisei fazer para configurar e deixar o ambiente ok.

Continue reading

Contribuindo com a documentação do ASP.NET 5

O ASP.NET 5 é um projeto open source e cross-plataform, todo seu desenvolvimento está sendo feito no GitHub (incluindo varias contribuições e feedbacks da comunidade de desenvolvimento). Considerando esta nova mentalidade e abordagem de trabalho, o time do ASP.NET escolheu uma plataforma para escrever e manter a documentação deste framework.

Continue reading

Trilha Codificando.NET – Congresso de Tecnologia da Fatec-SP

Na próxima semana vou participar organizando uma trilha de desenvolvimento no 17º Congresso de Tecnologia da Faculdade de Tecnologia de São Paulo (FATEC-SP). Ele é um evento anual, que reúne diversos profissionais da área de tecnologia (mecânica, construção, tecnologia da informação, etc).

A FATEC-SP é uma faculdade muito conceituada na área de TI, e a ideia de organizar esta trilha é a de trazer conteúdos relacionados ao mercado de tecnologia para dentro da faculdade.

O evento é gratuito e aberto ao publico, possuindo diversas outras palestras e um Simpósio de Iniciação Científica e Tecnológica.

Continue reading

Python e Flask: criando um webserver para executar scripts e trabalhar com webhooks

A maioria dos serviços de integração continua ou ferramentas de comunicação (Slack) dispões de webhooks para realizar a comunicação entre as diversas partes e orquestração dos processos.

A idea deste post é mostrar como é simples montar um servidor utilizando Python e Flask que receba alguns requests e execute alguns scripts, recentemente utilizei uma aplicação que foi feita pelo Wilson Tayar e pelo Vinicius Quaiato para automatizar o processo de deploy, a aplicação recebe um post quando qualquer mudança na master de um projeto no GitHub, a partir deste post, ela executa uma serie de scripts para realizar o deploy e notificar um grupo do slack que o deploy terminou.

Para este exemplo, vamos precisar instalar o Python e o pip (gerenciador de pacotes do Python), com eles funcionando em nosso computador podemos começar. Continue reading

ASP.NET MVC 6 – JSON Helper

O ASP.NET MVC 6 é que ele traz diversos recursos e implementações que já eram necessárias para nossos projetos, e que muitas vezes resolvíamos com uma implementação customizada de alguma parte do projeto ou helper. Apesar dele resolver varias coisas que fazíamos com nossas implementações, acredito que o ASP.NET MVC ter este paradigma de um framework plugável é sensacional, e muito importante. A ideia deste post é mostrar um helper para serializar JSON na View.

JSON Helper

Algumas vezes em nossos projetos temos que passar informações para o javascript ou para alguma api através do html que a View está gerando, como por exemplo passar os dados de checkout de uma transação para uma api de tracking. Nestas ocasiões geralmente escrevíamos o objeto item por item ou transformávamos ele em JSON ele antes de retornar para a view.

Continue reading

ASP.NET MVC 6 – Image Tag Helper

A forma que está sendo desenvolvida a nova versão do ASP.NET 5 está garantindo uma grande interação e feedback com os desenvolvedores, consequentemente uma significativa melhora em várias assuntos, desde o desenvolvimento independente de plataforma, até questões de design(de projeto) e melhorias de performance.

Falando em performance, segundo alguns estudos o front-end ainda é o responsável por 80% do tempo de carregamento de uma página, uma técnica bastante utilizada para melhorar esta performance é utilizar headers de expiração em arquivos (css, js, img’s e htmls) para que o navegador dos nossos clientes mantenham uma versão daquele recurso no cache (client), evitando assim que seja necessário realizar um outro download ou request para aquele arquivo. Porém ao utilizar esta técnica (cache client side) exige que implementemos maneiras de versionar nossos arquivos, para evitar aquela famosa frase (dá um control+f5).

Recentemente foi lançada uma versão beta do ASP.NET 5 Beta 5 e com ela uma novo Tag Helper que achei muito interessante, o Image Tag Helper, com ele é possível chamar uma imagem e automaticamente o ASP.NET MVC se encarregada de colocar um parâmetro de versionamento no src do html gerado pela tag . Continue reading

Túnel SSH com Git-Bash Windows e Linux

Diversas vezes temos que acessar algum serviço em um servidor em Linux por uma porta específica, que geralmente pode não estar exposta pela internet, a idéia deste post é mostrar como é possível criar um túnel utilizando SSH entre nosso computador e o servidor que queremos acessar.

No Windows vamos utilizar o Git-Bash como terminal para utilizar o SSH, ele pode ser baixado em: https://msysgit.github.io/, também poderíamos utilizar outro client, como por exemplo o http://www.putty.org/.

Criando o Túnel

Para criar o túnel podemos utilizar o seguinte comando SSH.

$ ssh -L localport:localipinserver:serverport user@serverip

ex

$ ssh -L 4321:127.0.0.1:27017 root@188.88.88.8 Continue reading

ASP.NET Web API: Configurando a serialização com JSON e XML

O ASP.NET Web API é um framework muito flexível e testável, falando em API’s existem diversas maneiras de empacotar e entregar as informações para os clientes que estão utilizando, recentemente tive que realizar algumas configuração de data e formatação de como os objetos seriam serializando. Pensando nisto, decidi escrever este post para mostrar algumas das possibilidades de configurações em como é feita a serialização e entrega pelas nossas WebAPI’s.

Continue reading

Hyper-V e CentOS (Linux): Expandindo um disco de uma máquina virtual em Linux

O Hyper-V é uma plataforma de virtualização muito completa e performática, com ela é possivel organizar nossas aplicações e máquinas virtuais de uma maneira para garantir o uso do hardware com uma maior densidade. Outra grande vantagem ao utilizar uma plataforma de virtualização é que ela serve de porta de entrada para outras tecnologias (como por exemplo servidores em Linux) pois a maquina virtual está em um ambiente controlado e de fácil monitoramento (para quem está acostumado a ambientes Windows).
Recentemente tive que fazer um upgrade de disco em uma infraestrutura de telefonia(VOIP) que executava em uma máquina virtual com CentOS (Linux) sobre a plataforma de virtualização do Hyper-V. Para isto funcionar, eu precisarei expandir o VHD (neste caso com a máquina virtual desligada) e, após isto, expandir e reorganizar a partição do Linux, no exemplo utilizei um outro S.O. (GPartedLive) para fazer o boot e editar a partição.

Continue reading

C# e a API do Simplify Commerce (MasterCard)

Recentemente participei de um hackathon da MasterCard (http://mastersofcode.com/) foi uma excelente experiência (recomendo participar). Além de todo o processo, e de virar a madrugada desenvolvendo \o/, conheci várias plataformas e API’s da MasterCard (https://developer.mastercard.com/portal/dashboard.action) porém a plataforma chamada Simplify Commerce foi uma das que mais se destacaram, ela oferece uma solução muito completa de processamento de cartões, com features como: criação de clientes, pagamento recorrentes, estorno e a transação do cartão em sí. Com ela desenvolvemos toda uma integração e a possibilidade de comprar produtos utilizando um app no celular, sem que nenhuma parte de nosso sistema tivesse que armazenar o cartão e em poucas horas.

A idéia deste post é mostrar um pouco quais os principais recursos da API do Simplify Commerce e além disto seu SDK em .NET. Lembrando que eu ainda não cheguei a utilizar ela em produção e que ela só está disponível no EUAs e Irlanda.

Simplify Commerce

Todo o cadastro e a documentação da Simplify Commerce está disponível em https://www.simplify.com/commerce/, para começar a utilizar como desenvolvedor é necessário fazer o cadastro, com isto teremos acesso as API’s Keys (em um ambiente de sandbox) e também ao dashboard da Simplify Commece.

Continue reading