Criando Script para facilitar a instalação de Windows Service

Fala pessoal. Desenvolvi um Windows Service, e fui procurar as melhores formas de acelerar o processo: compila/desinstala versão anterior/instala versão nova, no ambiente de desenvolvimento. Pois ao desenvolver um Windows Service, para debugar temos que enfrentar essa rotina de registrar no S.O. 1ª abordagem: Tentei usar os “post-build” events, que podem ser configurados direto no Visual Studio, para que, sempre que eu compilasse, o VS já fizesse automaticamente este trabalho de desinstalar a versão anterior e instalar a nova. Problema: Precisa executar em modo administrador os comandos do Post-Build, o que me fez desistir de encontrar uma solução nesse sentido. 2ª abordagem: Criei um .BAT no Notepad++. O motivo de eu ter criado o .BAT fora do visual studio? Tudo que é criado no editor do visual studio, pega o encoding UTF-8, o que gera problemas na execução do batch. Justamente por isso, criei no notepad++, lembrando de colocar o encoding para ASCII. Problema: * Eu não sabia como obter o path do .bat, e não queria definir um path absoluto no script, pois dessa forma o script não serviria para outros desenvolvedores rodarem em suas máquinas. Solução: Usei como exemplo o seguinte código encontrado no stackoverflow: http://stackoverflow.com/questions/13934063/install-windows-service-as-easy-as-possible-with-visual-studio-2012 Com o .BAT criado, adicionei o arquivo no projeto com as seguintes propriedades: Copy to Output Directory = Copy always Build Action = None Dessa forma, sempre que o Build for executado, o .bat vai ser copiado para a pasta de output, ficando pronto para ser executado. Até a próxima.

BoletoBr – Validando arquivo remessa Cnab 400 Itau

10 - 14 12 comentários

Olá pessoal.

Desenvolvi em conjunto com o https://www.facebook.com/SamuelR.sro uma biblioteca para geração de boletos em .NET.

É open source e está disponível no github: https://github.com/gabrielrb/boletobr.

Gera boletos nos principais bancos nacionais: Itaú, Caixa, Bradesco, Banco do Brasil, HSBC. É uma biblioteca fácil de manter e expandir.

Hoje passamos por uma dificuldade ao validar o arquivo de remessa CNAB 400 Itaú.

O validador do Itaú apontava que o arquivo estava incorreto, apontava uma posição errada ao preencher o CEP.

Erro ao validar layout 400

Verificamos todo o layout gerado pelo BoletoBr, campo a campo, olhando a documentação do Itaú e não encontramos um erro sequer.

Então conseguimos um arquivo de remessa válido com um cliente, e observamos que estava igual ao nosso as posições do campo.

Conclusão: Codificação. O BoletoBr gerava o arquivo de remessa no formato UTF-8, e o validador do Itaú, só reconhece corretamente arquivos de remessa codificados em ANSI.

É uma informação que não é informada na documentação dos bancos, e é muito importante, pois impede a leitura correta do arquivo de remessa.

Após descobrir esta solução inesperada, escrevi este post para ajudar os colegas desenvolvedores.

Um abraço.

Categorias:BoletoBr Tags:, , , , ,

Editor de arquivos Razor muito lento no Visual Studio 2013 com Resharper 8, DevExpress 13.2

Quero compartilhar a solução para um problema que me atrapalhou bastante.

Consegui solucionar um problema de lentidão no Visual Studio, ao editar arquivos Razor .cshtml. Chegava ao ponto do cursor desaparecer enquanto editava o arquivo, de tão lento que estava.

Associei isso a um problema que tive ao atualizar o Windows 8 para 8.1 no notebook, pois era incompatível com o driver gráfico comutável do Dell 3540, e a partir disso desativei a Aceleração de Hardware do Visual Studio (não resolveu).

Identifiquei que a lentidão só ocorria com o ReSharper instalado. Desinstalando o Resharper a lentidão extrema desaparecia.

Pesquisei melhor na web até encontrar 2 links:

http://youtrack.jetbrains.com/issue/RSRP-401187

https://www.devexpress.com/Support/Center/Question/Details/Q554979

Aparentemente é um problema quando ReSharper e DevExpress estão instalados. Não uso CodeRush instalado.

Soluções:

* HotFix do DevExpress.

* Hotfix do Resharper.

* Apagar conteúdo da pasta c:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\DevExpress\VSMenuIntegration\ (FUNCIONOU PRA MIM)

Caixa de Ferramentas do Scott Hanselman 2014

Quero compartilhar com os leitores a lista de ferramentas do Scott Hanselman (edição 2014).

Scott Hanselman, trabalha para a Microsoft nos projetos OpenSource de ASP .NET e Azure, em seu home office em Portland, Oregon, USA.

 

Gostei bastante dessa lista que ele atualiza anualmente, pois contém diversas ferramentas para os heavy users.

O ecossistema de ferramentas para .NET é muito extenso, e é muito fácil ficar perdido entre tantas opções.

 

No site, as ferramentas estão agrupadas por categoria, com links e uma breve descrição com comentário.

http://www.hanselman.com/blog/ScottHanselmans2014UltimateDeveloperAndPowerUsersToolListForWindows.aspx

WebService para consultar Cep Correios

04 - 14 2 comentários

Agilidade no preenchimento de dados cadastrais é muito útil e indispensável em certos momentos.

O preenchimento do endereço muitas vezes é trabalhoso, caso o cadastro não seja feito acompanhado de um comprovante de endereço.

Nesse caso, quando o usuário do sistema dispõe de menos informações para o preenchimento, é muito útil um serviço de busca de endereços a partir do logradouro ou do CEP.

Para descobrir um determinado endereço a partir de um CEP/logradouro podemos:

* Usuário Consultar manualmente no site do Correios:

Consulta a partir do Logradouro/Cep: http://www.buscacep.correios.com.br/servicos/dnec/index.do

Consulta a partir dos dados do endereço: http://www.buscacep.correios.com.br/servicos/dnec/menuAction.do?Metodo=menuLogradouro#

* Consultar um Web Service:

-> Correios: não fornece web service.

-> BuscarCep: muito bom, retorna o Tipo do Logradouro em um campo separado, o que é útil para enxugar endereços. Trabalha com plano pago. http://www.buscarcep.com.br/

-> Postmon API: Uma API para consultar endereços e encomendas a partir do CEP ou código de rastreio. Não retorna o tipo do logradouro em um campo separado.

Imagem

Postmon API

http://postmon.com.br/

Neste artigo recomendo a Postmon Api, que é código aberto, desenvolvido em Python, e pode ser incorporado na sua infra-estrutura existente para reduzir o tempo de resposta dos endereços consultados.

O código está disponível no GITHUB.

As respostas da API são retornadas em formato XML ou JSON.

Zappier – Integrando sistemas

Após conhecer a ferramenta TypeForm que cria os mais incríveis formulários de preenchimento que já conheci, vi no blog da equipe typeform, que havia uma integração com Zappier.

Então fui conhecer o que era o Zappier, e descobri que é uma ótima ferramenta para integrar sistemas no modelo:
Quando isso acontecer -> Faça isso!!!

E o melhor: Você não precisa entender nada de programação para programar essas ações!

Exemplo de ações que o Zappier pode executar:

  • Quando eu receber um novo e-mail no Gmail, envie-me um SMS para o smartphone.
  • Sempre que um novo formulário for preenchido no TypeForm, envie-me um e-mail.
  • E assim por diante.
Exemplo de um Zap

Exemplo de um Zap

Preços da plataforma

Tabela de Planos e Preços

Amostra de serviços populares compatíveis com Zappier

Amostra de serviços populares compatíveis com Zappier

Tenho certeza que em breve vou encontrar várias aplicações práticas no meu dia-a-dia para a ferramenta.

Unique Constraint – Entity Framework 6 – WTF

Iniciei um projeto em C# Windows Forms utilizando o Entity Framework 6 (última versão até o momento 05/01/2014).

Tenho um campo que armazena “e-mail”, e esse campo deve ser único na tabela.

Estou mapeando minhas classes utilizando FLUENT API.

e quando fui mapear a coluna E-MAIL fiquei assustado em descobrir que,

a versão 6 desse ORM  não tem esse recurso básico implementado na interface de mapeamento fluente.

Tem uma issue aberta no Codeplex para o tema:
https://entityframework.codeplex.com/workitem/57

Nesse momento reconsidero continuar o projeto em EF ou migrar urgentemente para NHIBERNATE que está anos-luz mais maduro.

2013 in review

The WordPress.com stats helper monkeys prepared a 2013 annual report for this blog.

Here’s an excerpt:

The concert hall at the Sydney Opera House holds 2,700 people. This blog was viewed about 17,000 times in 2013. If it were a concert at Sydney Opera House, it would take about 6 sold-out performances for that many people to see it.

Click here to see the complete report.

Categorias:Novidades / News

Typeform – Reinventando os formulários

Recentemente acessei um convite para responder uma pesquisa de faculdade de alguém.

Já esperava um link com o costumeiro: Google Docs, e suas enquetes.

Mas não. Tive a grata surpresa de encontrar algo totalmente diferente!

Se chama: TypeForm, e o mote do serviço é: Goodbye forms, hello typeforms → Build a Typeform

Mudou totalmente o meu conceito de formulários.

Recomendo a todos conhecerem a ferramenta!

Da próxima vez que precisar perguntar algo pra alguém de forma eletrônica, vou usar TypeForm com certeza!

 

SpinKit – Indicador de carregamento em CSS

Por acaso encontrei essa biblioteca na web. Feita por um dos funcionários do GitHub.

SpinKit  https://github.com/tobiasahlin/SpinKit

Substitui os tradicionais GIFs nas telas de carregamento, por um design minimalista feito em CSS3.

Exemplo:

Imagem estatica da animação de "loading"

Clique para visualizar a animação

Categorias:Dicas / Tips Tags:, , ,
Viagem e Voo

Dicas para viagens, férias e voos nacionais e internacionais

Ivan Guimarães Meirelles

Analista Desenvolvedor

Void Podcast

Vazio e sem retorno de valor

Elemar DEV

Negócios, tecnologia e desenvolvimento

2,000 Things You Should Know About WPF

Everything a WPF Developer Needs to Know, in Bite-Sized Chunks

Gabriel RB.net

Blog técnico, com dicas, códigos, novidades e problemas do dia-a-dia programando.

Alexandre Valente's Blog

Experiências em tecnologia e assuntos diversos

%d blogueiros gostam disto: