Você está na página 1de 26

Edio especial de lanamento

360 SPARTA

#0
ANO I

N U MER O 0

COLUNA DE QUALIDADE

BIZT ALK . ING

e-magazine
Colunas
BizTalk.ing 360 Sparta Qualidade Acadmico Point2Share .Close()

Codificando Net

> Entrevista com Leonardo Tolomelli (MVP Lead) > Artigo Know Types no WCF Israel Ace

Comunidade
Codificando .Net Destaque do ms Eventos

WWW.CODIFICANDOMAGAZINE.NET

POWERED BY CODIFICANDO.NET

NESTA EDIO
Entrevista

e-magazine
E D I O 0 A N O I

Codificando Net

J U N H O

2 0 0 7

Coluna: XNA Sparta Coluna: BizTalk.ing Coluna de Qualidade Coluna Pont2Share Coluna: Mundo Acadmico Artigo: Know Types no WCF Download do Ms Blog do Ms

5 6
8

Editorial
com muito prazer que a comunidade Codificando .Net anuncia a Codificando .Net e-Magazine, uma revista eletrnica mensal com um objetivo claro: ajudar a compartilhar conhecimento para a comunidade! Alis, este sempre foi o grande objetivo desta comunidade. Por enquanto uma revista eletrnica, mas quem sabe, dependendo dos resultados da adoo/recepo/colaborao da comunidade no conseguiremos evoluir para uma revista impressa? Seria sonhar demais? O formato da revista ser bem alegre e informal, oferecendo uma leitura agradvel e rpida. Acredito que nas prximas edies teremos uma grande evoluo da qualidade visual e no contedo. O contedo da revista ser baseado em colunas, entrevistas, opinies, reportagens e previews, j que temos muitos outros meios focados em artigos tcnicos. A publicao totalmente aberta a comunidade, quem quiser participar, envie um email para editor@codificandomagazine.net. Nesta edio de lanamento contamos a presena de ilustres colunistas: Emerson Facunte, Feio Tomaz, Eduardo Gomes, Maurcio Wieler, Hlio S e Israel Ace. Foram convidados pessoas de destaque na comunidade e no mercado para falar sobre assuntos bem variados. Gostaria de agradecer o apoio dos colunistas em apostar o tempo em um projeto saindo do papel. Fica aberto o convite para todos os membros da comunidade com a vontade de compartilhar tambm. Agradecemos tambm Leonardo Tolomelli que fala sobre o programa MVP, comunidade e at Formula 1. Acompanhe as sesses de destaques e coberturas de evento e fique ligado o que acontece na comunidade nacional. Estamos totalmente abertos para opinies, crticas, contribuies, etc. Uma boa leitura a todos Alexandre Tarifa Editor@codificandomagazine.net Editor: Alexandre Tarifa Co-Editores: Andrey Sanches Emerson Facunte Colaboradores: Hlio S Moreira Feio Tomaz Eduardo Gomes Maurcio Wieler Israel Ace

10

13 15
18

19

Dicas

20

Codifando .Net

21

Evento: Codificando 2007

23

Equipe

Final da Imagine 24 Cup Brasil 2007 Coluna: .Close() 25

PGINA

Entrevista - MVP Lead Leonardo Tolomelli


Leonardo Tolomelli MVP Lead na Microsoft, responsvel pelo programa no Brasil e ConeSul, ele nos ofereceu gentilmente uma entrevista falando sobre o programa MVP no Brasil, comunidade e sua paixo por Frmula 1. Acompanhe a primeira entrevista da Codificando eMagazine.
Ol Leonardo Tolomelli, obrigado por participar da primeira edio da Codificando .Net e-Maganine. O que exatamente o programa MVP (Most Valuable Professional) da Microsoft? Leo: O programa MVP, ou Most Valuable Professional (Profissional Mais Valorado numa traduo direta) a forma que a Microsoft encontrou para agradecer os profissionais que de maneira voluntria compartilham seu profundo conhecimento tcnico de produtos e tecnologias Microsoft com outros membros da comunidade. O programa um reconhecimento por esta iniciativa de colaborar ajudando outros a melhor utilizar estes produtos e tecnologias. um programa tcnico, e o ttulo est sempre associado a uma competncia tcnica especfica (por exemplo, MVP de Windows Server Networking ou Visual Developer Visual Basic) sobre o uso dirio dos produtos e para validao de futuras verses do produto. Neste caso do MVPs funcionam como conselheiros dos times de produto e representam a voz da comunidade. Muitas pessoas confundem o programa MVP com alguma certificao ou prova da Microsoft, existe alguma relao entre os programas? Leo: So dois programas distintos e no h relao entre eles. Para ser um profissional certificado Microsoft necessrio estudar profundamente um produto, realizar o exame especfico e obter a nota mnima. Para o programa MVP, existe um nmero bastante limitado de vagas (hoje, por exemplo, so 72 os MVPs no Brasil) e para fazer parte necessrio ser selecionado a partir de sua ativa participao na comunidade atravs de contribuies voluntrias. Como voc visualiza a importncia da comunidade para evoluo dos produtos da Microsoft? Leo: Cada dia mais as equipes de desenvolvimento esto se dando conta da importncia de ter contato com a comunidade que utiliza o produto no dia a dia para entender o que realmente o mercado precisa. Dentro da Microsoft hoje, praticamente todos os times possuem pessoas que tem por objetivo observar a comunidade e levar a palavra dos usurios aos desenvolvedores. So estas pessoas por exemplo que tem fazem a ponte entres os MVPs e o time de produto. Acredito que o Visual Studio .NET foi um marco neste ponto. Foi o primeiro produto da Microsoft a contar com um grande programa de beta aberto comunidade, que na poca contou com mais de 3 milhes de participantes. O Windows Vista j contou com quase 5 milhes de participantes no programa beta, avaliando e dando feedback sobre o desenvolvimento do produto. Isso ser cada vez mais comum. com mais de 3 milhes de participantes. O Windows Vista j contou com quase 5 milhes de participantes no programa beta, avaliando e dando feedback sobre o desenvolvimento do produto. Isso ser cada vez mais comum. As comunidades no Brasil vm crescendo muito nos ltimos anos, qual a atual situao do pas em relao aos pases do Cone Sul e do mundo? Leo: O Brasil um fenmeno a parte quando falamos de comunidade. O que eu percebo comparando com Estados Unidos e outros pases da

O Brasil um fenmeno a parte quando falamos de comunidade

. Qual o critrio de seleo da Microsoft para escolha destes profissionais? Leo: Estamos interessados em pessoas que tenham este esprito colaborativo e cujas contribuies so realmente voluntrias e realizadas naturalmente. So pessoas que se satisfazem atravs da ajuda que proporciona aos membros da comunidade que faz parte. Para a seleo do programa levamos em considerao as contribuies realizadas comunidade nos ltimos 12 meses. Entre estas contribuies esta a participao ativa em fruns de discusso e newsgroups, publicao de livros e artigos tcnicos, participao ativa em grupos de usurios, palestra em eventos da indstria e muitas outras. Qualquer forma de compartilhamento de conhecimento realizado de maneira voluntria (que seja parte do seu trabalho remunerado), vale para o programa. Fale um pouco sobre o seu papel na Microsoft em relao ao programa MVP. Leo: Os MVPs so vistos pela Microsoft como especialistas na competncia tcnica do seu ttulo, e desta forma os times de produto de Redmond investem numa aproximao com os MVPs para colher feedback e sugestes

PGINA

Entrevista - MVP Lead Leonardo Tolomelli


por exemplo, que existe uma preferncia por algum tipo de comunidade. Nos EUA, por exemplo, a comunidade online atravs da participao em fruns e newsgroups muito grande. Na Amrica Latina, o povo j prefere o contato pessoal e reunies de grupos de usurios ou eventos realizados pela Microsoft so os preferidos. No Brasil os dois tipos de atividades tm uma forte participao. Os fruns so populares, como tambm os eventos presenciais, alm das novidades como Blogs por exemplo. O brasileiro bastante ativo e est sempre procurando uma forma de interagir. Voc acredita que a participao em comunidade ajuda no crescimento/ reconhecimento profissional? como podemos nos aproximar cada vez da comunidade como um todo. Leo Tolomelli, ficamos sabendo que voc f de formula 1, na realidade gosta muito de automobilismo em geral. Voc acredita nos novos talentos nacionais? Conte-nos um pouco da sua vivncia sobre a paixo automobilstica. Leo: Bom, o que me atrai no automobilismo, e em especial da Frmula 1, a unio entre duas das minhas paixes, automveis e tecnologia. muito interessante observar no somente as corridas em si (que so muito emocionantes por si s e j valem o espetculo), mas tambm toda a tecnologia envolvida neste circo. As decises que so tomadas, as tecnologias adotadas em busca daquele milsimo de segundo a mais. fascinante. Com relao aos talentos nacionais, eu acredito que estamos vendo uma grande safra de pilotos brasileiros com futuro promissor nas categorias internacionais. Para quem me conhece bem sabe que sou f do Felipe Massa desde 2001 quando foi campeo da Frmula 3000 e acredito que hoje est muito maduro e colhendo os frutos do investimento destes ltimos anos. Se tudo der certo, ser campeo do mundo. Mas o futuro ser ainda melhor! Imaginem que em 1 ou 2 anos podemos ter novamente uma briga de Piquet e Senna na F1, agora protagonizada por Nelsinho Piquet (filho do tricampeo) e Bruno Senna (sobrinho do outro tricampeo). Outro nome que no podemos esquecer e que tem muito talento o Lucas DiGrassi. Escrevam este nome. Mas o melhor de tudo que no Brasil tambm as coisas melhoraram muito. Basta dar uma olhada na Stock Car, onde hoje correm 6 ou 7 ex-pilotos de F1, muito expressivo. Para finalizar, qual mensagem voc deixa a comunidade brasileira? Leo: O Brasil est bem maduro com relao s comunidades e uma comunidade forte gera oportunidade de aprendizado para todos. Continuem com o grande trabalho.

O Brasil est bem maduro com relao s comunidades e uma comunidade forte gera oportunidade de aprendizado para todos. Continuem com o grande trabalho

Leo: Sim, sem dvidas. Existem diversos motivos para participao em comunidades que variam desde querer aprender, compartilhar sua experincia ou simplesmente socializar. As comunidades oferecerem excelentes oportunidades para encontrar outros profissionais (ou empresas) com experincias e objetivos equivalentes aos seus, o que normalmente gerar oportunidade de engajamento e at mesmo de negcios. Se voc no estiver l, vai perder a oportunidade. Voltando a falar sobre o programa MVP, qual o principal benefcio que a MS oferece aos MVPs e o que os MVPs oferecem a MS de benefcio? Leo: Em minha opinio o maior benefcio para os MVPs (vocs deveriam perguntar para eles para confirmar) o contato com o time de produto, que oferecer uma oportunidade nica de trocar experincias, conhecer melhores prticas e influenciar nas futuras verses. Para a Microsoft, a oportunidade de estar prximo a um grupo extremamente influente em suas comunidades para ouvir seus desejos e feedback para incorporar em verses futuros do produto, alm de entender

Leonardo Tolomelli MVP Lead no Brasil e Cone Sul. Mantm o seu blog em: http:// mvplead.spaces.live.com.

PGINA

XNA - Uma batalha para seu XBOX 360 a cada dia!


Salve nobres Spartanos! Chegou a hora de voc desenvolver seu prprio game, seja para a plataforma Windows ou para o fantstico XBOX 360. Neste ano a Microsoft lanou a verso 1.0 Refresh do XNA Game Studio Express. A ferramenta baseada no Visual C# Express Edition, com uma grande biblioteca de classes voltadas para o desenvolvimento de jogos: XNA Framework. O legal disso tudo que a maior parte do cdigo que voc escreve para Windows Platform, serve para XBOX 360. Com algumas simples adaptaes voc consegue rodar o mesmo game nas duas plataformas. Ok nobres, e como iniciar no desenvolvimento de games para XBOX 360? Vamos l Spartanos, ao ataque: Baixar e instalar o Microsoft Visual C# Express Edition http://msdn.microsoft.com/vstudio/express/visualcsharp Baixar e instalar o XNA Game Studio Express http://msdn2.microsoft.com/en-us/xna/default.aspx baixar e instalar os Starter Kits http://creators.xna.com/Education/StarterKits.aspx No ltimo passo observe que para a brincadeira ficar ainda mais divertida a Microsoft disponibilizou alguns Starter Kits para voc evoluir no aprendizado, customizar seus games e de quebrar aproveitar e aplicar tcnicas fantsticas encontradas nos cdigos . Hummm, se ainda acha tudo isso difcil, que tal dar uma olhadinha no cdigo fonte do meu pequeno game Brazilian Bee: http://www.facunte.com.br/ bbee.aspx Por enquanto, nobres Spartanos, essa apenas a primeira batalha. Divirtam-se. Facunte - http://www.facunte.com.br

Facunte MVP Visual Developer ASP/ASP.Net, co-Owner Framework.Net Microsoft Latam, entusiasta de aplicaes ebusiness, XNA Game Designer, publicou 9 livros e mais de 120 artigos, ministrou palestras, cursos e workshops para cerca de 20.000 pessoas em todo o pas, membro-fundador do DUG-BR, membro-fundador do VSTS Rocks Brasil, Lider do grupo Codificando.Net, Arquiteto de Software da Saraiva.COM, professor de Cincia da Computao da UNIP e de psgraduao em Engenharia de WebSites da UNICSUL-SP

PGINA

Coluna: BizTalk.ing
Ao ser convidado para integrar o time de colunistas dessa nova revista da comunidade Codificando .NET fiquei bastante surpreso e ao mesmo tempo muito honrado. Afinal, integrar um time de colunistas to brilhante como esse , com certeza, uma grande honra. Gostaria de dizer a voc leitor, que ser um imenso prazer poder conversar com voc nesse nosso encontro mensal. Trabalho com BizTalk desde 2004, quando o produto foi completamente modificado. A pergunta que mais ouvi em todo esse tempo foi: O que esse treco?. E como argumentos contrrios a sua implantao sempre ouvi que: o BizTalk custa muito e no faz quase nada. Partindo da minha experincia, entendo que o objetivo dessa coluna de estria deveria ser conversarmos um pouco a respeito desse treco, que custa to caro (ser?) e que, na verdade, quase ningum sabe ao certo o que faz. Com essa idia em mente esse espao foi batizado como BizTalk.ing. O jogo de palavras (ou trocadilho) obvio. Traduzido grosseiramente seria algo como BizTalkando, que vem a ser o ato de BizTalkar. No sei ainda quem voc, leitor. Se um biztalkero ou uma pessoa no familiarizada com o BizTalk. Se voc for um biztalkero de carteirinha, a coluna desse ms no deve trazer nenhuma novidade. Para voc que no sabe o que vem a ser o BizTalk, minha pergunta : o que pode ser interessante nesse produto que quase todo mundo j ouviu falar, mas poucos conhecem? Por que o produto tem um nome to estranho? Para respondermos essas perguntas, seremos obrigados h retroceder alguns anos na historia. H no muito tempo atrs, numa galxia nada distante o homem inventou o computador e com ele os softwares. A princpio esses softwares eram bastante simples e se propunham a resolver problemas objetivos. A capacidade de armazenamento dos dados desses softwares permitiu que eles evolussem gradualmente para aplicaes mais complexas. Estamos falando de aplicaes j muito conhecidas, tais como: Contas a Pagar e Receber, Folha de Pagamento, entre tantas outras. Esses softwares so chamados de especialistas. Essas aplicaes, individualmente, resolveram problemas isolados, mas tinham um grave problema: no compartilhavam as informaes entre elas. Para que os dados de um sistema fossem utilizados por outro uma alternativa era imprimir um relatrio com determinadas informaes no software A e digit-las no B. um mtodo que efetivamente funciona, porm muito trabalhoso e propenso a erros. Sem entrar em detalhes sobre as iniciativas que tentaram resolver esse problema, at porque nem todas foram bem sucedidas, podemos afirmar que o grande salto foi o nascimento dos sistemas integrados. O ponto alto dessa idia foi o ERP (Enterprise Resource Planning). ERP o termo usado pela indstria para um conjunto de atividades suportado por uma aplicao de mltiplos mdulos. Normalmente um sistema ERP usa uma base de dados comum a todos os mdulos, preferencialmente uma base de dados relacional. Essa idia funcionou bem por algum tempo, mas uma constatao foi feita: era virtualmente impossvel desenvolver uma aplicao que resolvesse todos os problemas de forma definitiva, para todas as empresas, de todos os diferentes setores produtivos e comerciais. Constatou-se que, para a empresa A o mdulo Fiscal no atendia plenamente, para a empresa B o mdulo de Folha de Pagamento era ineficiente e para a empresa C o Contas a Receber era inadequado. A melhor soluo para esses casos era comprar o ERP que tivesse a maior quantidade de mdulos aproveitveis da empresa X e adquirir o mdulo (ou aplicao) desejado da empresa Y. Ou ainda, se o modelo da empresa fosse muito especfico, desenvolver a aplicao em casa, pela prpria equipe de TI. Uma grande colcha de retalhos. Alm disso, com o passar do tempo, outras necessidades surgiram. Empresas se viram obrigadas a: adquirirem aplicaes de CRM, implementarem solues de EDI, entre tantas outras necessidades, todas motivadas pela gerao de resultados mais imediatos e alimentadas pela ininterrupta evoluo tecnolgica. A internet mudou, de forma radical, a maneira como os negcios eram feitos. Tanto os negcios entre as empresas (B2B Business-tobusiness), quanto os realizados entre a empresa e o consumidor final (B2C Business-to-Consumer). Mais retalhos precisaram ser costurados na colcha. Alguma coisa precisava ser feita para atender essa necessidade de integrao e a primeira soluo encontrada foi a carga de dados. O principio dessa soluo simples: o relatrio (ou o pedido do cliente, no caso de um EDI), outrora impresso e digitado, era exportado para um arquivo, num formato especifico e depois importado por outra aplicao respeitando os formatos. O DTS (hoje chamado de Integration Services no SQL 2005) um excelente exemplo desse mtodo. Mesmo assim, sabemos que a necessidade dos usurios evolui junto com a tecnologia. Em alguns casos at mais rpido. Com o advento da internet e a promessa de toda informao disponvel na hora que precisamos dela a soluo de carga de dados se tornou inadequada, porque ela funciona de forma offline, usando servios agendados, realizados em horrios especficos.

Biztalk.ing

PGINA

Coluna: BizTalk.ing
Regras de negcio precisam ser codificadas. Controles de transao e registro de logs precisam ser desenvolvidos. Os desenvolvedores precisam se preocupar com muitas particularidades. Eles precisam integrar todas as aplicaes envolvidas no processo. Por definio, uma integrao o estabelecimento de comunicao entre duas ou mais entidades autnomas e independentes. Note que, pelo exemplo citado, esta integrao no precisa ser necessariamente entre aplicaes. Elas tambm podem envolver a figura humana. nesse momento que o leitor deve estar se perguntando: O que tudo isso tem a ver com o nome do produto ser BizTalk?. A explicao mais simples do que parece. Biz (uma diminuio da palavra business) significa negcio em ingls. A traduo de Talk conversar. A idia da Microsoft (j no lanamento da primeira verso do produto em 2000) era aproveitar todos os padres criados pelo mercado numa nica ferramenta. O objetivo dessa ferramenta resolver problemas de integrao de aplicaes de forma mais simples e fcil. Resumidamente falando, o BizTalk colocado entre as aplicaes A e B possibilitando a conversa entre essas aplicaes. Isso pode ser feito apenas com a troca de mensagens entre as aplicaes (messaging), ou implementando regras de negcio (orquestraes). Tudo isso de forma transacional, com registros de logs e capacidade de agregar inteligncia ao ambiente, fazendo a anlise dos dados que trafegam pelo BizTalk e disponibilizando uma base de BI para consultas gerenciais dos processos e gerao de relatrios analticos. Hoje o BizTalk est em sua quarta evoluo. A Microsoft prev o lanamento da quinta verso, BizTalk 2006 R2, para os prximos meses. Acho que vocs perceberam que nosso assunto bastante extenso e que idia hoje era conversar mais com os amigos que ainda no tem familiaridade com o mundo da integrao. Em nossos prximos encontros mensais pretendo tratar, com mais profundidade, de todos os assuntos que, por enquanto, foram apenas citados. Inclusive apontar quais so os outros produtos disponveis no mercado que tem o mesmo foco do BizTalk e as devidas comparaes entre eles. Acredito que, mais importante do que dominar um produto especfico, saber o que ele se prope a fazer e o conceito por trs dessa ferramenta. Mas para que possamos evoluir e discutirmos sobre os assuntos que sejam do seu interesse preciso de sua ajuda. Preciso que vocs me escrevam, perguntem, acusem. Somente com a sua participao poderei adequar o assunto do ms com a necessidade de vocs. Recentemente fui convidado a participar de um blog compartilhado com outros biztalkeros. o BizTalk Brasil. Dvidas tcnicas que forem encaminhadas e que sejam de interesse geral sero respondidas como artigos l. O endereo HTTP://biztalkbrasil.blogspot.com. Espero que o assunto tenha despertado o interesse de quem no sabia nada sobre o assunto e que os biztalkeros de planto encham minha caixa postal com todas as duvidas que quiserem. At a prxima !!!

Nossos clientes no queriam apenas isso. Eles queriam mais. Eles precisavam de interfaces cliente (de preferncia WEB) que atendessem processos especficos, independente das aplicaes, que atualizassem todas as bases de dados necessrias e disparassem todos os eventos que aquele processo especfico necessitasse. Vamos a um exemplo disso: imagine que nosso cliente tem uma fora de vendas composta de vrios vendedores. Cada vendedor atende uma rea delimitada e visita um numero X de cidades retirando os pedidos. Esse vendedor no possui um dispositivo mvel que envia automaticamente os pedidos e sincronizam on-line todos os dados necessrios. Na sexta-feira, ao chegar a sua casa, cansado e com saudades da famlia, o pobre coitado ainda precisa lanar os pedidos das vendas que fez e, ainda, o seu relatrio de despesas. Ele no est na empresa e sim na sua casa. Qual seria a melhor soluo? Logicamente que, para ele, o melhor seria acessar uma pgina na internet onde ele pudesse lanar os pedidos e tambm o seu relatrio de despesas. Sabemos bem que os pedidos deveriam ser lanados no ERP que se encarrega de, automaticamente, informar todos os mdulos envolvidos. A linha de produo saber que existem itens a serem produzidos. Ou ento alguns itens precisaro ser baixados do estoque e o mdulo de logstica deve providenciar para que os procedimentos internos de despacho da mercadoria sejam disparados. Tudo isso, se possvel, sem interveno humana. Todas as despesas do vendedor precisam ser informadas ao seu supervisor (ou, dependendo do workflow do processo, a vrias outras pessoas), que recebe um e-mail, aprova as despesas e o crdito conta do vendedor feito automaticamente. Se tivermos apenas um aplicativo integrado, e contarmos com todos os mdulos necessrios e esse aplicativo possuir uma interface WEB bacana para atender esse processo, no teremos nenhum problema. Mas vimos que essa situao hipottica normalmente no verdadeira. Lembra-se da colcha de retalhos citada anteriormente? claro que o leitor atento dir: Temos as tecnologias necessrias para isso. s dispararmos as interfaces corretas que rodam por trs dessa pagina WEB que tudo ficara bem! Temos SOAP, webservices, EAI, BPA, BPM, SOA, EDI e tantos outros termos e padres para aplicar. Certo? Essa afirmao quase correta. Realmente temos todos os

padres e tecnologias a nossa disposio.


Todos os problemas descritos at agora so bastante comuns. Creio que qualquer desenvolvedor, com algum tempo de experincia na rea, j tenha vivido alguma experincia parecida. O mercado percebeu isso e procurou resolver esses problemas com iniciativas de padronizao de interfaces de comunicao. Toda padronizao benfica e facilita nossa vida. O nico porem que so apenas padres e por si s no resolvem o problema. Esses padres precisam ser implementados. Os programadores precisam arregaar as mangas e escrever as linhas de cdigo que, fazendo uso desses padres, coloquem as aplicaes para conversarem.

Feio Tomaz (feiotomaz@codificandomagazine.net) tecnlogo em Processamento de Dados, formado pela Fatec-Americana. MCTS em BizTalk Server 2006, trabalha desde 2004 como consultor especialista em Desenvolvimento de Processos de Negcio e Solues de Integrao. Atualmente consultor da ITGROUP. Trabalha h tanto tempo na rea que nem consegue mais se lembrar.....

PGINA

Coluna: Coluna de Qualidade


um prazer escrever esta coluna sobre um assunto no muito explorado como qualidade de software. Talvez eu possa dar a minha humilde contribuio, e estimular o debate sobre o assunto. Gostaria de fazer uma experincia, leia o texto abaixo: Nenhuma cena da pr-histria to vvida como a luta de grandes monstros sobre um poo de piche. Em nossa imaginao vemos dinossauros, mamutes e tigres dentes-de-sabre lutando contra o piche pegajoso. Quanto mais violenta a batalha, mais ficam envoltos em piche, e nenhum monstro to forte ou habilidoso que no acabe afundando. A programao de grandes sistemas na ltima dcada tem sido este poo de piche, e grandes e poderosos monstros foram vencidos violentamente. Alguns sistemas que funcionam surgiram destes muitos poucos atenderam requisitos, planejamento e oramento...

Qualidade

Quando voc imagina que o texto foi escrito? Pois bem, o texto de 1975, faz parte do primeiro ensaio do clssico obrigatrio da nossa rea: The Mythical Man Month. E se este texto se mantm atual precisamos refletir sobre o que continua dando errado, afinal, ns temos ferramentas mais produtivas, maior acesso a informao, metodologias mais maduras, etc. Mas mesmo com a evoluo de todos os aspectos do desenvolvimento de sistemas nos ltimos trinta anos, ainda estamos desenvolvendo os mesmos monstros que lutam para se salvar do poo de piche. Talvez seja o momento para fazer um meaculpa. Ns desenvolvedores Microsoft sempre nos orgulhamos de sermos os mais produtivos, os nicos que cumprem as necessidades de uma inteligncia de negcio sempre mutante, que algo que um desenvolvedor Java levaria um ms, um desenvolvedor VB poderia fazer em uma semana. As nossas ferramentas de trabalho (Visual Studio, SQL Server, Reporting Services, etc) sempre acompanharam essa mentalidade do simples e rpido, deixemos o Java com o IDE Eclipse e suas dezenas de plug-ins. E neste meio tempo enquanto ns, desenvolvedores Microsoft melhorvamos a nossa produtividade, eles evoluram em diversas tcnicas de qualidade de software como automao de testes, refactoring de cdigo, design patterns, software factories, processo de integrao contnua e muitas outras frentes. No me entenda mal, os projetos Java criam os seus prprios monstros no poo de piche, o que eu acredito que ns podemos tirar vantagem de toda a experincia de projetos de cdigo aberto e incorporar algumas idias no nosso processo de desenvolvimento. O primeiro conceito que eu gostaria de explorar : aplicaes devem ser projetadas para testes e manuteno. Apesar da maioria das aplicaes se reduzirem a um punhado de arquivos binrios e um banco de dados, elas precisam ser consideradas um bem, um ativo da empresa e, desse modo, ns desenvolvedores precisamos cri-las com a premissa de que alterar ou trocar uma soluo algo que requer esforo e dinheiro. Essa mentalidade de construir uma soluo para durar pode parecer simples, mas um compromisso que se inicia na venda e que no tem fim. o vender bem, projetar bem, testar bem, distribuir bem, entregar bem, etc. Uma das solues para alcanar este objetivo projetar a soluo para ser testada. Um conjunto de testes automatizados no tem preo para uma soluo: Desencoraja o desenvolvedor a criar mtodos imensos ou classes que misturem responsabilidades j que este tipo de cdigo muito difcil de testar Garante uma manuteno segura uma vez que evita que pequenas alteraes causem algum problema sem que seja notado, j que um teste automtico que falhe notado mais rapidamente que executar um teste manual Serve como uma documentao viva da soluo j que um conjunto de testes contm mais detalhes sobre um requisito da aplicao do que qualquer documento possa possuir

PGINA

Coluna: Coluna de Qualidade


Outro ponto de vista sobre o conceito que eu citei a manuteno do software, uma atividade considerada um pouco marginal pelos desenvolvedores. A verdade que a manuteno to desprezada porque ningum gosta de lidar com cdigo excessivamente complexo e desorganizado. Se uma equipe de manuteno pudesse recusar uma aplicao nestas condies ela o faria, pois uma aplicao que engessada e dificulta o acoplamento de novas funcionalidades a frustrao de qualquer projeto de manuteno.

Qualidade

Por outro lado, se voc trabalha na primeira verso de um aplicativo, pense nas vantagens de criar um cdigo amigvel para manuteno. Quando isto acontece voc no fica preso com a propriedade do cdigo e pode partir para o prximo projeto mais rapidamente. Alm disso, pssimo para a sua reputao um cdigo que fica rfo e no evolui com o tempo, j que indica que voc no teve a habilidade ou o cuidado de prepar-lo para durar e no ser jogado fora depois de algum tempo. Como toda idia que reside no senso comum seria muito ingnuo achar que estas sugestes poderiam ser aplicadas em qualquer cenrio. claro que devemos criar as nossas aplicaes mais testveis e simples de dar manuteno. No entanto se imaginarmos situaes como utilizar uma tecnologia muito inovadora que possa dar uma vantagem competitiva para a soluo, por exemplo, utilizar o Microsoft Silverlight para prover uma experincia rica para um site, talvez precisaremos fazer algo rpido e sujo, ou no poderemos explorar a tecnologia. Ainda assim, esse tipo de cenrio deve sempre ser isolado de outras partes da soluo para garantir a sade do cdigo em longo prazo. Enfim, espero que estes conceitos faam parte da sua realidade, se isto for verdade a chance de suas aplicaes sofrerem de problemas de qualidade muito pequena. Mas se estes conceitos forem apenas teoria para voc espero que esta coluna tenha dado argumentos para ajudar voc a convencer quem quer que seja das vantagens de se pensar em longo prazo ao desenvolver solues. Talvez voc no tenha o poder de decidir como as coisas so feitas em sua empresa, mas o seu papel mostrar os benefcios de se passar de um processo de manufatura de cdigo para algo realmente profissional. O meu objetivo nesta coluna dar a minha pequena contribuio para ajudar-lhe nesta tarefa. Lembre-se, a soluo na qual voc est trabalhando um bem da empresa que precisa durar.

Eduardo Mendona Gomes (edugomes@codificandomagazine.net) consultor de tecnologias Microsoft e de qualidade de software na ITGROUP. Voc pode encontrar outras informaes sobre qualidade e notcias sobre desenvolvimento em seu blog em http:// edumgomes.blogspot.com/

PGINA

10

Coluna: Point2Share
com grande entusiasmo que comeo a escrever essa coluna Point2Share aqui na Codificando.Net e-Magazine. Espero poder compartilhar com todos os leitores assuntos dos mais diversos e interessantes, mas como uma tendncia pessoal e profissional a abordar a rea Information Worker. Tecnicamente, podem esperar nesse nosso espao muita coisa sobre desenvolvimento com base na plataforma de produtos e servios do Office System que atualmente composto por basicamente 3 reas de atuao. So estas: Programas: Contendo basicamente os produtos do Office System que estamos acostumados a utilizar em nosso dia-a-dia de trabalho, tais como os clients Word, Excel, PowerPoint,Outlook e outros mais... Servidores: Contm basicamente os produtos da linha Windows Server System com foco em produtividade, integrao e organizao de informaes no mbito corporativo. Neste cenrio podemos incluir as Office Sharepoint Server 2007, Office Communications Server 2007, Project Server 2007 e outros mais... Servios: Uma das grandes novidades, esta rea contempla basicamente a presena do Office Online e do Office Live. O primeiro, acessvel atravs do endereo http://office.microsoft.com, trata-se de um grande centro de informaes sobre o Office System como um todo, incluindo desde documentaes at exemplos e add-ins dos mais diversos. J o segundo, acessvel atravs do endereo http://officelive.microsoft.com, tem como princpio a disponibilizao de pacotes de servios online que podem incluir desde um domnio prprio e espao ao seu web site at contas de e-mail acessveis via dispositivos mveis passando por espaos de colaborao online (troca de arquivos por exemplo) e ferramentas de auxlio ao gerenciamento de projetos. Aqui j vai uma dica, atualmente o Office Live possui 3 pacotes de servios evolutivos o Office Live Basics, Office Live Essentials e Office Live Premium sendo o primeiro deles inteiramente gratuito () e os outros com perodos de avaliao de 30 dias. Veja abaixo a Figura 1, representando toda abrangncia do Office System.

Point2Share

Ou seja, temos muito assunto para tratar sobre o desenvolvimento com base ou integrao com todos estes produtos com certeza passaremos por VSTO Visual Studio Tools for Office, Desenvolvimento Office System, OpenXML, Formulrios Eletrnicos com base no Office InfoPath, customizao das tecnologias Sharepoint, OBA - Office Business Applications e muito, mas muito mais mesmo. Abordaremos tambm tpicos no-tcnicos, ou seja, podemos conversar de forma bastante extensa sobre necessidades corporativas, focos de integrao, produtividade e outros pontos que nos assombram durante o dia-a-dia de trabalho. Pensem nestes pontos como os possveis motivadores para o desenvolvimento de alguma aplicao ou customizao ou seja nossas necessidades dirias que fomentam o desenvolvimento de solues. Como temos um mundo de assuntos para conversar, gostaria de aproveitar este nosso primeiro encontro j para apresentar novidades com relao a um dos produtos que mais gosto e trabalho, sendo um dos meus prediletos atualmente, o Sharepoint. Let's rock ....

PGINA

11

Coluna: Point2Share
Quando comeamos a falar em Sharepoint, surjem automaticamente e invariavelmente diversas dvidas e questionamentos sobre o mesmo algo perfeitamente normal mas so sempre os mesmos. So eles:

Point2Share

1. O que esse tal de Sharepoint? 2. Por que devo utilizar o (esse tal de) Sharepoint? 3. Quais as diferenas entre o WSS e o MOSS? (Prometo esclarecer a sopa de letrinhas alguns pargrafos abaixo)
Se ao final desta coluna conseguirmos responder claramente estas 3 dvidas; eu confesso a vocs que ficarei imensamente realizado pois estas respostas e esclarecimentos so primordiais para que possamos visualizar os benefcios do Sharepoint e conseqentemente vislumbrar os possveis cenrios de utilizao e implantao. Seguindo o direcionamento de assuntos e abordagens que detalhamos alguns tpicos acima, veremos agora algumas das mais latentes necessidades corporativas ou seja vamos falar dos problemas atuais. Colocando-me como usurio de um ambiente corporativo e de seus respectivos servios - qualquer (o que no deixa de ser real ainda hoje para todos ns), enfrento particularmente os seguintes problemas durante a realizao das minhas atividades dirias: Dificuldade em encontrar as informaes corretas, uma vez que quanto maior o ambiente de trabalho maior o volume de informaes geradas resultando conseqentemente em grandes ilhas desconectadas e ingerenciveis de contedo. Pense sobre o seguinte cenrio: File Shares corporativos onde necessito trabalhar com 3, 4, 5 ou mais compartilhamentos de fcil acesso tal como brfscorp01, fpsserverlatam07 e outras variaes bem interessantes; E-mails Exchange Server e mais 3 ou 4 arquivos locais (PSTs) somando aproximadamente meus 5 Gbs de e-mail; HD local Onde diariamente me confundo com minhas prprias tentativas de organizar arquivos localmente, afinal, so tentadores os 80, 120 ou 160 Gbs locais; Concluso: A informao que procuro esta com certeza armazenada em algum destes muitos repositrios. Posso no perceber, mas gasto diariamente muito e muito tempo procurando esta informao. Ou seja, o tempo desprendido na procura, e no efetivamente em produtividade e gerao de conhecimento/negcios, muito grande. Dificuldade em ser produtivo, uma vez que cada repositrio de informaes contm seu prprio mecanismo de indexao e busca de informaes. Produtividade muitas vezes no esta relacionada somente rapidez com que voc responde as necessidades corporativas, mas vale tambm considerar a confiabilidade de tal trabalho; ou seja, outro ponto importante que com toda esta confuso fica realmente difcil acreditar e garantir a confiabilidade das informaes utilizadas neste exato momento. Quer um exemplo clssico? Ento responda com certeza o seguinte questionamento:

Voc tem certeza de que esta a ltima verso deste documento (ou informao)?
Concluso: Achar a informao correta e confivel em um perodo pequeno para ser produtivo essencial em nosso dia-a-dia.

PGINA

12

Coluna: Point2Share
Gostaria de compartilhar alguns outros estudos com vocs de entidades internacionais com relao a estes pontos. Employees get 50%-75% of their relevant information directly from other people. More than 80% of enterprise's digitized information reside in individual hard drives and in personal files. Individuals hold the key to the knowledge economy and most of it is lost when they leave the enterprise. From The Knowledge Worker Investment Paradox Gartner research 7/17/2002 Neste momento, espero que vocs estejam se questionando: .... acho que precisamos nos organizar, e organizar consequentemente nossas informaes! Agora vamos l, respostas rpidas e fceis s nossas principais perguntas: 1. O que esse tal de Sharepoint? Uma plataforma tecnolgica com foco e direcionamento gesto de informaes corporativas; facilitando consequentemente a organizao, centralizao, gerenciamento e segurana, proporcionando maior produtividade medida que as informaes tornan-se consistentes, seguras, confiveis e principalmente visveis. De forma evolutiva, o Sharepoint pode tambm ser utilizado como uma plataforma de gerenciamento de processos corporativos afinal, processos compe e so compostos por Informaes! Por que devo utilizar o (esse tal de) Sharepoint? Porque sua infra-estrutura de servios proporciona de forma rpida, eficiente e segura um alto nvel de controle das informaes - sendo base de processos colaborativos onde a transferncia e organizao de conhecimentos torna-se primordial para a evoluo contnua e igualitria de todos os seus consumidores. O alto nvel de integrao com as ferramentas do Office System proporcionam nveis cada vez mais altos de produtividade, assim como sua interface de usurio baseada no ambiente Web traz uma tima usabilidade. Ou seja, o Sharepoint pode ser interessante porque ele nos ajuda tecnologicamente a organizar nosso imenso espao de dados, informaes e conhecimentos corporativos dispersos. Quais as diferenas entre o WSS e o MOSS? Eu costumo dizer que o Sharepoint esta disponvel em 2 sabores diferentes ou seja em 2 verses distintas. A sigla WSS significa Windows Sharepoint Services no pode ser caracterizado efetivamente como um produto, mas sim como uma tecnologia. Fica mais fcil com isso entender que o WSS uma parte integrante do sistema operacional Windows Server 2003 e, como parte integrante, no requer licenciamento adicional. Isso mesmo (alguns custam a acreditar nesta informao), se voc j usa o Windows Server 2003, Parabns, voc j possui direito de utilizar o WSS em seu ambiente corporativo sem nenhum nus de licenciamento basta obt-lo a partir do site de downloads da Microsoft. J a sigla MOSS faz referncia ao Microsoft Office Sharepoint Server 2007, um produto Microsoft da linha Windows Server System. Este produto faz o uso do WSS como a sua Plataforma Base de servios (entenderam por que o WSS ser caracterizado como uma tecnologia?) extendendo os recursos bsicos e implementando uma srie de funcionalidades e caractersticas como foco em necessidades corporativas. Como qualquer produto, o MOSS requer licenciamento para ser utilizado. Ou seja, o WSS implementa os recursos bsicos da plataforma de colaborao e gerenciamento de informaes, sendo o MOSS um produto muito mais extenso do ponto de vista de funcionalidades e recursos tanto para usurio, como para desenvolvedores e administradores. Mas no se engane, o WSS mesmo sendo uma tecnologia, pode se tornar uma grande e real plataforma corporativa.

Point2Share

2.

3.

Por questo de espao, para visualizar com mais detalhes quais recursos so disponibilizados no WSS ou extendidos e implementados pelo MOSS recomendo o seguinte link: Which SharePoint technology is right for you? http:// office.microsoft.com/en-us/sharepointtechnology/FX101758691033.aspx?ofcresset=1 Fiquem tranquilos, nos prximos meses falaremos mais das funcionalidades em si sempre abordando diferenas de comportamento ou funcionalidade entre, por exemplo, o WSS e o MOSS. Espero v-los por aqui em nossas prximas edies, onde tentarei evoluir um pouco mais sobre esta primeira abordagem de Sharepoint, cenrios de implantao e muito mais.

Hlio S Moreira (helio@codificandomagazine.net) Microsoft MVP (Most Valuable Professional) em Office Sharepoint Server 2007, especialista em arquitetura e implementao de solues corporativas com atuao direta nas maiores e mais importantes empresas nacionais. Entusiasta da plataforma de IW - Information Worker com abrangncia a produtos tais como Office System 2007, Office Sharepoint Server 2007, Office Communications Server 2007, Groove 2007, entre muitos outros. Possui grandes interesses e atua tambm com as reas de Data Management (SQL Server 2005) e Business Intelligence (SQL Server 2005, PerformancePoint Server, Proclarity). Palestrante de grandes eventos tais como Microsoft Tech-Ed 2006, BIT 2006, MS Innovation Days, e outros mais...

PGINA

13

Coluna: No Stress Think .Net


com muito prazer que irei escrever neste espao sobre assuntos e atividades acadmicas relacionadas s tecnologias Microsoft, dando nfase especial ao .NET. Queria em particular relatar a experincia deste ano, a respeito da Imagine Cup 2007, que tem como tema a Educao. Tive o prazer de ser juiz nas fases Semifinal e Final e perceber o quo engajados esto os alunos e quo interessantes e criativos foram os trabalhos apresentados nas rodadas citadas. Aproveito este espao para incentiv-los a participarem na competio, que agora se encaminha fase da Final Mundial, na Coria do Sul. So diversas categorias, que cito abaixo: Solues de Tecnologia: Projeto de Software, Sistemas Embarcados e Desenvolvimento Web. Desafios de Capacidade: Projeto Hoshimi(games), Desafio de Infra-Estrutura e Algoritmos. Arte Digital: Fotografia, Filme de Curta-Metragem e Projeto de Interface. Para deix-los mais animados, as inscries sero abertas a partir de Outubro de 2007, no site http:// www.imaginecup.com. O tema para 2008 um tema atual e muito importante para o bem-estar mundial: MeioAmbiente. Participem, ousem, tentem, estudem, renam-se, mostrem a sua capacidade e vontade de vencer, utilizem as tecnologias de ponta da Microsoft, .NET, WPF, WCF, Windows Vista, Silverlight, enfim, tudo o que lhes vier mente e que lhes proporcione a possibilidade de elaborar um projeto interessante e que lhes permita classificar, chegar s fases Semifinal e Final. No apenas o prmio fsico, de poder viajar Frana (local da final mundial da Imagine Cup 2008), mas tambm representar a sua Universidade, trabalhar em grupo, fazer um belo networking e mostrar ao mundo a sua capacidade. Vocs tm a faca, o queijo nas mos e a criatividade prpria de ns, brasileiros, para brilharem e mostrarem do que so capazes. Saudaes DotNetianas a todos! Mauricio Wieler Orellana mauricioow@gmail.com

Mundo Acadmico

Mauricio Wieler Orellana - Bacharel em Cincias da Computao, Mestrando em Cincias da Computao na USP, MCSD em Visual Studio 6, MCP em C#, atua no mercado Informtica h 14 anos e professor da Universidade Paulista (UNIP), Universidade Salesiana de So Paulo (UNISAL) e Faculdade Montessori, desde 2000. Fo Coordenador Acadmico da INETA Brasil.

PGINA

15

Artigo: Know Types no WCF

muito comum em qualquer linguagem orientada a objetos, criarmos uma classe base e que, a partir dela, criar classes derivadas. Alm disso, um dos grandes benefcios que temos com a orientao a objetos a possibilidade de declararmos uma varivel do tipo da classe base e atribuirmos a ela uma instncia de uma classe concreta e, da mesma forma, podemos ter uma funo em que em seus parmetros os seus tipos so especificados com o tipo da classe base e, conseqentemente, podemos tambm passar instncias das classes derivadas. Infelizmente no funciona da mesma forma quando falamos de servios que so expostos a partir do WCF. Neste cenrio, por padro, voc no pode usar uma classe derivada ao invs de uma classe base. Sendo assim, se quisermos utilizar esta classe base publicamente (parmetros e retorno de mtodos), precisamos nos atentar em algumas tcnicas para permitir isso. Para exemplificar o problema, vamos analisar o cdigo contrato abaixo:

C# using System; using System.ServiceModel; namespace DevMinds.Library { [ServiceContract] public interface IGerenciadorDeContatos { [OperationContract] void AdicionarContato(Pessoa p); [OperationContract] Pessoa[] RecuperaContatos(); } }
E, alm do contrato, temos a classe Pessoa que possui apenas uma propriedade do tipo string:

VB.Net Imports System.ServiceModel <ServiceContract()> _ Public Interface IGerenciadorDeContatos <OperationContract()> _ Sub AdicionarContato(p As Pessoa) <OperationContract()> _ Function RecuperaContatos() As Pessoa() End Interface

C# using System; using System.ServiceModel; using System.Runtime.Serialization; namespace DevMinds.Library { [DataContract] public class Pessoa { private string _nome; [DataMember] public string Nome { get { return this._nome; } set { this._nome = value; } } } }

VB.Net Imports System Imports System.ServiceModel Imports System.Runtime.Serialization Namespace DevMinds.Library <DataContract> Public Class Pessoa Private _nome As String <DataMember> Public Property Nome() As String Get Return Me._nome End Get Set (Value As String) Me._nome = value End Set End Property End Class End Namespace

Supondo-se que o cliente defina uma classe chamada Fisica (de pessoa fsica) que herde diretamente da classe Pessoa e tente enviar a instncia desta classe para o mtodo AdicionarContato. Apesar de compilar, voc ter uma exceo quando o cdigo for executado, pelo fato de que quando voc passar a classe Fisica ao invs de Pessoa o servio no saber como deserializar a "Pessoa" que recebida. O mesmo vale para quando voc tem uma coleo em seu servio de uma classe derivada e tenta retorn-la para o cliente, expondo atravs do retorno do mtodo uma coleo de tipos base.

PGINA

16

Artigo: Know Tipes no WCF


C# VB.Net Imports System Imports System.ServiceModel Imports System.Runtime.Serialization <DataContract, KnownType(GetType(Fisica))> _ Public Class Pessoa 'Implementao End Class <DataContract> Public Class Fisica Inherits Pessoa 'Implementao End Class

Para suavizar este problema, o WCF introduziu um atributo chamado KnownType. Esse atributo recebe em seu construtor um Type, indicando infraestrutura do WCF que existe uma classe derivada do tipo onde o atributo aplicado e que ela tambm pode ser aceita. Quando voc define este atributo do lado do servidor, voc permitir que todos os contratos e operaes que utilizem este tipo base possam aceitar o tipo especificado pelo atributo. O exemplo abaixo ilustra como devemos proceder para utilizar o atributo KnownType:

[DataContract] [KnownType(typeof(Fisica))] public class Pessoa { //Implementao } [DataContract] public class Fisica : Pessoa { //Implementao }

Uma vez aplicado este atributo, ele far com que a classe derivada seja adicionada nos metadados do servio e, conseqentemente, o cliente ter a definio da mesma, podendo pass-la para o servio ao invs da classe base. Desta forma, podemos tranquilamente executar o cdigo que antes do atributo era impossvel:

C# using (GerenciadorDeContatosClient proxy = new GerenciadorDeContatosClient()) { Fisica f = new Fisica(); f.Nome = "Israel"; f.Cpf = "00000000000"; proxy.AdicionarContato(f); }

VB.Net Using proxy As New GerenciadorDeContatosClient () Dim f As New Fisica() f.Nome = "Israel" f.Cpf = "00000000000" proxy.AdicionarContato(f) End Using

Como disse anteriormente, o ponto negativo deste atributo com relao ao escopo, pois ele permite que todos os locais onde aceite uma classe base, aceitar um tipo derivado especificado no atributo. Se no quisermos isso, ou seja, se desejarmos habilitar este recurso somente para uma determinada operao, um contrato ou um servio, podemos utilizar o atributo ServiceKnowType, que pode ser aplicado a um mtodo, Interface ou classe. Com isso, o nosso cdigo mudar ligeiramente, permitindo que somente um determinado mtodo aceite instncias da classe Fisica:

C# using System; using System.ServiceModel; using System.Runtime.Serialization; namespace DevMinds.Library { [ServiceContract] public interface IGerenciadorDeContatos { [OperationContract] [ServiceKnowType(typeof(Fisica))] void AdicionarContato(Pessoa p); //outros mtodos } }

VB.Net Imports System Imports System.ServiceModel Imports System.Runtime.Serialization <ServiceContract()> _ Public Interface IGerenciadorDeContatos <OperationContract(), ServiceKnowType (GetType(Fisica))> _ Sub AdicionarContato(p As Pessoa) 'outros mtodos End Interface

PGINA

17

Artigo: Know Tipes no WCF


C# VB.Net Imports System Imports System.ServiceModel Imports System.Runtime.Serialization <ServiceContract()> _ Public Interface IGerenciadorDeContatos <OperationContract(), ServiceKnowType (GetType(Fisica)), ServiceKnowType(GetType (Juridica))> _ Sub AdicionarContato(p As Pessoa) 'outros mtodos End Interface

E ainda, se quiser permitir mais de uma classe derivada de um tipo base, ento poder adicionar mltiplos atributos (KnowType ou ServiceKnowType) para satisfazer a todos os tipos que a operao poder aceitar/retornar. O trecho de cdigo abaixo ilustra mltiplos atributos para mais de um tipo derivado:

using System; using System.ServiceModel; using System.Runtime.Serialization; namespace DevMinds.Library { [ServiceContract] public interface IGerenciadorDeContatos { [OperationContract] [ServiceKnowType(typeof(Fisica))] [ServiceKnowType(typeof(Juridica))] void AdicionarContato(Pessoa p); //outros mtodos } }

Para finalizar, ainda temos um detalhe importante quando falamos de know types que em relao recompilao do cdigo cliente ou do servio quando alguma nova classe derivada deve ser informada para que ela possa ser utilizada. Uma vez que um novo tipo precisa ser utilizado, implica em mudar o cdigo, recompil-lo e redistribu-lo. Para amenizar isso, o WCF permite-nos fazer essa configurao, ou melhor, adio de novos tipos, a partir do arquivo de configurao, como mostrado atravs do trecho de cdigo abaixo:

*.config <system.runtime.serialization> <dataContractSerializer> <declaredTypes> <add type="DevMinds.Library.Pessoa, DevMinds.Library, Version=1.0.0.0, PublicKeyToken=null"> <knownType type="DevMinds.Client.Juridica, DevMinds.Client, Version=1.0.0.0, PublicKeyToken=null"/> </add> </declaredTypes> </dataContractSerializer> </system.runtime.serialization>
Concluso: Mais uma vez vimos atravs de uma pequena funcionalidade o quanto o WCF flexvel e permite de uma forma bem fcil e simples integrar o cdigo e seus tipos que so desenhados e executados no cliente com o cdigo que temos no servidor.

Israel Ace (Israel@projetando.net) Microsoft MVP, MCP, MCAD, MCTS e MCT. Fundador do site Projetando.NET (http:// www.projetando.net). Atualmente atua como desenvolvedor de aplicaes .NET. Blog: http:// weblogs.pontonetpt.com/israelaece/.

PGINA

18

Destaques: Download do Ms
Todo ms temos alguma novidade para baixar da internet e para ningum perder nenhum desses downloads, vamos publicar mensalmente os principais downloads.

Download do Ms
Nada mais nada menos que o Visual Studio Orcas beta 1. Para que gosta de testar o produto e estudar os novos recursos, a Microsoft j disponibilizou o Download de todas as suas verses em fase beta. Evidente que como o produto beta, alguns bugs devem ser encontrados, alias, esse o objetivo da Microsoft. Algumas verses s podem ser baixadas por assinantes MSDN Subscribe, mas quem no assinante pode baixar tranqilamente as verses Express. O site para download : http://msdn2.microsoft.com/en-us/vstudio/aa700831.aspx. Veja parte do texto oficial em ingls retirado do site da Microsoft. Microsoft .NET Framework 3.5 Beta 1 The Microsoft .NET Framework 3.5 Beta 1 is a preview release of the latest version of the .NET Framework. Many ISVs, enterprises and Microsoft product teams are successfully building on the new features Windows Workflow Foundation (WF), Windows Communication Foundation (WCF), Windows Presentation Foundation (WPF) and Windows CardSpace in the .NET Framework 3.0. Microsoft plans to continue to invest in the .NET Framework developer platform and in support of existing users the .NET Framework 3.5 has a minimal number of breaking changes. Visual Studio Code Name Orcas Beta 1 Visual Studio code name "Orcas" is the next generation development tool for Windows Vista, the 2007 Office system, and the Web. Beta 1 consists of multiple releases including, Visual Studio Professional Edition, Visual Studio Team Suite and Visual Studio Team Foundation Server, which are available as selfextracting installation files you can use to install the products. Alternatively, you can download VPC images with the software pre-installed. In addition, you can download prerelease versions of Visual Basic Express, Visual C++ Express, Visual C# Express, and Visual Web Developer. Visual Studio Express Editions Visual Studio Express Editions are lightweight, easy-to-use and easy-to-learn tools for the hobbyist, novice and student developer. Link para as verses Express: http://msdn2.microsoft.com/en-us/vstudio/aa700831.aspx

Visual Studio Orcas beta 1

PGINA

19

Destaques: Blog do Ms
Os Blogs hoje so ferramentas essenciais para quem acompanha tecnologia, especificamente na rea de desenvolvimento, temos muitos blogs com informaes pra l de quentes sendo atualizados diariamente. Muitos funcionrios da Microsoft, membros da comunidade, especialistas, etc. formam uma gigante comunidade on-line com notcias, dicas, artigos, etc. Vamos destacar em nossas edies dois blogs, sendo um nacional e um internacional. Sempre analisando a qualidade dos posts e freqncia.

Blog Nacional
Israel Ace um grande destaque na comunidade com contribuies de artigos e frum MSDN, seu blog j muito conhecido na comunidade nacional, sempre atualizado contando as experincias do dia-a-dia de projetos, problemas, dicas, etc. Sempre com assuntos atuais e relevantes, vale a pena assinar seu Feed ou acessar diretamente a URL do blog.

Link do Blog: http://weblogs.pontonetpt.com/israelaece/

Os Blogs hoje so ferramentas essenciais para quem acompanha tecnologia

Blog Internacional
Rob Caron faz parte do time do produto VSTS na Microsoft em Redmound, com atualizaes constantes o blog material essencial para quem acompanha o produto VSTS em todo mundo. Se quiser saber tudo sobre lanamentos, verses, futuro, etc. basta acompanhar o blog do Rob. Um grande destaque do blog foi um post feito por ele sobre o livro VSTS Rocks Brasil, um livro nacional que foi citado como referncia de leitura por esse famoso blogger.

Link do Blog: http://blogs.msdn.com/robcaron/

PGINA

20

Dicas
Hoje em dia temos uma quantidade gigantesca de materiais de estudo, porm um direcionamento sobre esses materiais sempre muito importante. Nesta edio vamos apontar bons materiais produzidos no pas.

Iniciantes em .Net
Hoje em dia temos uma quantidade gigantesca de materiais de estudo, porm um direcionamento sobre esses materiais sempre muito importante
Agora se voc viciado em games e sonha em desenvolver o seu jogo, o site SharpGames, a primeira comunidade brasileira de XNA oferece um guia de aprendizado sobre a tecnologia, criado por Andr Furtado, que um dos grandes divulgadores da tecnologia no Brasil Se voc est iniciando seus estudos em .Net, no site http://www.facunte.com.br, encontramos materiais utilizados em sala de aula, treinamentos, etc. pelo professor, palestrante, MVP, viciado em XBOX Emerson Facunte. O material pode ser baixado gratuitamente no site.

http://www.facunte.com.br

XNA
http://www.sharpgames.net/Default.xna

PGINA

21

Comunidade Codificando .Net


A comunidade Codificando.Net surgiu em 2002, da idia de agrupar um grande nmero de desenvolvedores, usurios e entusiastas da tecnologia.NET para que os mesmos trocassem experincias sobre modelos, meios e formas de desenvolvimento. Os principais meios de cooperao e interao tcnica entre os membros da comunidade so: Web Site, www.codificando.net, realizao de eventos presenciais, participao em palestras em universidades, artigos tcnicos e frum de discusso atravs de lista de email. A participao de todos o que contribui para uma melhor performance e conhecimento de todos, pois a cada nova pergunta, a cada novo artigo, passamos a encarar os problemas de uma forma clara e objetiva, deixando complicaes e frustraes de lado. Para essas pessoas que contribuem para o perfeito funcionamento da comunidade, podemos, por meio de parcerias, recompens-las atravs de reconhecimentos, como por exemplo, o destaque do ms, que uma premiao dada ao membro que participar mais ativamente da lista de discusso. A comunidade Codificando.net possu objetivos claros e diretos: Levar o conhecimento adquirido compartilhar as experincias; e

Desenvolver cada vez mais o conhecimento sobre a tecnologia.NET; Promover palestras, encontros e seminrios sobre a tecnologia .NET; Agrupar os interessados em todo o Brasil; Solidificar e estimular o uso das linguagens da plataforma por todos. Esses objetivos nos d motivao para continuarmos lutando para que cada vez mais, novas pessoas se interessem.

Aprendizado, companherismo, ensino e aprendizado constante. Assim se faz a nossa comunidade.

Divises e equipe
O Codificando.Net foi fundado em 2002 no interior de So Paulo, em Campinas por Max Moussiman Neto. Nesta data foi lanado o Site Oficial e a Lista de Discusso (email). Em apenas 2 meses a lista de discusso j contava com mais de 200 membros participantes. Vrios outros projetos foram incrementando ainda mais o Web Site do Codificando.Net, um exemplo disso foi o inovador ViOn.Net (http://www.codificando.net/view_ViOn.aspx) , um sistema de vdeos on-line, at ento algo praticamente desconhecido no Brasil. Em 05/2004 o Codificando.Net realizou o seu primeiro evento. O evento aconteceu em Campinas, o People.Net, com apenas 32 vagas, encerradas em apenas 2 dias. Esse foi o marco do Codificando.Net em eventos. A comunidade cresceu muito e em outubro de 2003 criou-se uma nova diviso, o So Paulo Codificando.Net. Liderado e Fundado por Alexandre Tarifa e Marcus Garcia. O primeiro evento do So Paulo Codificando .Net foi o Debate.Net, em formato de mesa redonda e limitado a apenas 15 pessoas. Aps 3 anos de atuao, a equipe do Codificando est dividida da seguinte forma: Codificando .Net Max Moussiman Neto Lder e Fundador So Paulo Codificando .Net Alexandre Tarifa Lder / Andrey Sanches Lder / Emerson Facunte Lder Diego Nogare Co-lder / David Pomarico Co-lder 400 pessoas acompanham palestra em evento do Codificando.Net

PGINA

22

Comunidade Codificando .Net


O reconhecimento da comunidade Codificando .Net vem acontecendo ao longo do tempo, e em 3 anos de existncia sem dvida uma das maiores comunidades da plataforma .Net no Brasil, e porque no dizer do Mundo?! Os lderes e membros so profissionais reconhecidos no mercado e tambm reconhecidos pela Microsoft e INETA no Brasil. A Microsoft reconhece trs dos lderes com o ttulo de MVP (Most Valuable Professional), um reconhecimento aos esforos realizados na Comunidade. LDERES RECONHECIDOS COMO MVP: Alexandre Tarifa: Visual Developer Visual Basic/ VB.Net Andrey Sanches: Visual Developer Asp/Asp.Net Emerson Facunte: Visual Developer Asp/ Asp.Net A comunidade Codificando .Net tambm reconhecida pela INETA, que a International .Net Associassion, um rgo mundial de comunidades. Hoje o INETA Brasil liderada por Marcus Garcia, que atuou como lder do So Paulo Codificando .Net e pelo grande trabalho realizado foi reconhecido. DEPOIMENTOS O Codificando desde o incio de suas atividades vem demonstrando uma enorme seriedade junto a comunidade .NET. Essa seriedade aliada a um grande compromisso que nos cativou de forma a mantermos uma parceria de sucesso durante todos esses anos. Tenho certeza que esse trabalho frente da comunidade torna seu lderes altamente respeitados no mercado. Marcio Elias Diretor Executivo Linha de Cdigo O Codificando.NET sem dvida o mais ativo grupo de usurios de tecnologia .NET em So Paulo e uma grande honra palestrar em seus eventos. Mauro Santana Microsoft Regional Director e Microsoft MVP Quando conheci a turma do Codificando.NET pensei: So uns jovens turbinados se divertindo com .NET. Hoje vejo com grata surpresa que muito mais que isso. um trabalho srio de profissionais que efetivamente se comprometem com capacitar a comunidade. Fbio Cmara Microsoft MVP VSTS

A Microsoft reconhece trs dos lderes com o ttulo de MVP

Ao Social
O trabalho realizado junto a Alimentos arrecadados em revento pela comunidade. comunidade de desenvolvedores j pode ser considerado uma Ao Social, porm vivemos em um pas onde existem milhares de pessoas com necessidades diversas e acreditamos que qualquer ajuda mesmo que pequena pode significar a alegria de algumas pessoas. Pensando nisso o Codificando.Net adotou nos ltimos eventos a arrecadao de alimentos e/ou brinquedos que so doados a instituies de caridade. J foram doados mais de 200 brinquedos e aproximadamente uma tonelada de alimentos.

PGINA

23

Cobertura: Codificando 2007


Foi realizado no dia 19/05/2007 no auditrio do campus Tatuap da Universidade UNIP o evento Codificando 2007. Foi o primeiro evento do ano de 2007 da comunidade Codificando 2007, j comeando a temporada com um evento sensacional. Cerca de 500 pessoas assistiram palestras divididas em duas salas: Profissional (Auditrio) e Estudante. O pblico da sala Profissional acompanhou palestras sobre: Segurana em aplicaes Web com o MVP e bom baiano Ramon Dures, Padronizao em projetos com o MVP e RD Mauro SantAna, Silverlight com Bruno e Roberto Sonino, Novidades do Visual Studio Orcas e Framework 3.5 com o MVP Alexandre Tarifa e desenvolvimento de games com XNA com o MVP Emerson Facunte. J nas sesses de estudante, o pblico acompanhou as seguintes palestras: SQL Server 2005 com Diego Nogare, Mercado de trabalho com Rodrigo Strauss, Windows Workflow Foundation com o MVP Thiago Cruz e uma repetio da palestra de SQL Server 2005 com Diego Nogare. Todas as sesses foram acompanhadas por um pblico muito intenso e a lotao do auditrio e da sala permaneceram durante todo o evento. Para a participao no evento, o pblico opcionalmente doava 1 Kg de alimento no perecvel, porm a adoo a causa nobre foi muito grande e tivemos aproximadamente 500 Kg de alimentos arrecadados, uma ao fantstica que orgulha muito a todos que participaram e arrancaram aplausos calorosos no final do evento. No final do evento foi apresentado o lanamento da revista Codificando e-Magazine e sorteio de muitos brindes, com um pblico que saiu do evento muito satisfeito com o contedo apresentado. O Codificando .Net agradece a presena marcante de pblico e aos patrocinadores: Microsoft, MSDN e os apoiadores: Linha de Cdigo, UNIP, Treinando .Net, Comunidade .Net Raptors, INETA e revista .Net Magazine.

Mais um grande evento que mostra o fora da comunidade em So Paulo.

Fotos do evento

PGINA

24

Cobertura: Final Imagine Cup 2007

No poderia ser diferente, uma final emocionante com disputas acirradas entre os finalistas, onde apenas uma equipe representar o Brasil na final mundial do torneio na categoria Software Design em agosto deste ano na Coria do Sul. A grande vencedora deste ano na etapa Brasil a Pernambucana Oysterix SD, composta pelos estudantes Diogo Nascimento, Murilo Pontes, Raquel Almeida e Thiago Teixeira, da Universidade de Pernambuco e do Instituto Tecnolgico de Aeronutica (ITA). Um fato curioso que Pernambuco emplacou cinco equipes na finalssima da etapa Brasil. Tal fato gerou uma certa polmica, no entanto muitos puderam observar a excelncia dos trabalhos realizados e perceberam que nada era por acaso, ou simplesmente favorecimento, e sim jovens que estudam em universidades modelos, como o caso da Universidade de Pernambuco, uma fbrica de jovens talentos, produzidos com muito suor e samba, ou melhor frevo! A equipe desenvolveu o projeto KnowTouch, um dispositivo mvel para leitura em Braille. O projeto utiliza pinos eletromecnicos que so moldados com os smbolos do alfabeto em Braille conforme as palavras da obra, recebidas por rdio freqncia de um servidor que armazena os livros eletrnicos.

Equipe Oysterix SD Campe da Etapa Brasil Com uma diferena de apenas 0,04 pontos da 1a colocada, a equipe Trivent Dreams, composta por Andr Furtado, Carlos Rodrigues, Ivan Cardim e Roberto Soninno (Poli/USP); levou o 2 o lugar com o projeto e-du. Uma plataforma que tem como objetivo permitir alfabetizao digital em massa por meio de experincias de aprendizado mveis, digitais, customizadas, de alta interatividade e automao. composto por um assistente pessoal para alunos e ferramentas de criao e consolidao de contedo para professores.

Equipe Trivent Dreams segunda colocada

PGINA

25

Cobertura: Final Imagine Cup 2007

A terceira colocada, a equipe Paulista Guarini composta por Guilherme Paes Molina e Bruno Peinado Brusco - Centro Universitrio Salesiano, Leandro Ferreira de Andrade - FAC II e Richard Araujo Macena Bezerra - FATEC-AM, todos ex-Alunos Monitores, e atuais Microsoft Student Partners criou o projeto Mosaico, uma soluo com alta tecnologia que permite melhorar o processo de avaliao dos alunos por meio de parmetros curriculares do Ministrio da Educao (MEC) e das prprias escolas. A idia simples e inova a maneira da avaliao da educao. No programa, cada habilidade adquirida pelo aluno representa um pedao que ir compor um mosaico final - que, por sua vez, compara o desempenho do aluno com os parmetros do MEC e da escola.

Quadro de classificao da final


Colocao

Equipe Oysterix Trivent Dreams Guarini Dominus Commit Solutions Stepping Stone SSL Fast

Pontos 8,8958 8,8542 8,6146 8,4792 8,4167 8,2604 7,7917 7,7604

1o 2 3 4 5 6 7 8
o o o o o o o

Como voc pde observar no quadro da classificao final, a diferena entre o primeiro colocado e o ltimo foi de apenas 1,14 pontos, o que prova a forte disputa, alm de um bom nvel tcnico. A amizade entre os integrantes das equipes finalistas sem dvida marcou este torneio, onde muitos trocaram idias e ideais, alm de muita descontrao numa inusitada prova de kart.

Equipes finalistas aqui todos so vencedores A cerimnia da entrega dos prmios aconteceu no Auditrio do Hilton apresentada pelo irreverente Marcos Mion que de certa forma tirou um pouco a tenso dos finalistas com suas pseudo-piadas.

Kartdromo Uma irreverente disputa antes da finalissma

Marcos Mion apresentando a final do Imagine Cup 2007


Parabns a todos os participantes do torneio e que o Brasil conquiste a final na Coria com o excelente trabalho da equipe Pernambucana

Oysterix SD.

PGINA

26

.Close()
A coluna .Close() tem como objetivo encerrar as edies da Codificando e-Magazine com dicas sobre desenvolvimento .Net em geral, falando desde recursos de linguagens at opinies do dia-a-dia do desenvolvimento de projetos. Para iniciar vou falar um pouco sobre o Visual Basic 9.0, verso que ser lanada no final do ano junto ao Framework (FX) 3.5 e ao Visual Studio Orcas. O Visual Basic sem dvida uma linguagem que sobre um preconceito muito forte de muitas pessoas principalmente no Brasil, mas que vem acompanhando com grande estilo a evoluo da plataforma .Net. Apesar de todo esse preconceito, ainda uma linguagem muito popular, produtiva e se bem utilizada, uma excelente linguagem. Todos os recursos do .Net Framework so cobertos/suportados pela linguagem. Lembrando que na opinio deste autor, o desenvolvedor .Net deve ser capaz de desenvolver em qualquer das duas linguagens da Microsoft: VB.Net e C#. Uma das principais novidades o to esperado LINQ, que so extenses da linguagem que oferecem suporte a consulta de dados em diversos formatos: XML, Banco de Dados, colees genricas, entidades, objetos, etc... Enfim, qualquer coleo que implementar a interface IEnumerable assim como IQueryable. A muito tempo a comunidade pedia a Microsoft alguma soluo para O/R (Object Relational) e finalmente temos uma tecnologia; Os times de VB.Net e C# apostam muito no LINQ e tem feito esforos grandes para liberar muito material para a comunidade. Para quem trabalha com aplicaes de banco de dados, a produtividade aumenta muito, j que o mapeamento do banco de dados feito pelo diagrama O/R do Visual Studio Orcas agiliza o processo de levantamento de entidades, e o LINQ j faz o trabalho da manipulao do banco de dados. A tabela abaixo, mostra uma comparao/mapeamento entre LINQ e Banco de Dados.

... o desenvolvedor .Net deve ser capaz de desenvolver em qualquer das duas linguagens da Microsoft: VB.Net e C#.

Simplificar ainda mais a sintaxe outro assunto forte na nova verso, O time do Visual Basic .Net criou novas formas de escrever alguns cdigos que estamos acostumados a muito tempo porm que claramente organiza/agiliza/dinamiza a leitura. Nas prximas colunas vamos poder ver cada uma dessas novidades. At l.

Alexandre Tarifa MVP Visual Developer Visual Basic .Net, bacharel/ps graduado em Cincia da Computao, trabalha em diversos projetos .Net ignorando a muito tempo a discusso entre VB.Net e C# gastando seu tempo com outros assuntos importantes. VB.Net ou C#? Tanto faz... o cliente que manda :) Especialista .Net e Lder de Projetos na ITGROUP (www.itgroup.com.br), editor da revista Codificando e-Magazine e fantico torcedor do So Paulo Futebol Clube. Blog: www.vstsrocks.com.br/alexandretarifa

Você também pode gostar