Pages

Wednesday, February 26, 2014

Ficheiros de configuração do Log4net por ambiente

Uma boa prática a seguir quando se desenvolvem aplicações é ter os ficheiros de configuração separados por ambiente. Por norma usa-se uma pasta config onde estão os ficheiros de configuração para cada secção do web/app.config por ambiente:

\config\appSettings.local.config
\config\appSettings.staging.config
\config\appSettings.release.config
\config\log4net.local.config
\config\log4net.staging.config
\config\log4net.release.config

Depois no web/app.config através do atributo configSource especifica-se o path para o ficheiro de configuração de cada secção. Desta forma é facil automatizar o processo de build/deploy para apenas alterar o path nos ficheiros web/app.config para a aplicação passar a usar as configurações do ambiente alvo.

O problema surge quando se verifica que o elemento não suporta o atributo configSource ...

No entanto é possivél dar a volta configurando a chave "log4net.Config" na secção appSettings. O log4net quando é inicializado vê se essa chave de configuração existe, e caso exista vai procurar o ficheiro de configuração na path especificada para carregar a sua secção de configuração.

<appSettings>
    ...
    <add key="log4net.Config" value="config/log4net.local.config" />
    ...
</appSettings>

Desta forma quando se corre o processo de build/deploy este altera o path para o ficheiro appSettings a usar e depois na chave "log4net.Config" especificamos o path para o ficheiro de configuração do log4net para esse ambiente.


Wednesday, February 19, 2014

Como criar um installer offline para o Visual Studio a partir de um Installer Web

Resumo

Se precisarem do pacote de instalação offline dum visual studio completo ou dum update, para gravar numa network share ou num dvd, e só têm a versão web existe uma forma fácil de "converte-lo". Para isso basta correr o executável a partir da linha de comandos com a opção /layout e ele faz download de todos os ficheiros necessários para a pasta há nossa escolha, depois e só copiar o resultado para onde quisermos.

Passo a passo

1) Correr o executável a partir da linha de comandos com o a opção /layout



2) Escolher a pasta de destino


3) Esperar até o download acabar e ficamos com os ficheiros necessários para a instalação em modo offline


Fonte: How To: Create an offline installer for Visual Studio from a Web Installer



Friday, February 14, 2014

Usar aplicação nativa da ZXing a partir de uma página web

A ZXing permite que a partir de uma página web chamar a aplicação nativa para fazer a leitura de um código (barras/qr/etc) e devolve-lo por query string de volta para a página.

Só temos de criar um link para a página da ZXing com o endereço de callback em parâmetro:
    http://zxing.appspot.com/scan?ret=http%3A%2F%2FENDEREÇO_DE_CALLBACK%2F?result={CODE}

Neste endereço o placeholder {CODE} vai ser substituido pelo resultado da leitura do código e depois na página podemos fazer o que quisermos com ele.



Fica aqui um exemplo (works on my machine/device). Se carregarem no link "TESTAR LEITURA DE CÓDIGO" com um device móvel ele vai abrir a aplicação nativa e depois de lerem um código volta para esta pagina e mostra o resultado dessa leitura.

TESTAR LEITURA DE CÓDIGO
CÓDIGO LIDO:


Fonte: ZXing: Scanning From Web Pages

Detetar dispositivo móvel em javascript numa página

Segue aqui um helper em javascript para detetar qual o dispositivo móvel que está a carregar a página:

  var isMobile = {  
    Android: function() {  
      return navigator.userAgent.match(/Android/i) ? true : false;  
    },  
    BlackBerry: function() {  
      return navigator.userAgent.match(/BlackBerry/i) ? true : false;  
    },  
    iOS: function() {  
      return navigator.userAgent.match(/iPhone|iPad|iPod/i) ? true : false;  
    },  
    Windows: function() {  
      return navigator.userAgent.match(/IEMobile/i) ? true : false;  
    },  
    any: function() {  
      return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Windows());  
    }  
  };  


Fonte: DETECTING MOBILE DEVICES WITH JAVASCRIPT