terça-feira, 20 de abril de 2010

Impressões da prova 70-516

Ontem eu fiz a prova 71-516 Accessing Data with Microsoft .NET Framework 4 (71 pelo fato de ser beta, depois ela vira 70), que é a prova beta do ADO.NET 4.0.

Para quem nunca fez uma prova Beta, é um experiência super legal mas bem cansativa, pois são 85 questões e você têm até quatro horas para cumprir todas as etapas (efetivamente para as questões, são 175 minutos).

A prova da Microsoft normalmente possui 50 questões, mas na beta eles colocam uma série de questões (algumas bem repetidas) para uma análise mais detalhada do resultado. Não existe garantia de que as questões serão incluídas na prova definitiva e nem que uma questão contará para a pontuação da sua prova.

Não tive tempo de estudar para a prova, então somente dei uma olhada conteúdo da prova para ter uma noção do que esperar. Aqui estão os detalhes: http://www.microsoft.com/learning/en/us/exam.aspx?ID=70-516&locale=en-us

Como era de se esperar, choveu Entity Framework na prova.
Se pudesse chutar aqui uma porcentagem seria:

5% outros - criptografia, configuração serviços e stopwatch class.
8% LINQ to SQL - Operações de carregamento, atualização dos dados no banco e gerenciamento de conflito.
5% XML - Achei que cairia mais de XML, mas no geral foi manipulação de documentos e Xpath.
15% WCF Data Services - criar suas próprias consultas, query interceptors, utilização do proxy, configuração do serviço de dados, escrever chamada por URL, escolher qual requisição HTTP está bem formada, etc.
10% ADO.NET Tradicional - Utilização de DataSets com merge, fill e suas opções, trabalhar com DataReader e dados binários, CommandBehavior, entre outros.
7% LINQ - Como escrever consultas com LINQ (alguma bem chatinhas), integração com objetos, datasets, etc.
50% Entity Framework- Muita manipulação de POCO, gerenciamento de contexto e carregamento dos dados, attach, add, MergeOption, consultas direto no banco, incluir procedures, criar tipos complexos, lazy loading, enfim, muita coisa mesmo do EF.

Tirando uma questão ou outra que estava bem estranha (não sei se por ser beta ou por desconhecimento), eu gostei bastante da prova. Algumas questões deixam em aberto a melhor opção e você têm que voltar no cabeçalho para ler aquela frase que te dá a dica da certa, outras exigem que você conheças efetivamente todas as opções e como funciona as tecnologias, sem ser uma decoreba pura de assinatura de métodos.

Classifico a dificuldade da prova como média. Alguém que já trabalhou com o ADO.NET nas versões anteriores e já está alguns meses trabalhando efetivamente com o EF4 em um projeto, não deve ter muita dificuldade na prova. O lado do WCF Data Services pode ser coberto com algumas sessões e um estudo pontual.

Realmente não sei a prova beta focou em novas questões e no fim das contas a versão definitiva terá um maior equilíbrio entre as tecnologias, mas acho natural que boa parte da prova seja voltada para o Entity Framework.

Como não consegui estudar para a prova não fiz ela com muita confiança, então não consigo avaliar com firmeza se passei ou não. O jeito vai ser esperar os tradicionais 3 meses pelo resultado. Só sei que não queria uma reprovação no currículo...

[]s
Luciano Caixeta Moreira - {Luti}
Chief Innovation Officer
Sr. Nimbus Serviços em Tecnologia Ltda
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm

sexta-feira, 16 de abril de 2010

Evento em BSB e recursos para o SQL Server 2008 R2

Estou sumido, não é? Acontece…

Ontem em Brasília aconteceu um evento organizado pela Microsoft, o I Fórum Microsoft para Gerentes de Sistemas. Eu recebi o convite e tive o prazer de apresentar a sessão - "SQL Server 2008 R2: Manipulando dados em tempo real com o StreamInsight e ciclo de vida da informação com o Master Data Services". Incrivelmente minha sessão não tinha o maior título do evento.

O interessante foi o trabalho feito pela empresa na hora de convidar os participantes, encontrei um público de altíssimo nível, muitos rostos conhecidos e pessoas que realmente têm a chance de fazer acontecer e levar a mensagem para o alto escalão das empresas. Além disso, encontrei diversos profissionais que tenho profundo respeito pela capacidade técnica e visão de negócio, excelentes conversas de corredor e encontro com os antigos amigos da Microsoft.

Conversei sobre o Azure, VSTS 2010, SQL Server 2008 R2, SQLServerDF, e como alguns orgãos estão trabalhando com as novidades da Microsoft. Já sei até de cliente planejando implantar o SQL Server 2008 R2 no segundo semestre. Fantástico.

O evento também acontecerá no Rio de Janeiro e São Paulo, onde eu também estarei presente e espero encontra um excelente público. Ontem em Brasília tivemos mais de 150 pessoas ao longo do dia.

A Microsoft anunciou no evento que o SQL Server 2008 R2 será lançado na próxima semana! Agora é esperar para fazer o download.


Recursos

No SQL Server 2008 R2 estou dando uma atenção especial ao Master Data Services e StreamInsight.
Outros recursos já estão sendo demonstrados por aí, destaco o trabalho do Thiago Zavaschi com o PowerPivot (http://zavaschi.com/).

Se você quer entender o que o R2 está trazendo, aconselho partir da página do produto: http://www.microsoft.com/sqlserver/2008/en/us/r2.aspx. A partir daí, navegue pelas tecnologias e comece a entender qual solução ataca qual cenário, pois precisamos saber como o negócio ganha com o produto, e não somente olhar para a tecnologia sozinha.

Querendo ver mais detalhes sobre os recursos, vídeos e demos? Baixe o training kit do SQL Server 2008 R2: http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=fffaad6a-0153-4d41-b289-a3ed1d637c0d. Note que este está em constante manutenção e desde Março já tivemos 3 releases de atualização do mesmo, então fique monitorando por novidades.

Não pretendo escrever nesse post o que é cada uma das tecnologias, para isso estou escrevendo dois artigos (sobre MDS e SI) que serão publicados em revista.


StreamInsight

Gravei um webcast para o MSDN sobre o assunto:
https://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=pt-BR&EventID=1032440208&CountryCode=BR
O whitepaper de introdução é este aqui: http://download.microsoft.com/download/F/D/5/FD5E855C-D895-45A8-9F3E-110AFADBE51A/Microsoft%20CEP%20Overview.docx
A documentação do CTP de novembro é bem pequena e você lê em uma tarde, merece o investimento de tempo.
Blog do time de produto: http://blogs.msdn.com/StreamInsight
Showcase: http://www.microsoft.com/showcase/en/US/details/06033f9a-dab6-4a40-b0cc-a08460419183


Master Data Services

Em Maio vou gravar um webcast para o MSDN sobre o assunto, aguarde mais informações nesse blog.
Whitepaper sobre MDM: http://msdn.microsoft.com/en-us/library/bb190163.aspx
Blog do time de produto: http://blogs.msdn.com/mds/
Showcase: http://www.microsoft.com/showcase/en/US/details/e28d124b-0493-494f-80ff-40ac10a8413f
Documentação ainda é pequena, também fácil de ler numa sentada e serve mais como referência da estrutura.

** UPDATE **
Já ia esquecendo de mais uma coisa, lançaram um e-book sobre o SQL Server 2008 R2 e, o melhor, digratis! http://blogs.msdn.com/microsoft_press/archive/2010/04/14/free-ebook-introducing-microsoft-sql-server-2008-r2.aspx

E só o início sobre MDS e StreamInsight... Boa leitura.

[]s
Luciano Caixeta Moreira - {Luti}
Chief Innovation Officer
Sr. Nimbus Serviços em Tecnologia Ltda
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm

quarta-feira, 7 de abril de 2010

Fuzzy lookup e tipo de dados da coluna Confidence

Post rápido com uma pequena solução.

Estou usando o fuzzy lookup em um projeto do SSIS, para tentar tirar algumas inconsistências das tabelas, tentando encontrar registros semelhantes como "Luciano Caixeta Moreira" e "Luciano CaiZeta Moreira", por exemplo.

Tudo indo certo, montei a fonte, transformação fuzzy lookup configurada e criei uma nova tabela PessoaFuzzy para armazenar o resultado do que for encontrado. Fui executar o pacote e ... Pau!

"[OLE DB Destination [104]] Error: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005.
An OLE DB record is available. Source: "Microsoft SQL Server Native Client 10.0" Hresult: 0x80004005 Description: "OLE DB provider 'STREAM' for linked server '(null)' returned invalid data for column '[!BulkInsert]._Confidence'."


O erro já direciona o foco para onde está o problema, campo Confidence, mas qual dado é inválido? Coloquei alguns data viewers no pipeline do SSIS para tentar no zoiômetro pegar alguma coisa fora do padrão (estava testando em uma pequena massa de registros) e nada aparente.

Vamos nos voltar para o "pai-dos-desenvolvedores-com-pressa-que-não-querem-gastar-muito-tempo-com-besteira".Uma rápida pesquisa e voilá, solução encontrada.

Quando o SSIS gera a tabela de destino o campo Confidence, o tipo de dados fica como REAL, mas é necessário um FLOAT para armazenar o resultado gerado pelo SSIS! Alterado o campo, tudo funcionou corretamente.

Agora, sinceramente, isso me cheira a um BUG feio. Não era para o BIDS já gerar um campo float de cara? Na verdade eu até estou querendo evitar essa palavra, pois nas duas últimas semanas eu estou passando por uma série de casos que me cheiram a bug e estou ficando um pouco alucinado com isso.

Fica aí uma referência em português sobre o assunto.

[]s
Luciano Caixeta Moreira - {Luti}
Chief Innovation Officer
Sr. Nimbus Serviços em Tecnologia Ltda
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm