Free ebook: Programming Windows Phone 7

Hoje foi liberado o pdf do livro acima com os primeiros 11 capitulos que abordam como desenvolver, utilizar sensores, XAML (WPF/SilverLight) (http://blogs.msdn.com/b/microsoft_press/archive/2010/08/02/free-ebook-petzold-s-programming-windows-phone-7-special-excerpt-2.aspx). Quando o livro for terminado será disponibilizado gratuitamente no blog da MSPress. Importante: Alem dos 11 capitulos agora disponiveis ao lado tem o link para baixar as aplicações de exemplo !!!!

Eu utilizo Windows Mobile desde que ainda se chamava Windows CE. Meu primeiro equipamento foi o iPAQ da Compaq que vinha com Windows CE 3.0, tela sensivel ao toque. Utilizei o Gradiente Partner que na época foi o primeiro telefone no Brasil com Windows CE, era bizarro. e dai por diante entre um telefone e outro sempre mantive aparelhos com Windows CE, Phone Edition e o atual Windows Mobile. O aparelho que uso hoje é um LG Incite com Windows Mobile 6.5.

Mas muitos já me perguntaram o que acho do Windows Phone 7. Sinceramente não tenho muito o que achar, me pareceu um SO igual aos outros que estão no mercado hoje como o Symbian, o iPhone e o Android. Um SO com limitações de aplicações simultaneas e com interface para iniciantes.

O motivo de eu sempre ter utilizado telefones com Windows CE/Mobile é que eu desenvolvo o que quero com eles. Por exemplo, tenho um software para controlar conta corrente e sincronizo todos os dados com o celular utilizando XML. Se quero saber o saldo do meu cartão de credito, uma conta agendada ou outra informação posso abrir o aplicativo no meu celular e fazer pesquisa nos dados. Com o Windows Phone 7 todo este processo ainda estava nebuloso na minha cabeça, ainda não conseguia enxergar claramente como ficaria o desenvolvimento de aplicações.

Bem, este livro foi particularmente esclarecedor porque ao olhar os exemplos de código ficou mais fácil entender como será o desenvolvimento, apesar de que ainda não posso fazer muitas coisas antes de ter um aparelho desse nas mãos. Simuladores são interessantes para desenvolver, mas muito ruins para conhecer a usabilidade e as interfaces gráficas.

É isso ai, agora é esperar aparecer alguns no mercado e brincar um pouco com este novo SO da Microsoft.

Atualizações nas ferramentas SysInternals ZoomIt e Desktops

Junto com o Process Explorer e o Disk2VHD o ZoomIt e o Desktops são as ferramentas da SysInternals que eu mais utilizo.

Esta semana foram liberadas versões novas destes dois aplicativos e vou destacar as mudanças e o objetivo de cada um deles:

zoomit-logo

Esta ferramenta é utilizada em apresentações e treinamentos para destacar parte da tela. Ao instalar é possivel configurar a tecla que irá fazer o zoom ESTÁTICO, por default o Alt+1. A novidade é que o ZoomIt agora é compativel com o LiveZoom do Windows 7 e do Windows 2008 fazendo com que o zoom seja “vivo”, ou DINAMICO permitindo clicar em botões, preencher caixas de texto e todas as funções mesmo com o zoom ativo. Muito bom !!!!

zoomit

desktops-logo

A ferramenta Desktops é muito conhecida como virtual desktops no Linux e já existia em ferramentas para XP e Windows 2003. Porem agora ele ficou compatível com o Windows 7 e Windows 2008 R2 com Aero habilitado. A função do programa é gerar 4 desktops virtuais para organizar os programas que vc abre, permitindo que programas de tela cheia fiquem em cada um dos desktops. Note que nos desktops virtuais não é ativado o AERO e que as teclas de atalho, como por exemplo WIN+X, aparecem apenas no Desktop 1 que é o principal.

desktops

Bom proveito e caso deseje ficar informado sobre todas as novas versões de utilitários da SysInternals siga o RSS http://blogs.technet.com/b/sysinternals/rss.aspx

FAQ: Uso de e-CPF ou e-CNPJ para autenticação de aplicações

A algum tempo que atualizo e mantenho atualmente no MSDN um documento de como utilizar certificados digitais na autenticação de clientes (http://msdn.microsoft.com/pt-br/library/ee923720.aspx).

Porem, neste artigo abordamos a autenticação utilizando certificados emitidos pelo próprio cliente com uma CA seja no Windows 2003 ou no Windows 2008 (para as diferentes versões do Windows veja o link http://www.marcelosincic.com.br/blog/page/Artigos-e-Apostilas.aspx.

Recebo semanalmente perguntas e dúvidas sobre como utilizar o e-CNPJ e o e-CPF para fazer a autenticação e resolvi fazer este post em forma de FAQ das principais perguntas que recebo.

1. É necessário ter um certificado de autoridades públicas para autenticar e-CPF ou e-CNPJ?

Resposta: É necessário ter um certificado válido para instalar no seu IIS. Nos artigos acima a raiz certificadora (CA) não é válida na internet e a CRL muitas vezes está em um ambiente interno. Esta característica faz com que o browser não reconheça a CA ou não acesse a CRL e rejeite o certificado com a mensagem de erro devida. Como o browser não validou o certificado do servidor, ele não irá solicitar para o cliente o certificado dele.

2. Este certificado tem que ser emitido por uma certificadora vinculada ao ICP-Brasil (SERASA, CertiSign, CEF e outras) para autenticar e-CPF ou e-CNPJ?

Resposta: Teoricamente não, mas é preferencial. O problema de utilizar uma certificadora não vinculada a raiz do ICP-Brasil é que a autoridade não estará na lista de confiança, e mesmo podendo ser adicionada manualmente (veja questões abaixo) em alguns casos pode ocorrer a leitura parcial do certificado.

3. Eu tenho um e-CPF ou e-CNPJ e o meu servidor é certificado pela ICP-Brasil e mesmo assim não solicita o meu certificado. Porque?

Resposta: Você precisa montar a lista de autoridades certificadoras para que o certificado seja aceito e o motivo é que o ICP-Brasil não é um único emissor nem um único CA (veja questões abaixo). Para montar a lista de certificadoras aceitas verifique no documento do MSDN no inicio do post.

4. Alguns cartões ou tokens são aceitos e outros não, o que está acontecendo?

Resposta: O ICP-Brasil apresenta duas características que podem causar isso. A primeira é que a cadeia dos certificados é, por exemplo, “Autoridade Certificadora Brasileira –> Secretaria da Receita Federal (RFB) –> SERASA” e você irá precisar colocar o primeiro nível como “Autoridades Raiz Confiáveis” e as duas seguintes como “Autoridades Intermediarias Confiáveis” (veja como na continuação das perguntas).
O outro problema é que existem duas “Autoridade Certificadora Brasileira” que é o nome apenas e outras com “v1”. Ou seja, cartões e tokens emitidos antes de 2009 utilizam o certificado da primeira versão e os mais atuais da “v1” que é a mais recente. Portanto você precisará instalar os dois como raízes confiáveis.

5. Mesmo colocando os dois “Autoridade Certificadora Brasileira” na lista de confiáveis o token não aparece. Porque?

Resposta: Não é apenas a raiz que tem variações, mas também os certificados intermediários, que podem ser a “Secretaria da Fazenda”, “Receita Federal”, “SERAZA”, “CertiSign”, etc. Você precisa colocar estes como “Autoridades Intermediárias Certificadoras Confiáveis” (como encontrar todas elas veja perguntas abaixo).

6. Como incluo as raízes e intermediárias do ICP-Brasil no meu servidor?

Resposta: Abra o MMC e adicione o snap-in “Certificados” mas note que não “Usuário” e sim “Computador”. Não basta apenas dar duplo clique no arquivo “cer” para incluir, porque neste caso você estaria incluindo no usuário e não na máquina. Após incluir o snap-in clique com o botão direito nos locais e use a opção “Importar”. Veja na imagem abaixo onde deve ser incluído os certificados raízes “Autoridade Certificadora Brasileira” e os intermediários “Serasa”, “Certisign”, “RFB”, etc:

image

 

7. Onde encontro a lista com todos os certificadores e os certificados emitidos por eles?

Resposta: Utilize este endereço: http://www.iti.gov.br/twiki/bin/view/Certificacao/RepositoriodaACRaiz que contem as informações de todos os certificados existentes tanto as duas raízes quanto suas intermediárias. Note que indica quais os tipos de certificados e no caso do ICP-Brasil são A1 e A3.

8. No Internet Explorer e no Chrome funcionou logo na primeira vez e no Firefox não, o que acontece?

Resposta: O IE e o Chrome já possuem o ICP-Brasil na lista de autoridades, já o Firefox até hoje não implementou (http://br.mozdev.org/drupal/2008/07/icp-brasil-deve-ser-adicionado-ao-firefox) e é necessário fazer manualmente. No post da Mozilla ou no do ITI na pergunta anterior siga as instruções, lembrando que deve ser feito no cliente. Porem, note que o aplicativo do leitor do cartão normalmente tem a opção para fazer essa inclusão de forma automática.

9. Como leio os dados do certificado alem do “subjet” citado no artigo do MSDN?

Resposta: Utilizando o código abaixo é possivel ler os dados em uma aplicação Windows Form, basta converter o “Request.Certificate” que consta no artigo para o tipo X509Certificate2:

System.Security.Cryptography.X509Certificates.X509Store Lista =
    new System.Security.Cryptography.X509Certificates.X509Store();
Lista.Open(System.Security.Cryptography.X509Certificates.OpenFlags.IncludeArchived);
for (int Contador = 0; Contador < Lista.Certificates.Count; Contador++)
{
    System.Security.Cryptography.X509Certificates.X509Certificate2 Certificado = Lista.Certificates[Contador];
    MessageBox.Show(Certificado.ToString());
    string Dados = Certificado.Subject;
    listBox1.Items.Add(Dados);
    if (Dados.IndexOf("e-CPF") > 0 || Dados.IndexOf("e-CNPJ") > 0)
    {
        Dados = Dados.Remove(0, Dados.IndexOf(":") + 1);
        Dados = Dados.Remove(Dados.IndexOf("OU=") - 2);
        listBox1.Items.Add("e-CPF/e-CNPJ = " + Dados);
    }
}

 

Espero ter respondido as principais perguntas, e caso surjam novas vou atualizando este post.