Vous êtes sur la page 1sur 26

Edição especial de lançamento

#0
 360 SPARTA
N U MER O 0 ANO I

 COLUNA DE QUALIDADE

 BIZT ALK . ING

Codificando Net
e-magazine
Colunas
● BizTalk.ing

● 360 Sparta

● Qualidade

● Acadêmico

● Point2Share

● .Close()

Comunidade
> Entrevista com Leonardo ● Codificando .Net
Tolomelli (MVP Lead) ● Destaque do mês

● Eventos
> Artigo Know Types no WCF -
Israel Aéce

WWW.CODIFICANDOMAGAZINE.NET
POWERED BY

Codificando Net
e-magazine
CODIFICANDO.NET

NESTA
J U N H O 2 0 0 7
EDIÇÃO E D I Ç Ã O 0 A N O I

Editorial
Entrevista 3

Coluna: XNA 5
Sparta

Coluna: 6
BizTalk.ing É com muito prazer que a comunidade Codificando .Net anuncia a Codificando .Net e-Magazine, uma
revista eletrônica mensal com um objetivo claro: ajudar a compartilhar conhecimento para a comunidade!
Coluna de 8
Aliás, este sempre foi o grande objetivo desta comunidade. Por enquanto uma revista eletrônica, mas
Qualidade
quem sabe, dependendo dos resultados da adoção/recepção/colaboração da comunidade não
Coluna 10 conseguiremos evoluir para uma revista impressa? Seria sonhar demais?
Pont2Share

Coluna: Mundo 13 O formato da revista será bem alegre e informal, oferecendo uma leitura agradável e rápida. Acredito que
Acadêmico nas próximas edições teremos uma grande evolução da qualidade visual e no conteúdo.

Artigo: Know 15 O conteúdo da revista será baseado em colunas, entrevistas, opiniões, reportagens e previews, já que
Types no WCF temos muitos outros meios focados em artigos técnicos. A publicação é totalmente aberta a comunidade,
quem quiser participar, envie um email para editor@codificandomagazine.net.
Download do 18
Mês Nesta edição de lançamento contamos a presença de ilustres colunistas: Emerson Facunte, Feio Tomaz,
Eduardo Gomes, Maurício Wieler, Hélio Sá e Israel Aéce. Foram convidados pessoas de destaque na
Blog do Mês 19
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
Dicas 20 membros da comunidade com a vontade de compartilhar também. Agradecemos também Leonardo
Tolomelli que fala sobre o programa MVP, comunidade e até Formula 1.

Codifando .Net 21
Acompanhe as sessões de destaques e coberturas de evento e fique
ligado o que acontece na comunidade nacional.
Evento: Codifi- 23 Equipe
cando 2007
Estamos totalmente abertos para opiniões, críticas, contribuições, etc.
Final da Imagine 24 Editor:
Uma boa leitura a todos
Cup Brasil 2007 Alexandre Tarifa
Co-Editores:
Coluna: 25 Alexandre Tarifa Andrey Sanches
.Close()
Editor@codificandomagazine.net Emerson Facunte
Colaboradores:
Hélio Sá Moreira
Feio Tomaz
Eduardo Gomes
Maurício Wieler
Israel Aéce
PÁGINA 3
Entrevista - MVP Lead Leonardo Tolomelli
Leonardo Tolomelli é MVP Lead na Microsoft, responsável pelo programa no Brasil e Cone-
Sul, ele nos ofereceu gentilmente uma entrevista falando sobre o programa MVP no Brasil,
comunidade e sua paixão por Fórmula 1. Acompanhe a primeira entrevista da Codificando e-
Magazine.

Olá Leonardo Tolomelli, obrigado por sobre o uso diário dos produtos e para validação de
participar da primeira edição da futuras versões do produto. Neste caso do MVPs
Codificando .Net e-Maganine. O que é funcionam como conselheiros dos times de produto e
exatamente o programa MVP (Most representam a voz da comunidade.
Valuable Professional) da Microsoft? Muitas pessoas confundem o programa MVP
Leo: O programa MVP, ou Most Valuable com alguma certificação ou prova da
Professional (Profissional Mais Valorado numa Microsoft, existe alguma relação entre os
tradução direta) é a forma que a Microsoft programas?
encontrou para agradecer os profissionais que Leo: São dois programas distintos e não há relação
de maneira voluntária compartilham seu entre eles. Para ser um profissional certificado
profundo conhecimento técnico de produtos Microsoft é necessário estudar profundamente um
e tecnologias Microsoft com outros membros produto, realizar o exame específico e obter a nota
da comunidade. O programa é um mínima. Para o programa MVP, existe um número
reconhecimento por esta iniciativa de bastante limitado de “vagas” (hoje, por exemplo, são
colaborar ajudando outros a melhor utilizar 72 os MVPs no Brasil) e para fazer parte é necessário
estes produtos e tecnologias. É um programa ser selecionado a partir de sua ativa participação na
técnico, e o título está sempre associado a comunidade através de contribuições voluntárias.
uma competência técnica específica (por
exemplo, MVP de Windows Server –
Networking ou Visual Developer – Visual Como você visualiza a importância da
Basic) comunidade para evolução dos produtos da
Microsoft?
“ O Brasil é um .
Leo: Cada dia mais as equipes de desenvolvimento
Qual o critério de seleção da Microsoft estão se dando conta da importância de ter contato
fenômeno a parte
para escolha destes profissionais? com a comunidade que utiliza o produto no dia a dia
quando falamos Leo: Estamos interessados em pessoas que para entender o que realmente o mercado precisa.
tenham este espírito colaborativo e cujas Dentro da Microsoft hoje, praticamente todos os
de comunidade”
contribuições são realmente voluntárias e times possuem pessoas que tem por objetivo
realizadas naturalmente. São pessoas que se observar a comunidade e levar a palavra dos usuários
satisfazem através da ajuda que proporciona aos desenvolvedores. São estas pessoas por exemplo
aos membros da comunidade que faz parte. que tem fazem a ponte entres os MVPs e o time de
Para a seleção do programa levamos em produto.
consideração as contribuições realizadas à Acredito que o Visual Studio .NET foi um marco
comunidade nos últimos 12 meses. Entre estas neste ponto. Foi o primeiro produto da Microsoft a
contribuições esta a participação ativa em contar com um grande programa de beta aberto à
fóruns de discussão e newsgroups, publicação comunidade, que na época contou com mais de 3
de livros e artigos técnicos, participação ativa milhões de participantes. O Windows Vista já contou
em grupos de usuários, palestra em eventos com quase 5 milhões de participantes no programa
da indústria e muitas outras. Qualquer forma beta, avaliando e dando feedback sobre o
de compartilhamento de conhecimento desenvolvimento do produto. Isso será cada vez mais
realizado de maneira voluntária (que seja parte comum. com mais de 3 milhões de participantes. O
do seu trabalho remunerado), vale para o Windows Vista já contou com quase 5 milhões de
programa. participantes no programa beta, avaliando e dando
feedback sobre o desenvolvimento do produto. Isso
será cada vez mais comum.
Fale um pouco sobre o seu papel na
Microsoft em relação ao programa
MVP. As comunidades no Brasil vêm crescendo
Leo: Os MVPs são vistos pela Microsoft como muito nos últimos anos, qual a atual situação
especialistas na competência técnica do seu do país em relação aos países do Cone Sul e do
título, e desta forma os times de produto de mundo?
Redmond investem numa aproximação com Leo: O Brasil é um fenômeno a
os MVPs para colher feedback e sugestões parte quando falamos de
comunidade. O que eu percebo
comparando com Estados Unidos e outros países da
PÁGINA 4
Entrevista - MVP Lead Leonardo Tolomelli
por exemplo, é que existe uma preferência como podemos nos aproximar cada vez da
por algum tipo de comunidade. Nos EUA, por comunidade como um todo.
exemplo, a comunidade online através da
participação em fóruns e newsgroups é muito
grande. Na América Latina, o povo já prefere Leo Tolomelli, ficamos sabendo que você é fã
o contato pessoal e reuniões de grupos de de formula 1, na realidade gosta muito de
usuários ou eventos realizados pela Microsoft automobilismo em geral. Você acredita nos
são os preferidos. No Brasil os dois tipos de novos talentos nacionais? Conte-nos um
atividades têm uma forte participação. Os pouco da sua vivência sobre a paixão
fóruns são populares, como também os automobilística.
eventos presenciais, além das novidades como Leo: Bom, o que me atrai no automobilismo, e em
Blogs por exemplo. O brasileiro é bastante especial da Fórmula 1, é a união entre duas das
ativo e está sempre procurando uma forma de minhas paixões, automóveis e tecnologia. É muito
interagir. interessante observar não somente as corridas em si
(que são muito emocionantes por si só e já valem o
espetáculo), mas também toda a tecnologia
Você acredita que a participação em envolvida neste circo. As decisões que são tomadas,
comunidade ajuda no crescimento/ as tecnologias adotadas em busca daquele milésimo
reconhecimento profissional? de segundo a mais. É fascinante.
Leo: Sim, sem dúvidas. Existem diversos Com relação aos talentos nacionais, eu acredito que
motivos para participação em comunidades estamos vendo uma grande safra de pilotos
“O Brasil está bem
que variam desde querer aprender, brasileiros com futuro promissor nas categorias
maduro com compartilhar sua experiência ou simplesmente internacionais. Para quem me conhece bem sabe que
socializar. As comunidades oferecerem sou fã do Felipe Massa desde 2001 quando foi
relação às excelentes oportunidades para encontrar campeão da Fórmula 3000 e acredito que hoje está
outros profissionais (ou empresas) com muito maduro e colhendo os frutos do investimento
comunidades e
experiências e objetivos equivalentes aos seus, destes últimos anos. Se tudo der certo, será
uma comunidade o que normalmente gerar oportunidade de campeão do mundo. Mas o futuro será ainda
engajamento e até mesmo de negócios. Se melhor! Imaginem que em 1 ou 2 anos podemos ter
forte gera você não estiver lá, vai perder a oportunidade. novamente uma briga de Piquet e Senna na F1, agora
oportunidade de protagonizada por Nelsinho Piquet (filho do tri-
Voltando a falar sobre o programa MVP, campeão) e Bruno Senna (sobrinho do outro tri-
aprendizado para campeão). Outro nome que não podemos esquecer
qual o principal benefício que a MS
todos. Continuem oferece aos MVP´s e o que os MVP´s e que tem muito talento é o Lucas DiGrassi.
oferecem a MS de benefício? Escrevam este nome.
com o grande Mas o melhor de tudo é que no Brasil também as
Leo: Em minha opinião o maior benefício para
trabalho” os MVPs (vocês deveriam perguntar para eles coisas melhoraram muito. Basta dar uma olhada na
para confirmar) é o contato com o time de Stock Car, onde hoje correm 6 ou 7 ex-pilotos de
produto, que oferecer uma oportunidade F1, é muito expressivo.
única de trocar experiências, conhecer
melhores práticas e influenciar nas futuras Para finalizar, qual mensagem você deixa a
versões. Para a Microsoft, é a oportunidade de comunidade brasileira?
estar próximo a um grupo extremamente
influente em suas comunidades para ouvir seus Leo: O Brasil está bem maduro com relação às
desejos e feedback para incorporar em comunidades e uma comunidade forte gera
versões futuros do produto, além de entender oportunidade de aprendizado para todos.
Continuem com o grande trabalho.

Leonardo Tolomelli é MVP Lead no Brasil e Cone


Sul. Mantém o seu blog em: http://
mvplead.spaces.live.com.
PÁGINA 5

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


Salve nobres Spartanos!
Chegou a hora de você desenvolver seu próprio game, seja para a plataforma Windows ou para o fantástico XBOX 360.
Neste ano a Microsoft lançou a versão 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 código que você escreve para Windows Platform, serve para XBOX 360. Com algumas simples
adaptações 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 técnicas fantásticas encontradas nos códigos .
Hummm, se ainda acha tudo isso difícil, que tal dar uma olhadinha no código
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 aplicações e-
business, 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 país, membro-fundador do DUG-BR,
membro-fundador do VSTS Rocks Brasil, Lider do grupo
Codificando.Net, Arquiteto de Software da Saraiva.COM,
professor de Ciência da Computação da UNIP e de pós-
graduação em Engenharia de WebSites da UNICSUL-SP
PÁGINA 6
Coluna: BizTalk.ing
Ao ser convidado para integrar o time de colunistas (Enterprise Resource Planning).
dessa nova revista da comunidade Codificando .NET ERP é o termo usado pela indústria para um conjunto
fiquei bastante surpreso e ao mesmo tempo muito de atividades suportado por uma aplicação de
Biztalk.ing honrado. Afinal, integrar um time de colunistas tão múltiplos módulos. Normalmente um sistema ERP usa
brilhante como esse é, com certeza, uma grande honra. uma base de dados comum a todos os módulos,
Gostaria de dizer a você leitor, que será um imenso preferencialmente uma base de dados relacional.
prazer poder conversar com você nesse nosso encontro
mensal. Essa idéia funcionou bem por algum tempo, mas uma
constatação foi feita: era virtualmente impossível
Trabalho com BizTalk desde 2004, quando o produto foi desenvolver uma aplicação que resolvesse todos os
completamente modificado. A pergunta que mais ouvi em problemas de forma definitiva, para todas as
todo esse tempo foi: “O que é esse treco?”. E como empresas, de todos os diferentes setores produtivos
argumentos contrários a sua implantação sempre ouvi e comerciais. Constatou-se que, para a empresa A o
que: o BizTalk custa muito e não faz quase nada. módulo Fiscal não atendia plenamente, para a
Partindo da minha experiência, entendo que o objetivo empresa B o módulo de Folha de Pagamento era
dessa coluna de estréia deveria ser conversarmos um ineficiente e para a empresa C o Contas a Receber
pouco a respeito desse “treco”, que custa tão caro era inadequado.
(será?) e que, na verdade, quase ninguém sabe ao certo o A melhor solução para esses casos era comprar o
que faz. ERP que tivesse a maior quantidade de módulos
Com essa idéia em mente esse espaço foi batizado como “aproveitáveis” da empresa X e adquirir o módulo
BizTalk.ing. O jogo de palavras (ou trocadilho) é obvio. (ou aplicação) desejado da empresa Y. Ou ainda, se o
Traduzido “grosseiramente” seria algo como modelo da empresa fosse muito específico,
BizTalkando, que vem a ser o ato de BizTalkar. desenvolver a aplicação “em casa”, pela própria
Não sei ainda quem é você, leitor. Se é um biztalkero ou equipe de TI. Uma grande “colcha de retalhos”.
uma pessoa não familiarizada com o BizTalk. Se você for Além disso, com o passar do tempo, outras
um biztalkero de carteirinha, a coluna desse mês não necessidades surgiram. Empresas se viram “obrigadas”
deve trazer nenhuma novidade. Para você que não sabe o a: adquirirem aplicações de CRM, implementarem
que vem a ser o BizTalk, minha pergunta é: o que pode soluções de EDI, entre tantas outras necessidades,
ser interessante nesse produto que quase todo mundo já todas motivadas pela geração de resultados mais
ouviu falar, mas poucos conhecem? Por que o produto imediatos e alimentadas pela ininterrupta evolução
tem um nome tão estranho? Para respondermos essas tecnológica. A internet mudou, de forma radical, a
perguntas, seremos obrigados há retroceder alguns anos maneira como os negócios eram feitos. Tanto os
na historia. negócios entre as empresas (B2B – Business-to-
Há não muito tempo atrás, numa galáxia nada distante o business), quanto os realizados entre a empresa e o
homem inventou o computador e com ele os softwares. consumidor final (B2C – Business-to-Consumer). Mais
A princípio esses softwares eram “bastante simples” e se “retalhos” precisaram ser costurados na “colcha”.
propunham a resolver problemas objetivos. A capacidade Alguma coisa precisava ser feita para atender essa
de armazenamento dos dados desses softwares permitiu necessidade de integração e a primeira solução
que “eles” evoluíssem gradualmente para aplicações mais encontrada foi a carga de dados. O principio dessa
complexas. Estamos falando de aplicações já muito solução é simples: o relatório (ou o pedido do cliente,
conhecidas, tais como: Contas a Pagar e Receber, Folha no caso de um EDI), outrora impresso e digitado, era
de Pagamento, entre tantas outras. Esses softwares são exportado para um arquivo, num formato especifico e
chamados de especialistas. depois importado por outra aplicação respeitando os
Essas aplicações, individualmente, resolveram problemas formatos. O DTS (hoje chamado de Integration
isolados, mas tinham um grave problema: não Services no SQL 2005) é um excelente exemplo
compartilhavam as informações entre elas. Para que os desse método.
dados de um sistema fossem utilizados por outro uma Mesmo assim, sabemos que a necessidade dos
alternativa era imprimir um relatório com determinadas usuários evolui junto com a tecnologia. Em alguns
informações no software A e digitá-las no B. É um casos até mais rápido. Com o advento da internet e a
método que efetivamente funciona, porém é muito promessa de “toda informação disponível na hora que
trabalhoso e propenso a erros. Sem entrar em detalhes precisamos dela” a solução de carga de dados se
sobre as iniciativas que tentaram resolver esse problema, tornou inadequada, porque ela funciona de forma
até porque nem todas foram bem sucedidas, podemos “offline”, usando serviços agendados, realizados em
afirmar que o grande salto foi o nascimento dos sistemas horários específicos.
“integrados”. O ponto alto dessa idéia foi o ERP
PÁGINA 7
Coluna: BizTalk.ing
Nossos clientes não queriam apenas isso. Eles queriam mais. Eles Regras de negócio precisam ser codificadas. Controles de transação e registro
precisavam de interfaces cliente (de preferência WEB) que atendessem de logs precisam ser desenvolvidos. Os desenvolvedores precisam se
processos específicos, independente das aplicações, que atualizassem preocupar com muitas particularidades. Eles precisam integrar todas as
todas as bases de dados necessárias e disparassem todos os eventos que aplicações envolvidas no processo.
aquele processo específico necessitasse. Por definição, uma integração é o estabelecimento de comunicação entre duas
Vamos a um exemplo disso: imagine que nosso cliente tem uma força de ou mais entidades autônomas e independentes. Note que, pelo exemplo
vendas composta de vários vendedores. Cada vendedor atende uma área citado, esta integração não precisa ser necessariamente entre aplicações. Elas
delimitada e visita um numero X de cidades retirando os pedidos. Esse também podem envolver a figura humana.
vendedor não possui um dispositivo móvel que envia automaticamente os É nesse momento que o leitor deve estar se perguntando: “O que tudo isso
pedidos e sincronizam on-line todos os dados necessários. Na sexta-feira, tem a ver com o nome do produto ser BizTalk?”. A explicação é mais simples
ao chegar a sua casa, cansado e com saudades da família, o pobre coitado do que parece. Biz (uma diminuição da palavra business) significa negócio em
ainda precisa lançar os pedidos das vendas que fez e, ainda, o seu inglês. A tradução de Talk é conversar.
relatório de despesas. Ele não está na empresa e sim na sua casa. Qual
seria a melhor solução? Logicamente que, para ele, o melhor seria acessar A idéia da Microsoft (já no lançamento da primeira versão do produto em
uma página na internet onde ele pudesse lançar os pedidos e também o 2000) era aproveitar todos os padrões criados pelo mercado numa única
seu relatório de despesas. ferramenta. O objetivo dessa ferramenta é resolver problemas de integração
de aplicações de forma mais simples e fácil. Resumidamente falando, o BizTalk
Sabemos bem que os pedidos deveriam ser lançados no ERP que se é colocado entre as aplicações A e B possibilitando a “conversa” entre essas
encarrega de, automaticamente, “informar” todos os módulos envolvidos. aplicações. Isso pode ser feito apenas com a troca de mensagens entre as
A linha de produção saberá que existem itens a serem produzidos. Ou aplicações (messaging), ou implementando regras de negócio (orquestrações).
então alguns itens precisarão ser baixados do estoque e o módulo de Tudo isso de forma transacional, com registros de logs e capacidade de
logística deve providenciar para que os procedimentos internos de agregar inteligência ao ambiente, fazendo a análise dos dados que trafegam
despacho da mercadoria sejam disparados. Tudo isso, se possível, sem pelo BizTalk e disponibilizando uma base de BI para consultas gerenciais dos
intervenção humana. processos e geração de “relatórios analíticos”.
Todas as despesas do vendedor precisam ser informadas ao seu Hoje o BizTalk está em sua quarta evolução. A Microsoft prevê o lançamento
supervisor (ou, dependendo do workflow do processo, a várias outras da quinta versão, BizTalk 2006 – R2, para os próximos meses.
pessoas), que recebe um e-mail, aprova as despesas e o crédito conta do
vendedor é feito automaticamente. Acho que vocês perceberam que nosso assunto é bastante extenso e que idéia
hoje era conversar mais com os amigos que ainda não tem familiaridade com o
Se tivermos apenas um aplicativo integrado, e contarmos com todos os “mundo da integração”. Em nossos próximos encontros mensais pretendo
módulos necessários e esse aplicativo possuir uma interface WEB tratar, com mais profundidade, de todos os assuntos que, por enquanto, foram
“bacana” para atender esse processo, não teremos nenhum problema. apenas citados. Inclusive apontar quais são os outros produtos disponíveis no
Mas vimos que essa situação hipotética normalmente não é verdadeira. mercado que tem o mesmo foco do BizTalk e as devidas comparações entre
Lembra-se da “colcha de retalhos” citada anteriormente? eles.
É claro que o leitor atento dirá: “Temos as tecnologias necessárias para Acredito que, mais importante do que dominar um produto específico, é saber
isso. É só dispararmos as interfaces corretas que rodam por trás dessa o que ele se propõe a fazer e o conceito por trás dessa ferramenta. Mas para
“pagina” WEB que tudo ficara bem!” Temos SOAP, webservices, EAI, que possamos evoluir e discutirmos sobre os assuntos que sejam do seu
BPA, BPM, SOA, EDI e tantos outros termos e padrões para aplicar. interesse preciso de sua ajuda. Preciso que vocês me escrevam, perguntem,
Certo? Essa afirmação é quase correta. Realmente temos todos os acusem. Somente com a sua participação poderei adequar o assunto do mês
padrões e tecnologias a nossa disposição. com a necessidade de vocês.
Todos os problemas descritos até agora são bastante comuns. Creio que Recentemente fui convidado a participar de um blog compartilhado com
qualquer desenvolvedor, com algum tempo de experiência na área, já outros biztalkeros. É o BizTalk Brasil. Dúvidas técnicas que forem
tenha vivido alguma experiência parecida. O mercado percebeu isso e encaminhadas e que sejam de interesse geral serão respondidas como artigos
procurou resolver esses problemas com iniciativas de padronização de lá. O endereço é HTTP://biztalkbrasil.blogspot.com.
interfaces de comunicação. Toda padronização é benéfica e facilita nossa
Espero que o assunto tenha despertado o interesse de quem não sabia nada
vida.
sobre o assunto e que os biztalkeros de plantão encham minha caixa postal
O único porem é que são apenas padrões e por si só não resolvem o com todas as duvidas que quiserem.
problema. Esses padrões precisam ser implementados. Os programadores
Até a próxima !!!
precisam “arregaçar as mangas” e escrever as linhas de código que,
fazendo uso desses padrões, coloquem as aplicações para conversarem.

Feio Tomaz (feiotomaz@codificandomagazine.net) é tecnólogo em Processamento de Dados, formado pela Fatec-Americana. MCTS em
BizTalk Server 2006, trabalha desde 2004 como consultor especialista em Desenvolvimento de Processos de Negócio e Soluções de Integração.
Atualmente é consultor da ITGROUP. Trabalha há tanto tempo na área que nem consegue mais se lembrar.....
PÁGINA 8
Coluna: Coluna de Qualidade
É um prazer escrever esta coluna sobre um assunto não muito explorado como qualidade de software. Talvez eu possa
dar a minha humilde contribuição, e estimular o debate sobre o assunto. Gostaria de fazer uma experiência, leia o texto
abaixo:
“Nenhuma cena da pré-história é tão vívida como a luta de grandes monstros sobre um poço de piche. Em nossa imaginação
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 é tão forte ou habilidoso que não acabe afundando.
A programação de grandes sistemas na última década tem sido este poço de piche, e grandes e poderosos monstros foram vencidos
violentamente. Alguns sistemas que funcionam surgiram – destes muitos poucos atenderam requisitos, planejamento e orçamento...”
Qualidade
Quando você imagina que o texto foi escrito?
Pois bem, o texto é de 1975, faz parte do primeiro ensaio do clássico obrigatório da nossa área: The Mythical Man Month.
E se este texto se mantém atual precisamos refletir sobre o que continua dando errado, afinal, nós temos ferramentas
mais produtivas, maior acesso a informação, metodologias mais maduras, etc. Mas mesmo com a evolução de todos os
aspectos do desenvolvimento de sistemas nos últimos trinta anos, ainda estamos desenvolvendo os mesmos monstros
que lutam para se salvar do poço de piche.
Talvez seja o momento para fazer um meaculpa. Nós desenvolvedores “Microsoft” sempre nos orgulhamos de sermos os
mais produtivos, os únicos que cumprem as necessidades de uma inteligência de negócio sempre mutante, que algo que
um desenvolvedor Java levaria um mês, 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 rápido, deixemos o Java com o IDE Eclipse e suas dezenas de plug-ins. E neste meio tempo
enquanto nós, desenvolvedores “Microsoft” melhorávamos a nossa produtividade, eles evoluíram em diversas técnicas de
qualidade de software como automação de testes, refactoring de código, design patterns, software factories, processo de
integração contínua e muitas outras frentes.
Não me entenda mal, os projetos Java criam os seus próprios “monstros no poço de piche”, o que eu acredito é que nós
podemos tirar vantagem de toda a experiência de projetos de código aberto e incorporar algumas idéias no nosso
processo de desenvolvimento.
O primeiro conceito que eu gostaria de explorar é: aplicações devem ser projetadas para testes e manutenção.
Apesar da maioria das aplicações se reduzirem a um punhado de arquivos binários e um banco de dados, elas precisam
ser consideradas um bem, um ativo da empresa e, desse modo, nós desenvolvedores precisamos criá-las com a premissa
de que alterar ou trocar uma solução é algo que requer esforço e dinheiro. Essa mentalidade de construir uma solução
para durar pode parecer simples, mas é um compromisso que se inicia na venda e que não tem fim. É o “vender bem”,
“projetar bem”, “testar bem”, “distribuir bem”, “entregar bem”, etc.
Uma das soluções para alcançar este objetivo é projetar a solução para ser testada. Um conjunto de testes automatizados
não tem preço para uma solução:

Desencoraja o desenvolvedor a criar métodos imensos ou classes que misturem responsabilidades já que este tipo
de código é muito difícil de testar

Garante uma manutenção segura uma vez que evita que pequenas alterações causem algum problema sem que seja
notado, já que um teste automático que falhe é notado mais rapidamente que executar um teste manual

Serve como uma documentação viva da solução já que um conjunto de testes contém mais detalhes sobre um
requisito da aplicação do que qualquer documento possa possuir
PÁGINA 9
Coluna: Coluna de Qualidade
Outro ponto de vista sobre o conceito que eu citei é a manutenção do software, uma atividade considerada um pouco
marginal pelos desenvolvedores.

A verdade é que a manutenção é tão desprezada porque ninguém gosta de lidar com código excessivamente complexo e
desorganizado. Se uma equipe de manutenção pudesse recusar uma aplicação nestas condições ela o faria, pois uma
aplicação que é engessada e dificulta o acoplamento de novas funcionalidades é a frustração de qualquer projeto de
manutenção.
Qualidade
Por outro lado, se você trabalha na primeira versão de um aplicativo, pense nas vantagens de criar um código amigável
para manutenção. Quando isto acontece você não fica preso com a propriedade do código e pode partir para o próximo
projeto mais rapidamente. Além disso, é péssimo para a sua reputação um código que fica órfão e não evolui com o
tempo, já que indica que você não teve a habilidade ou o cuidado de prepará-lo para durar e não ser jogado fora depois
de algum tempo.

Como toda idéia que reside no senso comum seria muito ingênuo achar que estas sugestões poderiam ser aplicadas em
qualquer cenário. É claro que devemos criar as nossas aplicações mais testáveis e simples de dar manutenção. No entanto
se imaginarmos situações como utilizar uma tecnologia muito inovadora que possa dar uma vantagem competitiva para a
solução, por exemplo, utilizar o Microsoft Silverlight para prover uma experiência rica para um site, talvez precisaremos
fazer algo rápido e sujo, ou não poderemos explorar a tecnologia. Ainda assim, esse tipo de cenário deve sempre ser
isolado de outras partes da solução para garantir a saúde do código em longo prazo.

Enfim, espero que estes conceitos façam parte da sua realidade, se isto for verdade a chance de suas aplicações 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 soluções. Talvez você não tenha o poder de decidir como as coisas são feitas em sua empresa, mas
é o seu papel mostrar os benefícios de se passar de um processo de manufatura de código para algo realmente
profissional. O meu objetivo nesta coluna é dar a minha pequena contribuição para ajudar-lhe nesta tarefa.
Lembre-se, a solução na qual você está trabalhando é um bem da empresa que precisa durar.

Eduardo Mendonça Gomes (edugomes@codificandomagazine.net)


é consultor de tecnologias Microsoft e de qualidade de software na
ITGROUP. Você pode encontrar outras informações sobre qualidade e
notícias sobre desenvolvimento em seu blog em http://
edumgomes.blogspot.com/
PÁGINA 10
Coluna: Point2Share
É com grande entusiasmo que começo 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 tendência
pessoal e profissional a abordar a área Information Worker.
Point2Share
Tecnicamente, podem esperar nesse nosso espaço muita coisa sobre desenvolvimento com base na plataforma de
produtos e serviços do Office System – que atualmente é composto por basicamente 3 áreas de atuação. São 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: Contém basicamente os produtos da linha Windows Server System com foco em produtividade,
integração e organização de informações no âmbito corporativo. Neste cenário podemos incluir as Office Sharepoint
Server 2007, Office Communications Server 2007, Project Server 2007 e outros mais...
Serviços: Uma das grandes novidades, esta área contempla basicamente a presença do Office Online e do Office
Live. O primeiro, acessível através do endereço http://office.microsoft.com, trata-se de um grande centro de
informações sobre o Office System como um todo, incluindo desde documentações até exemplos e add-ins dos mais
diversos. Já o segundo, acessível através do endereço http://officelive.microsoft.com, tem como princípio a
disponibilização de pacotes de serviços online – que podem incluir desde um domínio próprio e espaço ao seu web
site até contas de e-mail acessíveis via dispositivos móveis – passando por espaços de colaboração online (troca de
arquivos por exemplo) e ferramentas de auxílio ao gerenciamento de projetos.

Aqui já vai uma dica, atualmente o Office Live possui 3 pacotes de serviços evolutivos – o Office Live Basics, Office Live
Essentials e Office Live Premium – sendo o primeiro deles inteiramente gratuito () e os outros com períodos de
avaliação de 30 dias.

Veja abaixo a Figura 1, representando toda abrangência do Office System.

Ou seja, temos muito assunto para tratar sobre o desenvolvimento com base ou integração com todos estes produtos –
com certeza passaremos por VSTO – Visual Studio Tools for Office, Desenvolvimento Office System, OpenXML,
Formulários Eletrônicos com base no Office InfoPath, customização das tecnologias Sharepoint, OBA - Office Business
Applications e muito, mas muito mais mesmo.
Abordaremos também tópicos não-técnicos, ou seja, podemos conversar de forma bastante extensa sobre necessidades
corporativas, focos de integração, produtividade e outros pontos que nos assombram durante o dia-a-dia de trabalho.
Pensem nestes pontos como os possíveis motivadores para o desenvolvimento de alguma aplicação ou customização – ou
seja – nossas necessidades diárias que fomentam o desenvolvimento de soluções.
Como temos um mundo de assuntos para conversar, gostaria de aproveitar este nosso primeiro encontro já para
apresentar novidades com relação a um dos produtos que mais gosto e trabalho, sendo um dos meus prediletos
atualmente, o Sharepoint. Let's rock ....
PÁGINA 11
Coluna: Point2Share
Quando começamos a falar em Sharepoint, surjem automaticamente e invariavelmente diversas dúvidas e
questionamentos sobre o mesmo – algo perfeitamente normal – mas são sempre os mesmos. São eles:
Point2Share
1. “O que é esse tal de Sharepoint?”
2. “Por que devo utilizar o (esse tal de) Sharepoint?”
3. “Quais as diferenças entre o WSS e o MOSS?” (Prometo esclarecer a sopa de letrinhas alguns
parágrafos abaixo)

Se ao final desta coluna conseguirmos responder claramente estas 3 dúvidas; eu confesso a vocês que ficarei imensamente
realizado – pois estas respostas e esclarecimentos são primordiais para que possamos visualizar os benefícios do
Sharepoint e conseqüentemente vislumbrar os possíveis cenários de utilização e implantação.

Seguindo o direcionamento de assuntos e abordagens que detalhamos alguns tópicos acima, veremos agora algumas das
mais latentes necessidades corporativas – ou seja – vamos falar dos problemas atuais.

Colocando-me como usuário de um ambiente corporativo – e de seus respectivos serviços - qualquer (o que não deixa de
ser real ainda hoje para todos nós), enfrento particularmente os seguintes problemas durante a realização das minhas
atividades diárias:
Dificuldade em encontrar as informações corretas, uma vez que quanto maior o ambiente de trabalho maior
o volume de informações geradas – resultando conseqüentemente em grandes ilhas desconectadas e ingerenciáveis
de conteúdo. Pense sobre o seguinte cenário:
File Shares corporativos onde necessito trabalhar com 3, 4, 5 ou mais compartilhamentos de “fácil acesso”
– tal como brfscorp01, fpsserverlatam07 e outras variações bem interessantes;
E-mail´s – Exchange Server e mais 3 ou 4 arquivos locais (PST´s) somando aproximadamente meus 5 Gb´s
de e-mail;
HD local – Onde diariamente me confundo com minhas próprias tentativas de organizar arquivos
localmente, afinal, são tentadores os 80, 120 ou 160 Gb´s locais;

Conclusão: A informação que procuro esta com certeza armazenada em algum destes muitos repositórios.
Posso não perceber, mas gasto diariamente muito e muito tempo procurando esta informação. Ou seja, o
tempo desprendido na procura, e não efetivamente em produtividade e geração de conhecimento/negócios, é
muito grande.

Dificuldade em ser produtivo, uma vez que cada repositório de informações contém seu próprio mecanismo de
indexação e busca de informações. Produtividade muitas vezes não esta relacionada somente à rapidez com que você
responde as necessidades corporativas, mas vale também considerar a confiabilidade de tal trabalho; ou seja, outro
ponto importante é que com toda esta confusão fica realmente difícil acreditar e garantir a confiabilidade das
informações utilizadas neste exato momento. Quer um exemplo clássico? Então responda com certeza o seguinte
questionamento:

“Você tem certeza de que esta é a última versão deste documento (ou informação)?”

Conclusão: Achar a informação correta e confiável em um período pequeno – para ser produtivo – é essencial em nosso
dia-a-dia.
PÁGINA 12
Coluna: Point2Share
Gostaria de compartilhar alguns outros estudos com vocês – de entidades internacionais – com relação a estes pontos.

“Employees get 50%-75% of their relevant information directly from other people. “
Point2Share
“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 vocês estejam se questionando: “É .... acho que precisamos nos organizar, e organizar
consequentemente nossas informações!” Agora vamos lá, respostas rápidas e fáceis às nossas principais perguntas:
1. “O que é esse tal de Sharepoint?” – Uma plataforma tecnológica com foco e direcionamento à gestão de
informações corporativas; facilitando consequentemente a organização, centralização, gerenciamento e segurança,
proporcionando maior produtividade à medida que as informações tornan-se consistentes, seguras, confiáveis e
principalmente visíveis. De forma evolutiva, o Sharepoint pode também ser utilizado como uma plataforma de
gerenciamento de processos corporativos – afinal, processos compõe e são compostos por Informações!
2. “Por que devo utilizar o (esse tal de) Sharepoint?” – Porque sua infra-estrutura de serviços proporciona de
forma rápida, eficiente e segura um alto nível de controle das informações - sendo base de processos colaborativos
onde a transferência e organização de conhecimentos torna-se primordial para a evolução contínua e igualitária de
todos os seus consumidores. O alto nível de integração com as ferramentas do Office System proporcionam níveis
cada vez mais altos de produtividade, assim como sua interface de usuário baseada no ambiente Web traz uma ótima
usabilidade. Ou seja, o Sharepoint pode ser interessante porque ele nos ajuda tecnologicamente a organizar nosso
imenso espaço de dados, informações e conhecimentos corporativos dispersos.
3. “Quais as diferenças entre o WSS e o MOSS?” – Eu costumo dizer que o Sharepoint esta disponível em 2
sabores diferentes – ou seja – em 2 versões distintas.
A sigla WSS significa Windows Sharepoint Services – não pode ser caracterizado efetivamente como um produto,
mas sim como uma tecnologia. Fica mais fácil com isso entender que o WSS é uma parte integrante do sistema
operacional Windows Server 2003 e, como parte integrante, não requer licenciamento adicional. Isso mesmo (alguns
custam a acreditar nesta informação), se você já usa o Windows Server 2003, Parabéns, 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 referência 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 serviços
(entenderam por que o WSS ser caracterizado como uma tecnologia?) – extendendo os recursos básicos e
implementando uma série de funcionalidades e características como foco em necessidades corporativas. Como
qualquer produto, o MOSS requer licenciamento para ser utilizado.
Ou seja, o WSS implementa os recursos básicos da plataforma de colaboração e gerenciamento de informações,
sendo o MOSS um produto muito mais extenso do ponto de vista de funcionalidades e recursos tanto para usuário,
como para desenvolvedores e administradores.
Mas não se engane, o WSS mesmo sendo uma tecnologia, pode se tornar uma grande e real plataforma corporativa.
Por questão de espaço, para visualizar com mais detalhes quais recursos são 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 próximos meses falaremos mais das funcionalidades em si – sempre abordando diferenças de
comportamento ou funcionalidade entre, por exemplo, o WSS e o MOSS. Espero vê-los por aqui em nossas próximas
edições, onde tentarei evoluir um pouco mais sobre esta primeira abordagem de Sharepoint, cenários de implantação e
muito mais.

Hélio Sá Moreira (helio@codificandomagazine.net) é Microsoft MVP (Most Valuable Professional) em Office Share-
point Server 2007, especialista em arquitetura e implementação de soluções corporativas com atuação direta nas maiores e
mais importantes empresas nacionais. Entusiasta da plataforma de IW - Information Worker com abrangência 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 também 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...
PÁGINA 13
Coluna: No Stress… Think .Net
É com muito prazer que irei escrever neste espaço sobre assuntos e atividades acadêmicas relacionadas às
tecnologias Microsoft, dando ênfase especial ao .NET.
Queria em particular relatar a experiência deste ano, a respeito da Imagine Cup 2007, que tem como tema a
Mundo Acadêmico Educação. Tive o prazer de ser juiz nas fases Semifinal e Final e perceber o quão engajados estão os alunos e quão
interessantes e criativos foram os trabalhos apresentados nas rodadas citadas.
Aproveito este espaço para incentivá-los a participarem na competição, que agora se encaminha à fase da Final
Mundial, na Coréia do Sul. São diversas categorias, que cito abaixo:

Soluções 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 inscrições serão 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: Meio-
Ambiente.

Participem, ousem, tentem, estudem, reúnam-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. Não é apenas o prêmio físico, de poder viajar à França (local da final mundial da Imagine Cup
2008), mas também representar a sua Universidade, trabalhar em grupo, fazer um belo networking e mostrar ao
mundo a sua capacidade.

Vocês têm a faca, o queijo nas mãos e a criatividade própria de nós, brasileiros, para brilharem e mostrarem do que
são capazes.

Saudações DotNetianas a todos!


Mauricio Wieler Orellana
mauricioow@gmail.com

Mauricio Wieler Orellana - Bacharel em Ciências


da Computação, Mestrando em Ciências da
Computação na USP, MCSD em Visual Studio 6,
MCP em C#, atua no mercado Informática há 14
anos e é professor da Universidade Paulista (UNIP),
Universidade Salesiana de São Paulo (UNISAL) e
Faculdade Montessori, desde 2000. Foí
Coordenador Acadêmico da INETA Brasil.
PÁGINA 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. Além disso, um dos
grandes benefícios que temos com a orientação a objetos é a possibilidade de declararmos uma variável do tipo da classe base e atribuirmos a ela uma
instância de uma classe concreta e, da mesma forma, podemos ter uma função em que em seus parâmetros os seus tipos são especificados com o tipo da
classe base e, conseqüentemente, podemos também passar instâncias das classes derivadas.

Infelizmente não funciona da mesma forma quando falamos de serviços que são expostos a partir do WCF. Neste cenário, por padrão, você não pode usar
uma classe derivada ao invés de uma classe base. Sendo assim, se quisermos utilizar esta classe base publicamente (parâmetros e retorno de métodos),
precisamos nos atentar em algumas técnicas para permitir isso. Para exemplificar o problema, vamos analisar o código contrato abaixo:

C# VB.Net
using System; Imports System.ServiceModel
using System.ServiceModel;
<ServiceContract()> _
namespace DevMinds.Library Public Interface IGerenciadorDeContatos
{
[ServiceContract] <OperationContract()> _
public interface IGerenciadorDeContatos Sub AdicionarContato(p As Pessoa)
{
[OperationContract] <OperationContract()> _
void AdicionarContato(Pessoa p); Function RecuperaContatos() As Pessoa()

[OperationContract] End Interface


Pessoa[] RecuperaContatos();
}
}

E, além do contrato, temos a classe Pessoa que possui apenas uma propriedade do tipo string:
C# VB.Net
using System; Imports System
using System.ServiceModel; Imports System.ServiceModel
using System.Runtime.Serialization; Imports System.Runtime.Serialization

namespace DevMinds.Library Namespace DevMinds.Library


{ <DataContract>
[DataContract] Public Class Pessoa
public class Pessoa Private _nome As String
{
private string _nome; <DataMember>
Public Property Nome() As String
[DataMember] Get
public string Nome Return Me._nome
{ End Get
get Set (Value As String)
{ Me._nome = value
return this._nome; End Set
} End Property
set End Class
{ End Namespace
this._nome = value;
}
}
}
}

Supondo-se que o cliente defina uma classe chamada Fisica (de pessoa física) que herde diretamente da classe Pessoa e tente enviar a instância desta classe
para o método AdicionarContato. Apesar de compilar, você terá uma exceção quando o código for executado, pelo fato de que quando você passar a classe
Fisica ao invés de Pessoa o serviço não saberá como deserializar a "Pessoa" que é recebida. O mesmo vale para quando você tem uma coleção em seu
serviço de uma classe derivada e tenta retorná-la para o cliente, expondo através do retorno do método uma coleção de tipos base.
PÁGINA 16
Artigo: Know Tipes no WCF
Para suavizar este problema, o WCF introduziu um atributo chamado KnownType. Esse atributo recebe em seu construtor um Type, indicando à infra-
estrutura do WCF que existe uma classe derivada do tipo onde o atributo é aplicado e que ela também pode ser aceita. Quando você define este atributo
do lado do servidor, você permitirá que todos os contratos e operações que utilizem este tipo base possam aceitar o tipo especificado pelo atributo. O
exemplo abaixo ilustra como devemos proceder para utilizar o atributo KnownType:

C# VB.Net
[DataContract] Imports System
[KnownType(typeof(Fisica))] Imports System.ServiceModel
public class Pessoa Imports System.Runtime.Serialization
{
//Implementação <DataContract, KnownType(GetType(Fisica))> _
} Public Class Pessoa
'Implementação
[DataContract] End Class
public class Fisica : Pessoa
{ <DataContract>
//Implementação Public Class Fisica
} Inherits Pessoa

'Implementação
End Class

Uma vez aplicado este atributo, ele fará com que a classe derivada seja adicionada nos metadados do serviço e, conseqüentemente, o cliente terá a definição
da mesma, podendo passá-la para o serviço ao invés da classe base. Desta forma, podemos tranquilamente executar o código que antes do atributo era
impossível:

C# VB.Net
using (GerenciadorDeContatosClient proxy Using proxy As New GerenciadorDeContatosClient
= new GerenciadorDeContatosClient()) ()
{ Dim f As New Fisica()
Fisica f = new Fisica(); f.Nome = "Israel"
f.Nome = "Israel"; f.Cpf = "00000000000"
f.Cpf = "00000000000"; proxy.AdicionarContato(f)
proxy.AdicionarContato(f); End Using
}

Como disse anteriormente, o ponto negativo deste atributo é com relação ao escopo, pois ele permite que todos os locais onde aceite uma classe base,
aceitar um tipo derivado especificado no atributo. Se não quisermos isso, ou seja, se desejarmos habilitar este recurso somente para uma determinada
operação, um contrato ou um serviço, podemos utilizar o atributo ServiceKnowType, que pode ser aplicado a um método, Interface ou classe. Com isso, o
nosso código mudará ligeiramente, permitindo que somente um determinado método aceite instâncias da classe Fisica:

C# VB.Net
using System; Imports System
using System.ServiceModel; Imports System.ServiceModel
using System.Runtime.Serialization; Imports System.Runtime.Serialization

namespace DevMinds.Library <ServiceContract()> _


{ Public Interface IGerenciadorDeContatos
[ServiceContract]
public interface IGerenciadorDeContatos <OperationContract(), ServiceKnowType
{ (GetType(Fisica))> _
[OperationContract] Sub AdicionarContato(p As Pessoa)
[ServiceKnowType(typeof(Fisica))]
void AdicionarContato(Pessoa p); 'outros métodos

//outros métodos End Interface


}
}
PÁGINA 17
Artigo: Know Tipes no WCF
E ainda, se quiser permitir mais de uma classe derivada de um tipo base, então poderá adicionar múltiplos atributos (KnowType ou ServiceKnowType) para
satisfazer a todos os tipos que a operação poderá aceitar/retornar. O trecho de código abaixo ilustra múltiplos atributos para mais de um tipo derivado:

C# VB.Net
using System; Imports System
using System.ServiceModel; Imports System.ServiceModel
using System.Runtime.Serialization; Imports System.Runtime.Serialization

namespace DevMinds.Library <ServiceContract()> _


{ Public Interface IGerenciadorDeContatos
[ServiceContract]
public interface IGerenciadorDeContatos <OperationContract(), ServiceKnowType
{ (GetType(Fisica)), ServiceKnowType(GetType
[OperationContract] (Juridica))> _
[ServiceKnowType(typeof(Fisica))] Sub AdicionarContato(p As Pessoa)
[ServiceKnowType(typeof(Juridica))]
void AdicionarContato(Pessoa p); 'outros métodos

//outros métodos End Interface


}
}

Para finalizar, ainda temos um detalhe importante quando falamos de know types que é em relação à recompilação do código cliente ou do serviço 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 código,
recompilá-lo e redistribuí-lo. Para amenizar isso, o WCF permite-nos fazer essa configuração, ou melhor, adição de novos tipos, a partir do arquivo de
configuração, como é mostrado através do trecho de código abaixo:

*.config
<system.runtime.serialization>
<dataContractSerializer>
<declaredTypes>
<add type="DevMinds.Library.Pessoa, DevMinds.Library, Version=1.0.0.0, PublicKeyTo-
ken=null">
<knownType
type="DevMinds.Client.Juridica, DevMinds.Client, Version=1.0.0.0, PublicKeyTo-
ken=null"/>
</add>
</declaredTypes>
</dataContractSerializer>
</system.runtime.serialization>

Conclusão: Mais uma vez vimos através de uma pequena funcionalidade o quanto o WCF é flexível e permite de uma forma bem fácil e simples integrar o
código e seus tipos que são desenhados e executados no cliente com o código que temos no servidor.

Israel Aéce (Israel@projetando.net) -


Microsoft MVP, MCP, MCAD, MCTS e MCT.
Fundador do site Projetando.NET (http://
www.projetando.net). Atualmente atua como
desenvolvedor de aplicações .NET. Blog: http://
weblogs.pontonetpt.com/israelaece/.
PÁGINA 18
Destaques: Download do Mês
Todo mês temos alguma novidade para baixar da internet e para ninguém perder nenhum desses
downloads, vamos publicar mensalmente os principais downloads.

Download do Mês
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 versões em fase
beta. Evidente que como o produto é beta, alguns bugs devem ser encontrados, alias, esse é o objetivo
da Microsoft.
Algumas versões só podem ser baixadas por assinantes MSDN Subscribe, mas quem não é assinante
pode baixar tranqüilamente as versões Express.
O site para download é: http://msdn2.microsoft.com/en-us/vstudio/aa700831.aspx.

Veja parte do texto oficial “em inglês” 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 ISV’s, enterprises and Microsoft product teams are successfully building on the new
“Visual Studio features Windows Workflow Foundation (WF), Windows Communication Foundation (WCF),
Windows Presentation Foundation (WPF) and Windows CardSpace in the .NET Framework 3.0.
“Orcas” beta 1” 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 self-
extracting 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 versões Express: http://msdn2.microsoft.com/en-us/vstudio/aa700831.aspx


PÁGINA 19
Destaques: Blog do Mês
Os Blogs hoje são ferramentas essenciais para quem acompanha tecnologia, especificamente na área de
desenvolvimento, temos muitos blogs com informações pra lá de quentes sendo atualizados diariamente.
Muitos funcionários da Microsoft, membros da comunidade, especialistas, etc. formam uma gigante
comunidade on-line com notícias, dicas, artigos, etc. Vamos destacar em nossas edições dois blogs,
sendo um nacional e um internacional. Sempre analisando a qualidade dos posts e freqüência.

Blog Nacional
Israel Aéce é um grande destaque na comunidade com contribuições de artigos e fórum MSDN, seu blog
já é muito conhecido na comunidade nacional, sempre atualizado contando as experiências 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 são

ferramentas Blog Internacional


essenciais para

quem acompanha Rob Caron faz parte do time do produto VSTS na Microsoft em Redmound, com atualizações constantes
o blog é material essencial para quem acompanha o produto VSTS em todo mundo. Se quiser saber
tecnologia” tudo sobre lançamentos, versões, 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
referência de leitura por esse famoso blogger.

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


Dicas
PÁGINA 20

Hoje em dia temos uma quantidade gigantesca de materiais de estudo, porém um direcionamento sobre
esses materiais é sempre muito importante. Nesta edição vamos apontar bons materiais produzidos no
país.

Iniciantes em .Net
“Hoje em dia
Se você está iniciando seus estudos em .Net, no site http://www.facunte.com.br, encontramos materiais
temos uma utilizados em sala de aula, treinamentos, etc. pelo professor, palestrante, MVP, viciado em XBOX
Emerson Facunte. O material pode ser baixado gratuitamente no site.
quantidade

gigantesca de

materiais de
http://www.facunte.com.br
estudo, porém um

direcionamento XNA
sobre esses

materiais é sempre 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é
muito importante” Furtado, que é um dos grandes divulgadores da tecnologia no Brasil

http://www.sharpgames.net/Default.xna
Comunidade Codificando .Net
PÁGINA 21

A comunidade Codificando.Net surgiu em 2002, do mês, que é uma premiação dada ao membro
da idéia de agrupar um grande número de que participar mais ativamente da lista de
desenvolvedores, usuários e entusiastas da discussão.
tecnologia.NET para que os mesmos trocassem A comunidade Codificando.net possuí objetivos
experiências sobre modelos, meios e formas de claros e diretos:
desenvolvimento.
Levar o conhecimento adquirido e
Os principais meios de cooperação e interação
compartilhar as experiências;
técnica entre os membros da comunidade são:
Web Site, www.codificando.net, realização de Desenvolver cada vez mais o conhecimento
eventos presenciais, participação em palestras em sobre a tecnologia.NET;
universidades, artigos técnicos e fórum de Promover palestras, encontros e seminários
“Aprendizado, discussão através de lista de email.
sobre a tecnologia .NET;
A participação de todos é o que contribui para
companherismo, Agrupar os interessados em todo o Brasil;
uma melhor performance e conhecimento de
ensino e todos, pois a cada nova pergunta, a cada novo Solidificar e estimular o uso das linguagens da
artigo, passamos a encarar os problemas de uma plataforma por todos.
aprendizado forma clara e objetiva, deixando complicações e
Esses objetivos nos dá motivação para
frustrações de lado.
constante. continuarmos lutando para que cada vez mais,
Para essas pessoas que contribuem para o novas pessoas se interessem.
Assim se faz a perfeito funcionamento da comunidade, podemos,
por meio de parcerias, recompensá-las através de
nossa
reconhecimentos, como por exemplo, o destaque
comunidade.”

Divisões e equipe
O Codificando.Net foi fundado em 2002 no interior de São Paulo, em Campinas por Max Moussiman Neto. Nesta data foi
lançado o Site Oficial e a Lista de Discussão (email). Em apenas 2 meses a lista de discussão já contava com mais de 200
membros participantes. Vários 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 vídeos on-line, até então 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 divisão,
o São Paulo Codificando.Net. Liderado e Fundado por
Alexandre Tarifa e Marcus Garcia. O primeiro evento
do São Paulo Codificando .Net foi o Debate.Net, em
formato de mesa redonda e limitado a apenas 15
pessoas.
Após 3 anos de atuação, a equipe do Codificando está
dividida da seguinte forma:
Codificando .Net
Max Moussiman Neto – Líder e Fundador
São Paulo Codificando .Net 400 pessoas acompanham
Alexandre Tarifa – Líder / Andrey Sanches – Líder / Emerson Facunte – Líder palestra em evento do
Diego Nogare – Co-líder / David Pomarico – Co-líder Codificando.Net
Comunidade Codificando .Net
PÁGINA 22

O reconhecimento da comunidade foi reconhecido.


Codificando .Net vem acontecendo ao longo do DEPOIMENTOS
tempo, e em 3 anos de existência é sem dúvida
uma das maiores comunidades da plataforma .Net “O Codificando desde o início de suas atividades vem
no Brasil, e porque não dizer do Mundo?! demonstrando uma enorme seriedade junto a
Os líderes e membros são profissionais comunidade .NET. Essa seriedade aliada a um grande
reconhecidos no mercado e também compromisso que nos cativou de forma a mantermos
reconhecidos pela Microsoft e INETA no Brasil. uma parceria de sucesso durante todos esses anos.
Tenho certeza que esse trabalho à frente da
A Microsoft reconhece três dos líderes com o comunidade torna seu líderes altamente respeitados
título de MVP (Most Valuable Professional), um no mercado.”
reconhecimento aos esforços realizados na Marcio Elias – Diretor Executivo Linha de Código
Comunidade.
LÍDERES RECONHECIDOS “O Codificando.NET é sem dúvida o mais ativo grupo
COMO MVP: de usuários de tecnologia .NET em São Paulo e é uma
grande honra palestrar em seus eventos.”
Alexandre Tarifa: Visual Developer – Visual Basic/
Mauro Sant´ana – Microsoft Regional Director e
VB.Net
Microsoft MVP
Andrey Sanches: Visual Developer – Asp/Asp.Net
Emerson Facunte: Visual Developer – Asp/ “Quando conheci a turma do Codificando.NET pensei:
Asp.Net São uns jovens turbinados se divertindo com .NET.
A comunidade Codificando .Net também é Hoje vejo com grata surpresa que é muito mais que
reconhecida pela INETA, que é a isso. É um trabalho sério de profissionais que
International .Net Associassion, um órgão mundial efetivamente se comprometem com capacitar a
“ A Microsoft de comunidades. comunidade.”

reconhece três Hoje o INETA Brasil é liderada por Marcus Fábio Câmara – Microsoft MVP – VSTS
Garcia, que atuou como líder do São Paulo
dos líderes com o Codificando .Net e pelo grande trabalho realizado

título de MVP ”

Ação Social
O trabalho realizado junto a comunidade de Codificando.Net adotou nos
desenvolvedores já pode ser últimos eventos a arrecadação
considerado uma Ação Social, de alimentos e/ou brinquedos
Alimentos porém vivemos em um país que são doados a instituições
arrecada- onde existem milhares de de caridade. Já foram doados
pessoas com necessidades mais de 200 brinquedos e
dos em
diversas e acreditamos que aproximadamente uma
revento
qualquer ajuda mesmo que tonelada de alimentos.
pela comu- pequena pode significar a
nidade. alegria de algumas pessoas.
Pensando nisso o
Cobertura: Codificando 2007
PÁGINA 23

Foi realizado no dia 19/05/2007 no auditório do muito intenso e a lotação do auditório e da sala
campus Tatuapé da Universidade UNIP o evento permaneceram durante todo o evento.
Codificando 2007. Foi o primeiro evento do Para a participação no evento, o público
ano de 2007 da comunidade Codificando 2007, já opcionalmente doava 1 Kg de alimento não
começando a temporada com um evento perecível, porém a adoção a causa nobre foi
sensacional. Cerca de 500 pessoas assistiram muito grande e tivemos aproximadamente 500 Kg
palestras divididas em duas salas: Profissional de alimentos arrecadados, uma ação fantástica que
(Auditório) e Estudante. O público da sala orgulha muito a todos que participaram e
Profissional acompanhou palestras sobre: arrancaram aplausos calorosos no final do evento.
Segurança em aplicações Web com o MVP e bom No final do evento foi apresentado o lançamento
baiano Ramon Durães, Padronização em projetos da revista Codificando e-Magazine e sorteio de
com o MVP e RD Mauro Sant´Ana, Silverlight com muitos brindes, com um público que saiu do
Bruno e Roberto Sonino, Novidades do Visual evento muito satisfeito com o conteúdo
Studio “Orcas” e Framework 3.5 com o MVP apresentado.
“Mais um grande Alexandre Tarifa e desenvolvimento de games
com XNA com o MVP Emerson Facunte. Já nas O Codificando .Net agradece a presença
evento que sessões de estudante, o público acompanhou as marcante de público e aos patrocinadores:
seguintes palestras: SQL Server 2005 com Diego Microsoft, MSDN e os apoiadores: Linha de
mostra o força da Código, UNIP, Treinando .Net, Comunidade .Net
Nogare, Mercado de trabalho com Rodrigo
comunidade em Strauss, Windows Workflow Foundation com o Raptors, INETA e revista .Net Magazine.
MVP Thiago Cruz e uma repetição da palestra de
São Paulo.” SQL Server 2005 com Diego Nogare. Todas as
sessões foram acompanhadas por um público

Fotos do evento
PÁGINA 24

Cobertura: Final Imagine Cup 2007


Não 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 Coréia 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 Tecnológico de Aeronáutica (ITA).
Um fato curioso é que Pernambuco emplacou cinco equipes na finalíssima da etapa Brasil. Tal fato gerou uma certa polêmica, no entanto muitos
puderam observar a excelência 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 “fábrica” de jovens talentos, produzidos com
muito suor e samba, ou melhor “frevo”!
A equipe desenvolveu o projeto KnowTouch, um dispositivo móvel para leitura em Braille. O projeto utiliza pinos eletromecânicos que são
moldados com os símbolos do alfabeto em Braille conforme as palavras da obra, recebidas por rádio freqüência de um servidor que armazena
os livros eletrônicos.

Equipe Oysterix SD Campeã da Etapa Brasil

Com uma diferença 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 alfabetização digital em massa por meio de experiências de aprendizado móveis, digitais,
customizadas, de alta interatividade e automação. É composto por um assistente pessoal para alunos e ferramentas de criação e consolidação de
conteúdo para professores.

Equipe Trivent Dreams – segunda colocada


Cobertura: Final Imagine Cup 2007
PÁGINA 25

A terceira colocada, a equipe Paulista Guarini composta por Guilherme Paes Molina e Bruno Peinado Brusco - Centro Universitário 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 solução com alta tecnologia que permite melhorar o processo de avaliação dos alunos por meio de
parâmetros curriculares do Ministério da Educação (MEC) e das próprias escolas. A idéia é simples e inova a maneira da avaliação da educação.
No programa, cada habilidade adquirida pelo aluno representa um pedaço que irá compor um mosaico final - que, por sua vez, compara o
desempenho do aluno com os parâmetros do MEC e da escola.

Quadro de classificação da final


Colocação Equipe Pontos

1o Oysterix 8,8958
o
2 Trivent Dreams 8,8542
o
3 Guarini 8,6146
o
4 Dominus 8,4792
o
5 Commit Solutions 8,4167
o
6 Stepping Stone 8,2604
o
7 SSL 7,7917
o
8 Fast 7,7604
Como você pôde observar no quadro da classificação final, a diferença entre o primeiro colocado e o último foi de apenas 1,14 pontos, o que
prova a forte disputa, além de um bom nível técnico. A amizade entre os integrantes das equipes finalistas sem dúvida marcou este torneio,
onde muitos trocaram idéias e ideais, além de muita descontração numa inusitada prova de kart.

Equipes finalistas – aqui todos são vencedores Kartódromo – Uma irreverente disputa antes da finalissíma

A cerimônia da entrega dos prêmios aconteceu no Auditório do Hilton


apresentada pelo irreverente Marcos Mion que de certa forma tirou um
pouco a tensão dos finalistas com suas “pseudo-piadas”.
Marcos Mion apresentando a final do Imagine Cup 2007

Parabéns a todos os participantes do torneio e que o Brasil conquiste a


final na Coréia com o excelente trabalho da equipe Pernambucana
Oysterix SD.
PÁGINA 26
.Close()
A coluna .Close() tem como objetivo encerrar as edições da Codificando e-Magazine com dicas sobre
desenvolvimento .Net em geral, falando desde recursos de linguagens até opiniões do dia-a-dia do
desenvolvimento de projetos.
Para iniciar vou falar um pouco sobre o Visual Basic 9.0, versão que será lançada no final do ano junto ao
Framework (FX) 3.5 e ao Visual Studio “Orcas”.
O Visual Basic é sem dúvida uma linguagem que sobre um preconceito muito forte de muitas pessoas
principalmente no Brasil, mas que vem acompanhando com grande estilo a evolução 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 são cobertos/suportados pela linguagem.
Lembrando que na opinião 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 tão esperado LINQ, que são extensões da linguagem que oferecem
suporte a consulta de dados em diversos formatos: XML, Banco de Dados, coleções genéricas, entidades,
objetos, etc... Enfim, qualquer coleção que implementar a interface IEnumerable assim como IQueryable. A
muito tempo a comunidade pedia a Microsoft alguma solução para O/R (Object Relational) e finalmente
temos uma tecnologia; Os times de VB.Net e C# apostam muito no LINQ e tem feito esforços grandes
para liberar muito material para a comunidade.
Para quem trabalha com aplicações 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 manipulação do banco de dados. A tabela abaixo,
mostra uma comparação/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 versão, O time do Visual Basic .Net criou
novas formas de escrever alguns códigos que estamos acostumados a muito tempo porém que claramente
organiza/agiliza/dinamiza a leitura.
Nas próximas colunas vamos poder ver cada uma dessas novidades.

Até lá.

Alexandre Tarifa é MVP Visual Developer Visual Basic .Net, bacharel/pós


graduado em Ciência da Computação, trabalha em diversos projetos .Net
ignorando a muito tempo a discussão 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 Líder de Projetos na ITGROUP (www.itgroup.com.br),
editor da revista Codificando e-Magazine e fanático torcedor do São Paulo
Futebol Clube. Blog: www.vstsrocks.com.br/alexandretarifa

Vous aimerez peut-être aussi