domingo, 23 de maio de 2010

Exame Beta: 70-516 ou 72-516

Prestei o exame 70-516: Accessing Data with Microsoft .NET Framework 4, no período beta, aproveitando a gratuidade. Como já informei no post anterior, é possível relatar alguns detalhes sobre o exame. Este exame era composto por 85 questões que deviam ser respondidas em 175 minutos, ou seja, ~2 minutos por questão. Barbada hein? Quem encara? Claro que o exame quando for live (a versão oficial, a partir de Julho provavelmente) terá menos questões, suponho que orbite entre 45 e 55 e claro o tempo também reduzido para 2h ou um pouco mais. Algumas questões do exame beta não serão pontuados, existem apenas em caráter de teste, conforme informa o sistema de teste. Às vezes fico pensando no controle de qualidade das questões. Alguém compila os exemplos? Tem vezes que parece que foi digitado na própria questão.

Uma das mudanças principais que notei, é que antes de iniciar o cronômetro, tu pode escolher qual linguagem escolher, C# ou VB. Achei ótimo, pois antes as questões tinham código tanto em C# como em VB e sempre ficava atucanado pensando se tinha um pega-ratão na versão em VB, e para isso eu tomava um tempo adicional, mesmo quando a coisa era óbvia em C#. Um exemplo é a semântica do operador == para string.

Minha preparação foi baseado nos Skills measured da página do exame.

  • Modeling Data (20%)
  • Managing Connections and Context (18%)
  • Querying Data (22%)
  • Manipulating Data (22%)
  • Developing and Deploying Reliable Applications (18%)

quinta-feira, 20 de maio de 2010

O business Certificação

O período de realização dos exames beta da linha do Microsoft .NET 4.0 findou junto com o mês de Abril. Evitei comentar sobre os exames, e nesse tempo houve até um pronunciamento de um empregado da Microsoft sobre o famoso NDA ao qual cada candidato se submete. Complicado, este NDA, pois não te dão uma cópia dele, e tu simplesmente aceito porque está interessado em prestar o exame. Em linhas gerais, o NDA diz que o candidato não pode comentar abertamente sobre o exame.

Naquele post surgiu um comentário que aborda o que tu podes responder. Veja uma adaptação livre:

Posso responder sobre...
  1. Quantas questões você viu sobre <assunto> em seu exame? Sim.
  2. Quantas questões têm no exame? Sim.
  3. Quanto tempo dura o exame? Sim.
  4. Que tu podes falar especificamente sobre o exame? Não.
  5. Posso postar ou compartilhar questões ipsis literis? Não.
  6. Como é prestar o exame? Sim.
  7. Como ele é pontuado? Não.
  8. Qual é o escore para passar? Sim e não.

sexta-feira, 23 de abril de 2010

Acessar corretamente WCF no Silverlight

Acessar um webservice no Silverlight é fácil: a maneira default é adicionar uma referência ao service no projeto Silverlight. O Visual Studio executa a ferramenta slsvcutil.exe para gerar as classes proxy do serviço. Esta ferramenta é semelhante ao svcutil.exe porém especializada no Silverlight.

Aí, já nos deparamos com a primeira diferença: a proxy é gerada apenas com a versão assíncrona das operações. Isto faz sentido, pois não queremos travar o browser né?

Para cada operação temos um método Asynch() e um evento Completed. A sequência consiste em criar um handler para o evento e invocar o método asynch. Quando o controle retorna da invocação deste método, não podemos dizer que ele já executou, apenas que a mensagem foi enfileirada para envio ao web service.

Vejamos um trecho de código:


domingo, 18 de abril de 2010

Novidade: Descompressão automática no WCF 4.0

Participei do survey realizado pela sobre custom channels no WCF. Essa semana tive resposta à minha colaboração, onde tive o espaço para comentar sobre compressão.

Enfim, é necessário estudar alternativas viáveis para troca de informações com o webservice, que muitas vezes passa pelo link mais lento da solução, ou seja, a internet. A Microsoft produziu um sample abordando esta questão, no caso, uma implementação de um encoder que utiliza compressão gzip, o próprio framework fornece suporte para isso. Eu implementei este encoder na solução, mas o desempenho de compressão não ficou nem perto da solução original desenvolvida em outra plataforma.

Exemplo de channel stack: o encoder Gzip fica logo acima do Transport e comprime dados de outro encoder