Você está na página 1de 31

Codificando Net

POWERED BY

e-magazine
CODIFICANDO.NET

J A N / F E V 2 0 0 7
E D I O 6 N M E R O 5 A N O I

Editorial
Parece que foi ontem, mas j estamos em 2008. Esta primeira edio do ano contempla excelentes mate-
riais e colunas e inicia uma fase em que a revista passa a lutar por um contedo mais ligado ao dia-a-dia
dos profissionais de tecnologia e desenvolvimento.

A revista Codificando.Net cresceu nos ltimos tempos em relao ao nmero de downloads mas enco-
lheu em relao ao nmero de colaboradores. As portas esto abertas para toda comunidade. Nosso
editorial totalmente aberto para contribuies da comunidade e estamos sempre aguardando que as
pessoas tomem o gosto por divulgar tecnologia.

Esta edio tambm apresenta mais dois editores Diego Nogare e Sergio Gonalves (Ganso) com o obje-
tivo de dar um novo sangue ao nosso time e conseguirmos aumentar o contedo a cada edio.

Vamos l pessoal, mostrem suas caras!

Alexandre Tarifa
editor@codificandomagazine.net

Equipe
Editor:
Alexandre Tarifa
Emerson Facunte
Diego Nogare
Sergio Gonalves
Fernando Borges (Capa)

Reporter
Alfred Myers
Colaboradores:
Feio Tomaz
Maurcio Wieler
Diego Nogare
Alexandre Lopes
3
Entrevista - Lanamentos 2008
A revista Codificando e-Magazine atravs do reprter Alfred Myers, MVP de C#, realizou uma pesquisa por e-
mail com os principais nomes da tecnologia no Brasil, fazendo trs perguntas sobre os lanamentos das verses
2008 das ferramentas de Desenvolvimento e Infra-Estrutura. As perguntas foram elaboradas pelo nosso repr-
ter de planto Alfred Myers.

Perguntas:
1) Qual a principal novidade em 2008 do produto ou tecnologia na qual voc MVP?
2) Quais as ferramentas que no podero faltar no seu computador em 2008?
3) Qual idia, ferramenta, produto, tecnologia voc acha que ganhar destaque em 2008? Por qu?

Bruno Sonnino Microsoft MVP (Client Application Development)


Desenvolvedor e consultor de sistemas. autor de 7 livros e mais de uma centena de artigos publicados em
revistas nacionais e estrangeiras. s vezes, pode ser encontrado dando palestras em eventos como o TechEd e
BorCon. Ele desenvolve utilitrios para a revista PCMagazine americana (http://www.pcmag.com/download).

1) Acredito que 2008 deve ser o ano do Silverlight, com o lanamento do Silverlight 2.0 e a possibilidade de
desenvolver aplicativos .net para mltiplas plataformas no browser.
2) O Visual Studio 2008 uma ferramenta bastante completa para o desenvolvimento de aplicaes .Net, des-
de aplicaes WinForms/WPF ou Silverlight at aplicaes para Compact Framework ou Office.
3) O Silverlight deve ganhar destaque, com a possibilidade da criao de aplicaes ricas para a Web. Com ele,
o XAML deve ganhar maior destaque e, por conseqncia, as atenes devem se voltar tambm para o
WPF, na criao de aplicaes desktop.

Hlio S Moreira Microsoft MVP (Office Sharepoint Server 2007)


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 na-
cionais.

1) As tecnologias Sharepoint (Windows Sharepoint Services 3.0 e Office Sharepoint Server 2007) esto enqua-
dradas na prxima onda (wave) de lanamentos da Microsoft; portanto, acredito que grandes novidades
neste contexto devem ser esperadas para 2009/2010!
Outrora, tenho acompanhado algumas movimentaes interessantes para:
Suportabilidade do Windows Sharepoint Services 3.0 como uma role do Windows Server 2008
[lanamento confirmado para este ano] sendo uma implementao anunciada pelos times de produto. Mas
h alguns meses atrs esta discusso foi novamente colocada em pauta, e a deciso final foi para a no im-
plementao desta funcionalidade por questes de flexibilidade e independncia entre os produtos e, conse-
qentemente, entre as verses/builds dos mesmos.
A suportabilidade das tecnologias Sharepoint ao SQL Server 2008 onde acredito que seja praticamente
nativo, sem grandes necessidades de modificaes ou fixes.
O Visual Studio .Net 2008 j foi lanado, e apresenta diversas (muitas novidades) para o desenvolvimento
de aplicaes. No cenrio de desenvolvimento e customizaes avanadas para as tecnologias Sharepoint,
onde normalmente o Visual Studio .Net 2005 a ferramenta ideal, o lanamento do Visual Studio .Net 2008
4
Entrevista - Lanamentos 2008
trs grandes evolues no desenvolvimento de workflows baseados no Windows Workflow Foundation.
Alias, espero que este lanamento (Visual Studio .Net 2008) seja um fator motivador para as prximas verses
do Windows SharePoint Services 3.0 Tools: Visual Studio Extensions

2. Windows Vista (with SP1), Office System 2007 (with SP1). InfoPath 2007, OneNote 2007, Groove
2007, Microsoft Business Data Catalog Definition Editor, Visual Studio .Net 2008 (Windows Workflow Foun-
dation e Windows SharePoint Services 3.0 Tools: Visual Studio Extensions), BdcMetaMan, Microsoft Virtual PC
e Microsoft Virtual Server 2005.
O resto vai ficar virtualizado! ;-)

3. Eu acredito que o SQL Server 2008 seja a grande sensao deste ano. Primeiramente pelas funcionali-
dades e caractersticas anunciadas durante as verses betas e CTP (Community Technology Preview), que re-
presentam um avano incrvel nas capacidades de gerenciamento e otimizao no modelo de armazenamento de
dados corporativos.
Minha sensao tambm baseada na prpria arquitetura da plataforma de produtos, servios e solues Micro-
soft que - com exceo do Exchange Server (e provavelmente de outros servios menos relevantes) esto
baseadas completamente nos recursos providos pelo SQL Server, com o uso intensivo e em larga escala.
Para idias e tecnologias, gostaria de citar:
- Microsoft Popfly - http://www.popfly.com/
- Microsoft Live Labs : Volta - http://labs.live.com/volta/
- OOXML Office Open XML
- Windows Live Plataform
- Sharepoint ( claro) sendo um grande ano de implementaes mais complexas e completas. Vejam mais in-
formaes em http://www.sharepointbrasil.net

Marcelo Hideaki Azuma (ITGROUP - MS GOLD Certified Partner)


MVP de Arquitetura de Solues, MCSD, MCSE, MCDBA e MCT.

1. Algo que vem se apresentando o uso do Application Portfolio Management como parte do ferramen-
tal para gerenciamento da arquitetura corporativa. Muito importante j que o nvel de complexidade do conjun-
to de sistemas de uma empresa tende a crescer exponencialmente e o uso de ferramentas deste tipo, como o
Project Portfolio Server da Microsoft, possibilita uma anlise estratgica sobre o patrimnio digital da empresa,
auxiliando o arquiteto corporativo na definio do direcionamento tecnolgico da empresa, que orienta a reali-
zao de cada projeto de TI.

2. Todo o pacote Office 2007, incluindo o Project Professional, OneNote e Visio, e o Visual Studio 2008
com o Team Foundation Server Explorer. No pode faltar tambm o Virtual PC, com vrios Virtuais Machines
para manter o meu Data Center mvel.

3. Este ano deve apresentar uma evoluo na implementao dos conceitos de Service Oriented Architec-
ture e suas especializaes, como Software + Services e Office Business Applications. Vrios casos de sucesso
de implementaes de Enterprise Service Bus, Business Intelligence, Unified Communications e Portais de Cola-
borao, a Microsoft oferece hoje uma plataforma madura para realizao de tais projetos e o mercado tambm
est mais bem preparado para receber e tirar proveito de tudo isso.
5
Entrevista - Lanamentos 2008
Fabio Cmara Microsoft MVP
Fabio Camara (fabio.camara@vstsrocks.com.br) MCT, MCP, MCAD, MCPD, MCITP, MCTS, MCSD.NET, MSF
Practitioner, Certified ITIL Foundations e Certified SCRUM Master Acredita em bons resultados em projetos
com tcnicas geis, principalmente para as caractersticas do mercado brasileiro. Ministra treinamentos e
coaching para projetos conforme pode ser verificado no site http://www.fcamara.com.br

1. O Visual Studio Team System tem muitas novidades e posso cometer alguma injustia em minha avaliao.
Vamos colocar assim: A novidade que eu mais gostei no Visual Studio Team System 2008 foram as novas funcio-
nalidades de Build Automation que permitiram o conceito Continuos Integration.

2. TFS 2008, VSTS 2008, Office 2007, MOSS 2007 e One Note.

3. Na minha previso, o VSTS vai ganhar destaque porque vai deixar de ser visto como uma ferramenta de
controle de verso e ser visto como uma ferramenta de automao de ciclo de vida de desenvolvimento
de software

Alexandre Lopes (Microsoft MCT)


Atua como consultor especialista em SQL Server em projetos da Y2K-TI (http://www.y2k-ti.com.br).
Possui mais de 10 anos de experincia na rea de TI, sendo certificado Microsoft com os ttulos MCT, MCSE e
MCDBA. Como instrutor MCT (Microsoft Certified Trainer) possui cerca de 4.200 horas ministrando treina-
mento oficial Microsoft.

1) O lanamento do SQL Server 2008 que ir revolucionar o mercado de banco


de dados.
2) O Virtual PC com Windows Server 2008 e SQL Server 2008.
3) A Virtualizao de servidores e o outsourcing de servios devero ter um
destaque em 2008. Ambos tero destaque por diminurem o ROI e proporcionarem
maior poder de gerenciamento. O ITIL como framework para entrega de melhores servios ser o grande
destaque na rea de outsourcing e help desk.

Israel Aece (Microsoft MVP, MCP, MCAD, MCTS e MCT)


Israel Ace (Microsoft MVP, MCP, MCAD, MCTS e MCT) desenvolvedor de software h aproximadamente 5
anos. Desde ento utiliza a plataforma .NET da Microsoft, onde desenvolve sobre ela aplicativos voltados para
Internet (ASP.NET), Windows Forms, Windows Services e, principalmente sistema distribudos, utilizando Visual
Basic .NET ou Visual C# .NET como linguagens.
E-mail: israel@projetando.net | Site: http://www.projetando.net | Blog: http://weblogs.pontonetpt.com/israelaece

1) O ASP.NET no sofreu muitas alteraes. As novidades esto naquelas tecnologias e funcionalidades que o
circundam como o caso do MVC e o IIS 7.0.
2) Visual Studio .NET 2008 + Windows Vista Business + IIS 7.0.
6
Entrevista - Lanamentos 2008
3. Acredito que o MVC roubar a cena nos prximos meses. Isso devido grande exigncia que a comunida-
de fez para que fosse implementado uma alternativa ao tradicional Web Forms. Claro que, em paralelo, outras
tecnologias vo sendo disponibilizadas (como o caso das Parallel Extensions) e outras vo amadurecendo cada
vez mais (WCF, WF, WPF e Cardspace), tornando a plataforma .NET cada vez mais completa.

Maira Wenzel
MCSD, lder de programao do time de Usurios Educacionais de ASP .NET. Vem trabalhando extensivamen-
te com tecnologias Microsoft desde 2000 incluindo SQL Server, ASP.NET, C#, Visual Basic and Sharepoint Ser-
ver.

1) ASP.NET Dynamic Data. possvel conferir esta tecnologia na verso CTP do ASP.NET 3.5 Extensions Pre-
view.
2) No posso ficar sem o Word, o Outlook e o Visual Studio 2008.
3) Acho que uma tecnologia que vai ter muito destaque em 2008 o ASP.NET MVC. O ASP.NET MVC a
implementao da Microsoft utilizando a arquitetura MVC (model-view-controller). Esta arquitetura por
fazer uma diviso de responsabilidades, facilita a manuteno do cdigo, o gerenciamento de complexidade
e o teste das aplicaes.

http://shop.linhadecodigo.com.br/treinamento.asp?id=2953
7 Merge com SQL Server 2008

Uma das grandes novidades do SQL Server 2008 a facilidade para mesclar dados utilizando o conceito de MERGE. Esta operao permite
recuperar dados de uma origem e realizar diversas aes baseadas nos resultados de JOIN (juno) entre a origem e o destino. O MERGE au-
menta consideravelmente o desempenho na utilizao de INSERT, UPDATE e DELETE em casos especficos.

A criao de uma condio MERGE relativamente simples, no me-


lhor caso so apenas quatro passos para sua composio.
MERGE: Especifica os dados de destino da operao definida na
clausula WHEN;

USING: Especificam os dados de origem que sero comparados


com os dados de destino, definido na clausula MERGE;

ON: Encontra os dados em evidncia, interligando as condies de


origem e destino;

WHEN: Aumenta a granularidade do filtro, incrementando a clau-


sula ON.

Com alguns exemplos na prtica, este recurso fica mais simples de


ser entendido e implementando.
Imagine o seguinte cenrio: Em uma rede de lojas, foram criadas
tabelas com nomes diferentes, mas com a mesma estrutura. Cada
tabela armazena os produtos que tem em sua loja (a tabela tblLoja1 armazena os produtos da Loja 1, e a tabela tblLoja2 armazena os produtos da
Loja 2). Em um determinado momento, o dono da rede de lojas solicita que seja feita uma centralizao dos dados, para a criao de uma apli-
cao Web.
Com base neste cenrio, criamos e populamos as duas tabelas de produtos das lojas.

DECLARE @cont INT


SET @cont = 1
CREATE TABLE tblLoja1 (
lojCodigo int
,proCodigo int
,proDescricao varchar(10))
WHILE @cont <= 20
BEGIN
INSERT INTO tblLoja1

DECLARE @cont INT


CREATE TABLE tblLoja2 ( SET @cont = 15
lojCodigo int
,proCodigo int
,proDescricao varchar(10))

WHILE @cont <= 30


BEGIN
INSERT INTO tblLoja2
8 Merge com SQL Server 2008

Depois de criar e inserir alguns registros em cada uma das duas tabelas separadas das Lojas, vamos criar a tabela tblLojas. Repare que a estru-
tura das 3 tabelas so iguais, isso no uma regra, s para simplificar o exemplo. Poderiam ser diferentes, sem problema algum.
Finalmente chegamos ao ponto onde utilizaremos o MERGE para colocar todas as informaes na tabela tblLojas, baseada nas tabelas tblLoja1
e tblLoja2.

No primeiro exemplo de MERGE, utilizaremos a tabela tblLojas como sendo o destino dos dados e a tabela tblLojas1 como sendo a origem.
Faremos a ligao das duas tabelas nos baseando na coluna proCodigo [terceira linha]. Quando a clausula ON for satisfatrio (verdadeira), o
processamento executar o bloco definido em MATCHED, para resultados cuja clausula ON seja negativa, o SQL Server 2008 executar o
bloco NOT MATCHED.

MERGE tblLojas des


USING tblLoja1 ori
ON ori.proCodigo = des.proCodigo
WHEN NOT MATCHED THEN
INSERT values(ori.lojCodigo, ori.proCodigo, ori.proDescricao)
WHEN MATCHED THEN
UPDATE SET des.lojCodigo = ori.lojCodigo;

Neste momento, como a tabela tblLojas ainda est vazia, somente o bloco NOT MATCHED (que insere os valores) ser executado. Con-
sultando a tabela tblLojas, os dados esto idnticos
MERGE tblLojas des tabela tblLoja1.
USING tblLoja2 ori Agora, para executar o MERGE da tabela tblLoja2 com a
ON ori.proCodigo = des.proCodigo tabela tblLojas, criamos o segundo exemplo de cdigo que
WHEN MATCHED THEN
muito parecido com o primeiro, a no ser pela tabela utiliza-
UPDATE SET des.proDescricao = 'AmbasLojas'
da como origem dos dados e pelos processamentos que se-
WHEN NOT MATCHED THEN
ro executados com base no resultado da clausula ON.
Agora, depois de executar esse cdigo que, quando encontra
proCodigo que existe na tabela tblLojas e tambm existem na tabela tblLoja2, atualiza a proDescricao para AmbasLojas, consultar a tabela tblLojas, consegui-
mos ver com clareza que alguns dados foram inseridos e outros dados atualizados.
SELECT * FROM tblLojas

Na hora que populamos as tabelas das lojas, os produtos de cdigo 15 a 20 se repetiram propositalmente, para forar esta
igualdade de dados, e como est no exemplo, atualizar a tabela destino.
Conclumos que utilizar o MERGE mais rpido e simples do que escrever cdigo para fazer uma juno de dados de duas
tabelas. Esta nova funcionalidade deve ser utilizada sempre que possvel. Ela muito mais performtica do que criar um
procedimento fazendo as verificaes manualmente.

Diego Nogare Graduado em Cincia da Computao e Ps-Graduado em Engenharia de Computao com nfase em Desenvolvi-
mento Web com .NET, Colaborador do Portal Linha de Cdigo, co-Lder do grupo de usurios Codificando .NET, co-Lder dos Micro-
soft Student Partners (MSP) de So Paulo, possui certificaes MCP e MCTS em SQL Server 2005, palestrante em eventos da Micro-
soft, Codificando .NET e INETA BR, mantm o site www.diegonogare.net.
9 Artigo: Eu uso metodologia gil, e voc?
Como vender a utilizao de metodologias geis em projetos para organizaes tipicamente tradicionais? Diferente de ou-
tros assuntos tcnicos que beiram questes religiosas (ver discusses entre Java e .Net), h nos diretores e gerentes das
corporaes uma prudncia racional que independe de metodologia. Na verdade, todo gestor sensato quer avidamente trs
premissas realizadas em seus projetos: o negcio atendido, o oramento respeitado e o cliente satisfeito (no necessaria-
mente nesta ordem).

Um caso prtico
Iniciamos a reunio na grande sala, muito luxuosa para os padres que estamos acostumados a trabalhar. Havia cerca de trs
empresas representadas na sala e aparentemente todas na mesma situao.
Um diretor de TI de uma respeitvel organizao me perguntou:
O que est acontecendo com os projetos hoje?
Simples, a TI lenta demais e os negcios so muito rpidos ele mesmo respondeu. Isso tem 10 anos no mximo e seu
surgimento confunde-se com a utilizao da Internet, mas a dura realidade atual dos projetos de software.
Seu papel hoje nesta reunio me fazer compreender o motivo pelo qual eu permitiria voc implantar suas tcnicas geis
em meu departamento de TI, me disse o diretor com verdadeiro desdm. E continuou falando: Argumentos relacionados
com o controle do sucesso do projeto, principalmente do ponto de vista financeiro, so argumentos invlidos se comparar-
mos tcnicas geis de controle e tcnicas baseadas em PMBok. Portanto seja mais criativo que isto!
Ele passou ainda uns 30 minutos expondo toda sua descrena, eu at pensei que a reunio acabaria e eu no teria chance de
falar. Abruptamente ele cala-se e olha para mim. Entendi imediatamente que chegou minha vez. Cerca de 8 pessoas caladas
numa mesa oval esperando um argumento mgico vindo de mim.

Colhendo a motivao
Comecei trazendo novas questes, no que eu quisesse ganhar tempo para estruturar os meus argumentos, mas eu precisa-
va entender porque este diretor com a opinio contra metodologias geis resolveu me receber numa reunio. Eu simples-
mente queria entender o que estvamos fazendo ali naquela sala de reunio luxuosa.
Parece-me que os problemas foram bem explanados, contudo no consegui captar a motivao. Qual a motivao de vocs
para buscar mudanas? Entendi que no esto plenamente satisfeitos com as tcnicas que utilizam hoje, entretanto percebi
que esto acostumados com as tcnicas e acomodados com os resultados alcanados. Sendo assim, para que conhecer pos-
sibilidades diferentes de tcnicas e conseqentemente de resultados?
O diretor imediatamente questionou-me em tom mais alto ao invs de responder: _ Voc est afirmando que estamos aco-
modados? Minha resposta politicamente inadequada foi:
Independentemente de classificar se h ou no h zona de conforto, quero apresentar a minha leitura sobre o significado
da palavra insanidade. Insanidade para mim esperar por resultados diferentes sem fazer nada diferente. H alguns anos se
praticam as mesmas tcnicas, como podemos esperar resultados diferentes?
Aonde voc quer chegar? Retrucou o diretor irritado.
Quero encontrar a motivao! Respondi sem mostrar intimidao. As propostas geis so to srias como todas as propos-
tas de metodologias que voc conhece, portanto se no h motivao para mudanas e o objetivo apenas comparar uma
tcnica com outra, avise-me, pois trilharei por caminhos mais tericos neste caso.
Neste momento eu sabia que a reunio iria longe, porm eu precisava recuperar o diretor. Procuro uma resposta simples,
a mais simples que vier em sua mente agora, por favor, me responda o que estamos fazendo aqui agora.
Meu cliente no est se sentindo bem atendido! Escapuliu da boca do diretor. Muito obrigado, eu respondi em cima.
10 Artigo: Eu uso metodologia gil, e voc?
Obtendo o cenrio
A organizao de nosso departamento de TI formada por trs sub-reas: uma espcie de escritrio de projetos, uma rea
de qualidade e a rea de desenvolvimento propriamente dita. Obviamente temos pessoas de infra-estrutura que tambm so
responsveis pelos ambientes de desenvolvimento, testes e produo.
Com este cenrio procuramos ter controle de todas as atividades, porm mesmo assim vivemos um dilema: _ se atendemos
aos pedidos dos usurios aps o escopo definido, perdemos o controle sobre o oramento e prorrogamos o prazo; _ se
congelamos o escopo previamente definido, apesar de entregar com o oramento previsto e no prazo combinado, nossos
clientes afirmam que no foram atendidos.
Afinal, o que podemos fazer diferente? Perguntou o diretor em tom mais amigvel.

Explicando os motivos
Vejo muito naturalmente em seu cenrio o conflito de atividades de controle, tambm chamadas atividades de conformida-
de, com atividades de resultado. Apesar de ser um problema comum, no h literatura acessvel ou cursos que orientem a
compreenso e resoluo deste conflito.
As atividades de controle focam em corrigir desvios e no no aprendizado, ou seja, partem do principio que o plano sempre
tem que ser perfeito. Se o plano inicial precisa ser alterado, refaz-se imediatamente todo o plano. Isto explica tambm por-
que os tcnicos no gostam quando os usurios pedem mudanas, pois muito trabalho seja l qual for o tamanho da mu-
dana.
Quando afirmo que no h aprendizado neste cenrio, caracterizo assim porque ningum se prope a entender o porqu do
novo pedido do usurio ou da mudana sobre algo previamente combinado. uma atitude binria, sim vamos fazer e o
impacto ser revelado posteriormente ou no podemos, pois o impacto ser fatal ao projeto.
Deve haver uma razo para tantas mudanas ou para inmeros pedidos novos, quando vamos nos responsabilizar em com-
preender isso e transformar nossa atitude?
O controle de qualidade, da forma automatizada que vocs usam, consome uma enormidade de tempo. Este tempo extra
com qualidade, alm de consumir mais atividades de conformidade, tambm so muito questionadas pelos sponsors1 dos
projetos.
A mistura de atividades de controle e atividades de qualidade no seu cenrio criam um efeito bola de neve em seus proje-
tos. Nestes projetos com problemas, vocs aumentam a prioridade das atividades de conformidade na tentativa de retomar
o plano perfeito ao invs de aumentar o foco nas atividades de resultado. Vocs aumentam os testes acreditando que a ins-
peo a melhor forma de proteger-se da decepo do cliente. No fim, mesmo tendo trabalhado arduamente durante todo
o projeto, h uma sensao em todos de que no foi legal.
1 Sponsors: so executivos e / ou clientes que aprovam o oramento do projeto e so responsveis pelo pagamento .

Uma direo diferente


necessrio quebrar o paradigma de replicabilidade e adotar o paradigma da confiabilidade.
Replicabilidade: entradas e sadas planejadas inicialmente e com pouca variao;
Confiabilidade: foco na sada, flexibilidade na entrada e aproximao do cliente.
Muitas metodologias propem uma espcie de framework para encaixotar o relacionamento com clientes e desenvolvedo-
res como se fossem robs. Os seres humanos so dotados de uma fantstica criatividade capaz de surpreender, sempre.
Robotizar o comportamento de nossos clientes e desenvolvedores transformar a expectativa de um projeto soluciona-
dor para o negcio na monotonia de mais um sistema de software .
Se voc no confia em seu cliente e na sua equipe de desenvolvimento, porque est iniciando este projeto?
Se o cliente no confivel, use de prototipao e entregas freqentes de cdigo funcionado, se possvel em intervalos de 2 semanas.
11 Artigo: Eu uso metodologia gil, e voc?
Se a equipe no confivel, estabelea estimativas junto com eles, ou seja, todos participam da medio do projeto. Faa reunies dirias
em p, de aproximadamente 15 minutos, respondendo as seguintes perguntas:

1. O que ns conseguimos fazer ontem?


2. O que ns iremos fazer hoje?
3. O que pode nos impedir alcanar nosso objetivo?

Classifique e priorize as atividades junto com seu cliente, deixando atividades de menor valor para o final de projeto. quase que afirmar:
faa do mais difcil para o mais fcil.
Desta forma, novos requisitos podem ser trocados por requisitos de menor valor que seriam desenvolvidos mais para o final do projeto.
Nos testes, pense que automao muito bom para garantir que determinados comportamentos do software no sejam perdidos diante as
alteraes. Na fase de construo, isso no tem tanto valor. Recomendo aplicar tcnicas baseadas em testes comportamentais2 durante
esta fase, pois so mais simples, mais econmicas e eficientes.
Pratique isso por 3 meses e avalie os resultados.

A receita final
Mesmo entendendo que muitos executivos querem simplesmente comprar uma metodologia como um segredo mgico, fala-se a palavra
certa e tudo funciona, no constatamos isso em nosso mundo real.
Metodologia no se compra, se implanta. Depende dos prprios executivos, dos gerentes de projetos e principalmente do fator humano
presente. Entenda-se por fator humano o respeito intuio criativa dos clientes e desenvolvedores.
Temos comprovado que quando se trabalha srio com propostas de mudanas e motivao na equipe, com trs meses j alcanamos resul-
tados diferentes. Para a autonomia tcnica plena da equipe pode ser necessrio mais tempo, entretanto quando sponsors percebem pro-
gresso, qualquer investimento se justifica e tudo fica mais fcil.
A participao de um consultor externo fora da dinmica dos projetos existentes tem se demonstrado um acelerador providencial. Apenas
recomendamos cuidado para ratificar o conhecimento prtico deste profissional, pois implantar ciclo de vida de desenvolvimento 2 Tes-
tes Comportamentais ou Behavioral Tests: Tcnicas de testes baseadas na interao do ser humano com os produtos desenvolvidos. Des-
taca-se pela facilidade de implantao e pelo baixo investimento. Para saber mais visite o site http://www.fcamara.com.br
Sempre bem mais profundo que as teorias podem alcanar. A melhor forma de se certificar sobre o consultor verificando seu histrico
de realizaes.
Resumindo conclusivamente, necessrio entender a diferena entre risco e atividade.
Quando voc cadastra uma atividade em seu aplicativo especfico de controle de atividades, voc espera uma tarefa detalhada e um produ-
to resultante desta atividade associado.
Quando voc cadastra um risco no mesmo aplicativo, o que fazer? Todo risco impe uma mudana de atitude para que resultados diferen-
tes aconteam.

Sucesso em seus projetos!

Fabio Camara (fabio.camara@vstsrocks.com.br) MCT, MCP, MCAD, MCPD, MCITP, MCTS, MCSD.NET, MSF Practitioner, Certified
ITIL Foundations e Certified SCRUM Master Acredita em bons resultados em projetos com tcnicas geis, principalmente para as carac-
tersticas do mercado brasileiro. Ministra treinamentos e coaching para projetos conforme pode ser verificado no site http://
www.fcamara.com.br
12 Por dentro da Base Class Library

O MVP de Asp.Net Israel Ace disponibilizou em seu site Projetando .Net (www.projetando.net) um material fantstico sobre Base Class Li-
brary. Veja uma pequena parte deste material neste artigo e faa o download totalmente grtis dos captulos.

Link para download: http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=77

A Base Classe Library (tambm conhecida como BCL) um conjunto de classes que o .NET disponibiliza para todas as linguagens que rodam
sob o .NET Framework. Essa base encapsula vrias funcionalidades que tornam o trabalho do desenvolvedor muito mais fcil. As classes conti-
das dentro da BCL so comuns para qualquer tipo de aplicao, ou seja, independentemente de tecnologia (ASP.NET, Windows Forms, WPF,
etc.), voc poder consumir essas classes que, representam tarefas que so comumente utilizadas. A imagem abaixo exibe onde a BCL est
encaixada dentro da plataforma .NET.
A verso 2.0 adicionou novos tipos e namespaces, enriquecendo ainda mais esta estrutura. Essas classes vo desde novas colees (tipadas) at
novos namespaces, como o caso do System.Transactions. Apesar do .NET Framework estar em sua verso 3.5, ele utiliza o .NET 2.0 como seu
ncleo. A figura abaixo ilustra perfeitamente a posio do .NET 2.0 dentro do .NET 3.X.
A BCL composta por vrios namespaces e, atravs dos captulos abaixo, veremos detalhadamente cada um dos principais deles. A idia
abordar o contedo mais til ao dia-a-dia, mostrando exemplos em Visual Basic .NET e Visual C#. Sendo assim, nem todas as classes/
funcionalidades sero cobertas aqui, mas, para isso, poder recorrer ao MSDN Library.

Contedo
Captulo 1 Tipos de dados e Interfaces
Este captulo abordar a arquitetura de tipos fornecido pelo .NET Framework, onde na primeira parte do captulo, ser abordado os tipos pa-
dres e veremos como identificar se trata-se de um tipo valor ou referncia. Alm disso, analisaremos um problema grave, deixado de lado
por muitos desenvolvedores, que a questo do boxing e unboxing. Ainda nessa primeira parte, analisaremos alguns novos tipos introduzidos
nesta verso do .NET Framework, em principal, os Generics. Na segunda e ltima parte do mesmo, vamos abordar as vrias Interfaces que esto
disponveis para serem implementados em tipos customizados, fornecendo funcionalidades adicionais ao tipo criado.
Captulo 2 Trabalhando com Colees
As colees so componentes importantes em qualquer tipo de aplicao e, para isso, esse captulo abordar extensamente o
uso das mesmas, comeando pelas colees primrias, fornecidas desde as primeiras verses do .NET Framework at as novas
colees, introduzidas na verso 2.0 do .NET Framework, quais fazem uso dos Generics. Alm das colees, analisaremos as
Interfaces disponveis para podermos estender as funcionalidades existentes e customizarmos para o nosso cenrio.
Captulo 3 Utilizao de Assemblies.
Um Assembly a menor unidade de reutilizao, segurana e controle de verso. O Assembly algo importante que deve ser
analisado cuidadosamente, pois toda aplicao .NET depois de compilada gerar um Assembly. Este captulo abordar a sua cri-
ao desde um utilitrio de linha de comando at o Visual Studio .NET. Alm disso, abordaremos tambm outros assuntos rela-
cionados a Assemblies, como por exemplo, strong names, GAC (Global Assembly Cache), instaladores e arquivos de configura-
o.
Captulo 4 Monitoramento e depurao de aplicaes
Toda e qualquer aplicao necessita de algum tipo de monitoramento de seu cdigo para detectar possveis problemas que pos-
sam acontecer e que devem ser analisados. O .NET Framework fornece vrias classes que ajudam nesse monitoramento e, este
captulo, responsvel por apresentar essas classes que vo desde a manipulao do Event Log do Windows at classes que
interagem com o WMI - Windows Management Instrumentation.
Captulo 5 Manipulando o sistema de arquivos
Grande parte das aplicaes comerciais que temos atualmente manipulam arquivos. Esses arquivos so arquivos de bancos, ar-
quivos de parceiros e fornecedores que servem para troca de informaes. Enquanto os XML Web Services ainda no so uma
realidade para muitas empresas, a manipulao de arquivos e seus respectivos contedos so ainda muito utilizados. Tendo esse
cenrio, o captulo em questo abordar as principais classes contidas dentro do namespace System.IO para exem-
13 Por dentro da Base Class Library

Captulo 6 Serializao
A serializao de dados cada dia mais utilizada em aplicaes. Por mais que isso acontea nos bastidores, esse captulo abordar desde o seu
conceito at como implement-la; e ainda, em seus diversos formatos, utilizando as classes fornecidas pelo .NET Framework 2.0. Alm disso,
analisaremos classes e Interfaces que temos disponveis, que proporcionaram o processo de serializao e deserializao mais flexvel, onde
podemos customizar e interceptar cada um desses processos de acordo com a nossa necessidade.

Captulo 7 Globalizao de Aplicaes


Cada vez mais se desenvolve softwares que podem ser acessados por vrias pessoas de diferentes idiomas e de diferentes locais do mundo.
Tendo esse cenrio, importante que a aplicao que estamos desenvolvendo seja possvel ao usurio poder customizar o idioma que deseja
visualizar os dados e ainda, poder criar a aplicao independente de qualquer cultura. Esse captulo tem justamente essa finalidade, ou seja, de
exibir o que o .NET Framework capaz de fazer para atender essa necessidade que, torna-se cada vez mais comum.

Captulo 8 Criptografia
Criptografia de dados um ponto muito importante, nos mais diversos tipos de aplicaes. Geralmente, em aplicaes onde alguns dos dados
so muito sigilosos, como o caso de aplicaes financeiras, quais mantm os dados de seus clientes, necessrio que se mantenha esses
dados seguros, pois, se esses dados carem em mos erradas, essas pessoas com ms intenes, no consigam entender e/ou recuperar esses
dados em sua forma legvel. Esse captulo abordar extensamente as classes responsveis por criptografia e hashing que o .NET Framework
disponibiliza, bem como utiliz-las e como aplic-las ao dia-a-dia.

Captulo 9 Utilizando Code Access Security CAS


Toda aplicao que utiliza o Common Language Runtime (CLR) obrigatoriamente deve interagir com o sistema de segurana do mesmo. Quando
a aplicao executada, automaticamente avaliado se ela tem ou no determinados privilgios. Dependendo das permisses que a aplicao
tem, ela poder rodar perfeitamente ou gerar erros relacionados a segurana. Code Access Security (tambm conhecido como CAS) um meca-
nismo que ajuda limitar/conceder o acesso que o cdigo que est querendo realizar, protegendo recursos e operaes. Este captulo abordar
como utilizar o CAS, que fornecido juntamente com o SDK do .NET Framework e, como configurar devidamente a aplicao para evitar proble-
mas relacionados a segurana.

Captulo 10 Envio de Mensagens (E-mails)


Envio de e-mails muito comum em qualquer tipo de aplicao, seja ela uma aplicao para internet, uma aplicao para Windows ou at mes-
mo servios que rodam sem uma interveno do usurio. O .NET Framework fornece um namespace contendo classes e muitos outros tipos que
podemos utilizar nas aplicao para habilitar o envio de e-mails e, conseqentemente, torn-las muito mais dinmicas e inteligentes.

Captulo 11 Criando Servios do Windows


Os Servios do Windows (Windows Services), permitem-nos criar aplicaes que rodam em background no sistema operacional. Estes servios
podem ser automaticamente inicializados quando o sistema operacional inicializar, podendo ainda ser pausado e reinicializado, sem apresentar
nenhuma interface com o usurio. Esses servios so ideais para ser usado em servidores ou em funcionalidades de longa durao que necessi-
tem ser executadas de forma totalmente independente, sem a interveno de um usurio. O captulo corrente abordar desde a sua criao, de-
purao e instalao do mesmo.

Captulo 12 Interoperabilidade com componentes COM


A Microsoft criou a plataforma .NET e, em pouco tempo, essa plataforma foi adotada por muitas e muitas empresas. Algo importante que muitas
dessas empresas, j tinham componentes COM que eram utilizados em massa nas aplicaes e que so inviveis para serem reescritos imedia-
tamente. Felizmente a Microsoft pensou no legado e possibilita a interoperabilidade de componentes COM, interagindo com aplicaes baseadas
na plataforma .NET e vice-versa. Este captulo mostrar os passos necessrios para efetuar essa interoperabilidade entre as novas aplicaes e
o que j existe em cdigo legado.

Captulo 13 Reflection
Reflection a habilidade de extrair informaes de metadados de um determinado tipo, ou seja, quais parmetros, mtodos, entre outros mem-
bros um determinado tipo possui. Isso torna a aplicao bastante flexvel, onde podemos extrair informaes necessrias para podermos custo-
mizar e automatizar a criao de ferramentas e utilitrios que auxiliam os prprios desenvolvedores. Alm disso, permite a criao em runtime de
Assemblies e como instanciar classes via programao. Esse captulo prope-se a explicar como criar esse tipo de funcionalidade dentro da apli-
cao.

Israel Aece (Microsoft MVP, MCP, MCAD, MCTS e MCT)


desenvolvedor de software h aproximadamente 5 anos. Desde ento utiliza a plataforma .NET da Microsoft, onde desenvolve sobre ela
aplicativos voltados para Internet (ASP.NET), Windows Forms, Windows Services e, principalmente sistema distribudos, utilizando Visual
Basic .NET ou Visual C# .NET como linguagens.
14
Gerenciando Transaes com Trasaction Scope no Asp.Net 2.0
Introduo
Neste artigo vou explicar como utilizar o Transaction Scope, que uma ferramenta que pode ajudar muito no controle de
transaes de sua aplicao. Tambm vou mostrar a configurao que dever ser feita nos servidores para que ele possa
funcionar adequadamente, pois muitas pessoas se esquecem deste passo e acabam tendo inmeros problemas na implemen-
tao da funcionalidade em produo ou mesmo no ambiente de teste e desenvolvimento.
O TransactionScope
O .NET Framework 2.0 inclui o namespace System.Transactions que d um grande suporte a transaes distribudas geren-
ciadas pelo Transaction Manager, incluindo Banco de Dados e Servios de Mensagens(message queues).
O namespace System.Transactions define a classe TransactionScope, que cria e gerencia transaes distribudas.
Devido a sua facilidade de utilizao e eficincia, recomendado que voc utilize a classe de TransactionScope para facilitar o
controle de transaes em sua aplicao, sem que seja necessrio (voc precise) interagir com a operao propriamente
dita.
O TransactionScope pode selecionar e gerenciar o ambiente de Transaes automaticamente.
O System.Transactions fornece uma estrutura de transaes totalmente integrada ao .NET Framework, mas no se limitando
ao ADO.NET.

Utilizando o TransactionScope
O TransactionScope iniciado quando se cria um novo objeto TransactionScope.
altamente recomendado que a declarao do scope seja feito dentro da diretiva using, pois ela garante que o objeto dure
somente o tempo necessrio para sua utilizao.
Vamos aos exemplos:
Adicione a referncia no projeto ao System.Transaction.

Inclua a referencia na Classe:

Incluindo o TransactionScope no Bloco de Codigo:


15
Gerenciando Transaes com Trasaction Scope no Asp.Net 2.0
Completando a transao:
Para commitar a transao inserimos uma instruo que ser a ultima linha do using.

Obs: Caso ocorra algum problema na execuo do bloco de cdigo (dentro do using ) automaticamente a transao abor-
tada e o Transaction Maneger executa o Roll Back das alteraes.

RollBack:

O RollBack executado automaticamente quando ocorrer qualquer exceo no bloco que est sendo executado dentro da
transao.

Exemplo de utilizao:

No cenrio abaixo, temos uma transao onde gravamos informaes coletadas separadamente (endereo, dados pessoais,
etc). Com o Transaction Scope temos a liberdade de gravar as informaes separadamente. Suponhamos que estamos gravan-
do o cliente e aps gravar o Endereo e o Telefone do Cliente da um problema na gravao dos Dados pessoais do mesmo
sendo assim o transactionScope faz o Roll Back de tudo! Voltando o objeto ao seu estado original.
16
Gerenciando Transaes com Trasaction Scope no Asp.Net 2.0
17
Gerenciando Transaes com Trasaction Scope no Asp.Net 2.0

Caso ocorra algum erro durante a gravao de algum desses metodos o TrasactionScope faz o RollBack de tudo, como dito
anteriormente. No havendo nenhum problema a transao completada normalmente.

A configurao do ambiente

Para que o transactionScope funcione no servidor precisamos fazer algumas configuraes, mais somente se o servidor for XP
sp2 pra cima! Em Win2000 no precisamos mexer em nada!

Menu Iniciar/Configuraes/Painel de Controle/Ferramentas administrativas.

Abra o Servio de Componentes (como na figura abaixo):


18
Gerenciando Transaes com Trasaction Scope no Asp.Net 2.0

Clique com o boto direito do Mouse em Meu Computador(Como na


figura Abaixo) e selecione a opo Propriedades.

Na janela Clique na aba MSDTC e depois em Configuraes de Segurana.


19
Gerenciando Transaes com Trasaction Scope no Asp.Net 2.0
Habilite as opes:

- Acesso ao DTC de Rede.


- Permitir Clientes Remotos
- Permitir Administrao Remota
- Permitir Entrada
- Permitir Sada
- Nenhuma Autenticao Necessria
- Permitir Transaes do Protocolo TIP
- Habilitar Transaes XA (como a figura abaixo)

Lembrando que essa configurao s deve ser feita em ambientes com sistema operacional Win XP ou Win Server2003. E a
mesma deve ser feita tanto no servidor de WEB quanto no de Banco de Dados.

Espero que este artigo contribua com o seu crescimento.

Abrao e bons projetos

Fabiano Belmonte
Senior Architect da Saraiva.COM, especialista em aplicaes e-Business com larga experincia em B2B (Submarino.Com, Ame-
ricanas.Com e Saraiva.Com). Trabalha h 5 anos com a tecnologia .Net, aplicando conhecimentos nas diversas reas: institui-
es financeiras (sistema SPB), e-Commerce, gerenciamento logstico, entre outras.
RECORDAR VIVER!
21 2 XNA Challenge e uma Histria de Sucesso

A Microsoft Brasil promove diversas competies e eventos sobre suas ferramentas e tecnologias durante todos os anos. Profissionais de TI e
estudantes de todo o Brasil participam massivamente nestes eventos, em busca de mais conhecimento e oportunidades para a carreira. Neste
contexto, no final de 2006 foi anunciado o primeiro XNA Challenge que recebeu dezenas de projetos inscritos e teve a participao de cente-
nas de pessoas na final em Fevereiro de 2007. Toda a repercusso marcou no pas a data em que uma multido de programadores (mesmo os
mais iniciantes) comearam a desenvolver jogos sob uma tecnologia nova chamada XNA.

O XNA um framework que permite aos programadores produzir um jogo mais rpido ao utilizar um ambiente orientado aos jogos com
mtodos e controles especiais. Baseado na linguagem de programao chamada C#, o XNA configura-se como uma extenso ao Visual Studio,
mesmo o Express Edition. Atualmente est na verso 2.0 e j existem expectativas e boatos sobre sua prxima verso, a 3.0.

Como tudo que bom, a gente pede bis. E eles atendem! Anunciado no segundo semestre de 2007, o 2o. XNA Challenge teve o tema "Meio
Ambiente Sustentvel", diretamente ligado a Imagine Cup '08, que definiu o challenge como um trampolim para a competio internacional j
que em 2008 haveria uma nova categoria, a Game Development. Tudo definido, tempo passando e diversos competidores programando.

Dos projetos submetidos, os cinco melhores foram selecionados para participar de uma final em So Paulo aberta ao pblico que iria definir o
campeo, o segundo e o terceiro (alm de um prmio adicional, de maior indicao do pblico presente). Dos finalistas, dois projetos so
Grupo de Projeto e Desenvolvimento de Jogos (GPDJ) da Unicamp, que comentarei mais a respeito.

Voltando ao challenge, a criatividade rolou solta. Bruno Evangelista (UFMG) criou "Alice, os Parasitas e o Livro do Tempo" em que o jogador
encarna uma menina com poderes especiais para salvar o planeta de seres malignos. Da Unesp, Guilherme Campos apareceu com "City Rain",
um jogo a l Sim City em que o jogador constri uma cidade na posio de prefeito e aprende sobre ecologia e urbanismo. Outro competidor,
Jos Loureno (UNIVAP), participou com "Great Adventures of Ted" onde voc precisa juntar os cristais e combater o vilo Shredder.

Carolina Gomes (GPDJ/Unicamp) desenvolveu "Gariman" em que ela definiu: "o jogador encarna um simptico lixeiro que tem como ambio
ser aprovado como membro dos Gariman, o esquadro de elite que viaja pelo mundo a limpar cidades". O game foi desenvolvido em uma
equipe maior incluindo Thiago Coser, Andr Esteve e Lucas Bueno, todos integrantes do GPDJ da Unicamp, e o objetivo final a conquista na
Frana da Imagine Cup '08.
22 2 XNA Challenge e uma Histria de Sucesso

Por fim, o ltimo competidor e campeo do torneio foi Vtor Antoniolli (GPDJ/Unicamp) com o game "Recicle" em que a misso despoluir
um rio coletando corretamente os lixos reciclveis. Recicle foi desenvolvido por Vtor Antoniolli e Zhenlei Ji, com participao de Fbio Reis,
todos do GPDJ da Unicamp. Alm do prmio do jri o game tambm levou o prmio adicional decidido pelo pblico do evento.

A esta altura voc deve estar se perguntando de onde saiu esse grupo de jogos da Unicamp chamado GPDJ. Pois bem, contarei sobre a hist-
ria do grupo e o sucesso que felizmente obtivemos no mundo dos games, ao menos at o momento. Antes, devo me apresentar: atuo como
coordenador do grupo. O GPDJ formou-se de uma iniciativa de dois professores do Instituto de Computao da Unicamp, em que eles pro-
curavam alunos para desenvolver um teste na frias. Por causa do perodo, somente 4 alunos deixaram as frias de lado para 15 dias de pro-
gramao e dessa experincia nasceu o iCoco (vice-campeo SBGames 2007). No projeto iCoco atuei j como coordenador, ajudando os
alunos nos entraves mas no durante toda a programao.

Em seguida, mais alunos aderiram ao grupo e iniciou-se o projeto Gariman, em Agosto. Como alguns dos alunos no estavam diretamente
ligados com o projeto Gariman, em Dezembro eles comearam a produo do Recicle pensando diretamente no 2o. XNA Challenge. Feliz-
mente, como mencionado, ambos foram selecionados entre os 5 finalistas (40%). Em seguida, ambos os projetos foram submetidos (com mo-
dificaes) para a Imagine Cup '08 e dos 8 projetos brasileiros aceitos para o Round 2 dois so do GPDJ (25%).

Tamanho sucesso rendeu ao grupo e integrantes notcias em jornais e na internet, alm de


entrevistas. Como j conversei com amigos a respeito e nem sempre o retorno rpido
para outros grupos, pensei em montar uma frmula mgica. A mais prxima que cheguei
foi: junte programadores interessados e motivados (mesmo sem receber nada, e sem sa-
ber o que pode acontecer no futuro) e adicione artistas e modeladores experientes
(crucial no caso do GPDJ). Por fim, se algum desejar ajudar em outras questes como
publicidade e testes, no deixe de fora.

Mais detalhes do grupo, acesse http://www.lms.ic.unicamp.br/grupo.jogos

Bruno Melo (brunoamelo@gmail.com) graduando em Engenharia de Computao na Universidade Estadual de Campinas (Unicamp). Mi-
crosoft Student Partner, campeo nacional 2. XNA Challenge, coordenador do Grupo de Projeto e Desenvolvimento de Jogos da Unicamp e
desenvolvedor do Microsoft Innovation Center/Interop.
23 Programa MSP Microsoft Student Partners

Pelo contrrio do que muitas pessoas pensam; participar de programas patrocinados pela Microsoft no exige que voc venda sua alma ao
diabo, muito pelo contrrio, diversos programas incentivam e impulsionam muitas decises do nosso futuro sem cobrar nada por isso. Dois
exemplos bem reais destes programas so MVP [Microsoft Most Valuable Professional] e MSP [Microsoft Student Partners]. Ambos os progra-
mas visam incentivar as pessoas que de uma forma direta ou indireta ajudam outras pessoas a aprender alguma tecnologia da Microsoft. O
programa MVP voltado aos profissionais do mercado de trabalho que se destacam nas comunidades de tecnologias. Os profissionais que
cedem um pouco de seu tempo para ajudar a outras pessoas tirando dvidas, dando treinamentos, cursos, palestras, escrevendo artigos, tem
chance de conseguir um titulo de MVP. O responsvel pelo programa na Amrica Latina o brasileiro Leonardo Tolomelli, que por sinal nos
cedeu uma entrevista na edio 0 Junho/2007.

J o programa MSP voltado exclusivamente para estudantes, no importa se de nvel mdio ou de doutorado, para ser um MSP tem que
ser estudante. O ingresso para o programa mediante indicaes e tarefas que so realizadas em universidades ou escolas, com o intuito de
divulgar tecnologias aos estudantes interessados. A base do programa explorar os talentos dos alunos, fazendo-os crescer pessoal e profis-
sionalmente. Cada MSP atrelado a uma instituio de ensino, e deve apresentar Microsoft comprovante de rendimento nos estudos, alm
de divulgar as tecnologias a outros estudantes atravs de palestras, workshops, cursos, e quaisquer outros eventos que possam levar conheci-
mento a estes estudantes.

A maioria dos MSPs ou foi lder de clula acadmica. As clulas acadmicas so os nomes dos grupos de estudantes que se unem com o
intuito de estudar, aprender e divulgar alguma ou vrias tecnologias Microsoft, seja na parte de Desenvolvimento de Software ou em Infra-
Estrutura de TI. Uma clula acadmica apoiada pela Microsoft, que fornece material para que os alunos que participam da clula possam a-
prender aquela tecnologia e que consiga empreg-la no mercado de trabalho. Ainda na rea acadmica, o programa Imagine Cup a maior e
mais completa competio de tecnologia do mundo, revelando diversos [talentos] alunos de destaque ao redor do mundo que conseguem
chances para ingressar profissionalmente na Microsoft. Contando com competidores de mais de 100 pases e de nove categorias diferentes, a
Imagine Cup a cada ano aborda um tema atual e de grande importncia para o planeta. O Brasil tem nome de peso na competio, e sempre
volta como um dos campees em alguma categoria. Em 2007 a final da competio foi na Coria, este ano ser na Frana. Alm da viagem,
hospedagem, alimentao e passeio turstico, gratuito a todos os competidores que forem pra final, dependendo da categoria competida, a
equipe ganhadora ainda ganha uma bolada de US$25.000 (isso mesmo, 25 mil dlares!). Em 2007, na categoria de Software Embarcado, a equi-
pe TriventDreams ED ganhou em primeiro lugar, e a equipe Papapaoca conseguiu o terceiro lugar na categoria de Filme de Curta Metra-
gem, ambas equipes possuam MSPs em seu elenco. No Brasil, a rea acadmica representada por Amintas Neto e sua equipe que com muita
colaborao, responsabilidade e bom humor nos ajudam a estabelecer uma base acadmica nas universidades do pas.

Para mais detalhes sobre os programas acadmicos da Microsoft,


acesse: http://www.microsoft.com/brasil/educacao/

Diego Nogare Graduado em Cincia da Computao e Ps-Graduado em Engenharia de Computao com nfase em Desenvolvi-
mento Web com .NET, Colaborador do Portal Linha de Cdigo, co-Lder do grupo de usurios Codificando .NET, co-Lder dos Micro-
soft Student Partners (MSP) de So Paulo, possui certificaes MCP e MCTS em SQL Server 2005, palestrante em eventos da Micro-
soft, Codificando .NET e INETA BR, mantm o site www.diegonogare.net.
24 Coluna: Desvendando o SQL Server
Pessoal, nesta srie de artigos para a revista Codificando e-Magazine, estou demonstrando o uso de XML com SQL Server 2005.
Os seguintes tpicos estaro sendo abordados:

Dados XML e tecnologia SQL Server


Modificando dados XML
Criando ndices XML

Dados XML e Tecnologia SQL Server


O SQL Server 2005 oferece diversas opes para consultar dados XML. Possui um modo extremamente fcil de usar SELECT
SQL SERVER

com FOR XML nas consultas desenvolvidas em Transact-SQL (disponvel tambm na verso 2000 do SQL Server).
FOR XML converte o resultado do SELECT em estrutura XML e apresenta diversos modos de apresentao: RAW, AUTO,
PATH e EXPLICITY

Modo de apresentao FOR XML RAW:


Default para o FOR XML, este modo cria um novo elemento XML identificado como <row> para cada linha no resultado apre-
sentado. Um atributo XML adicionado ao elemento <row> para cada coluna no SELECT, usando o nome da coluna como
nome do atributo.

Modo de apresentao FOR XML AUTO:


Para cada tabela especificada no SELECT, FOR XML AUTO cria um novo nvel na estrutura XML. A ordem de aninhamento dos
dados XML baseado na ordem das colunas como foram declaradas na clusula SELECT.

Modo de apresentao FOR XML PATH:


Novo no SQL Server 2005; os desenvolvedores possuem controle total sobre como a estrutura XML gerada. Cada coluna
configurada de forma independente, permitindo a utilizao de ALIAS (se a coluna no receber um ALIAS, o default <row>
usado da mesma forma como em FOR XML RAW).

Modo de apresentao FOR XML EXPLICIT:


Fornece a melhor opo para os desenvolvedores controlarem a gerao de complexas estruturas XML, os desenvolvedores
possuem controle total sobre o nmero de nveis que a estrutura XML possui.

Agora, iremos praticar, usando o banco de dados criado anteriormente no segundo artigo da coluna Desvendando o SQL Ser-
ver.
Exemplos:

USE CodificandoXML
GO
--- 1. exemplo basico de FOR XML RAW
select * from UniversalLog FOR XML RAW
--- 2. exemplo basico de FOR XML AUTO
select * from UniversalLog FOR XML AUTO
--- 3. exemplo basico de FOR XML PATH
select * from UniversalLog FOR XML PATH
--- 4. exemplo basico de FOR XML EXPLICIT
select * from UniversalLog FOR XML EXPLICIT
25 Coluna: Desvendando o SQL Server
Suporte para valores NULL no XML:

Por default o mecanismo de formatao XML do SQL Server 2005 ignora valores NULL, O SQL Server 2005 pode ser instrudo
a gerar linhas vazias para colunas com valores NULL. Utiliza-se XSINIL para gerar linhas vazias

Exemplos:
declare @myXML XML
SET @myXML = (select 100 'coluna 1', 200 'coluna 2', NULL 'coluna 3', 400 'coluna 4'
FOR XML RAW)
SQL SERVER

SELECT @myXML

declare @myXML XML


SET @myXML = (select 100 'coluna 1', 200 'coluna 2', NULL 'coluna 3', 400 'coluna 4'
FOR XML RAW, ELEMENTS XSINIL)
SELECT @myXML

XQUERY e XPATH:
O W3C desenvolveu duas linguagens de consultas que fornecem uma poderosa capacidade para manipular estruturas XML.
XQUERY uma linguagem de consulta criada para dados XML.

Exemplo com XPATH:

DECLARE @Date nvarchar(50)


DECLARE @UID nvarchar(256)
SET @UID = USER_NAME();
SET @Date = GETDATE();

SELECT TOP(1) LogRecord.query('<errorReport issuedby="{sql:variable("@UID")}" date="{sql:variable("@Date")}"/>'),


(
SELECT LogRecord.query('
for $rec in /logRecord, $err in $rec/error
order by $rec/@timestamp descending
return
<error number="{data($err/@number)}" timestamp="{data($rec/@timestamp)}" server="{data
($rec/@machine)}">
<message>{data($err/message)}</message>
<module>{data($err/module)}</module>
</error>')
FROM UniversalLog
WHERE LogRecord.exist('/logRecord/error') = 1
FOR XML PATH(''),TYPE
)
FROM UniversalLog
FOR XML PATH(''), ROOT('UniversalLog'), TYPE
26 Coluna: Desvendando o SQL Server
Exemplo com XQUERY:

SELECT LogRecord.value('(/logRecord/error/@number)[1]','int') AS [ErrorNumber],


LogRecord.value('(/logRecord/@timestamp)[1]','nvarchar(20)') AS [TimeStamp],
LogRecord.value('(/logRecord/@machine)[1]','nvarchar(10)') AS [ServerName],
LogRecord.value('(/logRecord/error/message)[1]','nvarchar(100)') AS [Message],
LogRecord.value('(/logRecord/error/module)[1]','nvarchar(20)') AS [Module]
FROM UniversalLog
WHERE LogRecord.exist('/logRecord/error') = 1
SQL SERVER

Modificando dados XML

Dependendo de como os dados XML foram armazenados, o SQL Server 2005 oferece duas tecnologias distintas para modificar
dados, se os dados esto armazenados em coluna XML, pode-se utilizar o mtodo modify() para incluir, apagar ou atualizar os
dados XML(Neste artigo estaremos focando o mtodo modify()).
Por outro lado, se os dados esto armazenados em estrutura relacional, mas processados como XML, pode-se usar FOR XML
ou SQLXML.
A linguagem XQUERY no oferece palavras-chave para manipulao de dados, mas a Microsoft estendeu as capacidades da
XQUERY no SQL Server 2005 incluindo um conjunto de instrues para que o desenvolvedor possa adicionar atualizar e apagar
dados XML (XML DML = Data Manipulation Language).

O mtodo Modify() recebe um nico parmetro de entrada que obriga a validao XML DML e executa no XML.

Exemplo para remover empregados com cdigos 1, 2 e 3 dos seus respectivos departamentos (7, 4, 1) usando a palavra-chave
delete:

Set @a.modify(delete /Deptos/Depto[@id=7] /Funcionarios/Func[@id=1]


Set @a.modify(delete /Deptos/Depto[@id=4] /Funcionarios/Func[@id=2]
Set @a.modify(delete /Deptos/Depto[@id=1] /Funcionarios/Func[@id=3]

Existem trs palavras-chave no XML DML definidas pelo SQL Server 2005: Insert, replace value of e delete.

Como usar o mtodo modify() no T-SQL UPDATE?

update text in the first manufacturing step SET @myDoc.modify(' replace value of (/Root/Location/step[1]/text())[1] with "new
text describing the manu step" ')

Exemplos:
USE CodificandoXML
GO
UPDATE UniversalLog
SET LogRecord.modify('
insert <information flag="custom"><message>SQL Server service is starting</message></information>
into logRecord[1]')
WHERE ApplicationName = 'SalesApp'
27 Coluna: Desvendando o SQL Server
UPDATE UniversalLog
SET LogRecord.modify('
replace value of (logRecord/information/message)[1]
with "Not enough memory"')
WHERE ApplicationName = 'HoursReport'

UPDATE UniversalLog
SET LogRecord.modify('
delete logRecord/post')
SQL SERVER

WHERE ApplicationName = 'CustomerService'

SELECT * FROM UniversalLog

Criando ndices XML

Voc pode criar ndices XML usando a mesma definio do Transact SQL para criar ndices relacionais. A sintaxe para criar um
ndice primrio XML segue abaixo:

CREATE PRIMARY XML INDEX Index_Identifier


ON table_name (XML_typed_column_name);

Podem-se criar ndices secundrios sendo que, para este tipo de ndice, existem 3 tipos distintos:
PATH, VALUE e PROPERTY.

Sintaxe para ndice secundrio PATH XML:


CREATE XML INDEX Secondary_Index_Identifier ON table_name (XML_typed_column_name);
USING XML INDEX Primary_Index_Identifier FOR PATH

Sintaxe para ndice secundrio VALUE XML:


CREATE XML INDEX Secondary_Index_Identifier ON table_name (XML_typed_column_name);
USING XML INDEX Primary_Index_Identifier FOR VALUE

Sintaxe para ndice secundrio PROPERTY XML:


CREATE XML INDEX Secondary_Index_Identifier ON table_name (XML_typed_column_name);
USING XML INDEX Primary_Index_Identifier FOR PROPERTY

Por enquanto ficaremos por aqui finalizando os estudos de XML e SQL Server 2005. Preparem-se, a viagem promete! Na prxi-
ma edio estarei apresentando algumas novas funcionalidades do SQL Server 2008.

Alexandre Lopes atua como consultor especialista em SQL Server em projetos da Y2K-TI (http://www.y2k-ti.com.br).
Possui mais de 10 anos de experincia na rea de TI, sendo certificado Microsoft com os ttulos MCT, MCSE e MCDBA. Como
instrutor MCT (Microsoft Certified Trainer) possui cerca de 4.200 horas ministrando treinamento oficial Microsoft.
29

Cinema
MEU NOME NO
JOHNNY

http://www.meunomenaoejohnnyfilme.com.br/

O cinema brasileiro mais uma vez nos contempla com um anti-heri com cara de
mocinho. Na realidade Johnny, ou melhor, Joo Guilherme Estrella, o heri do fil-
me. A maioria de ns torce por seu triunfo; chora por suas angstias, se emociona
com a sua trajetria.
Meu Nome No Johnny eleva ainda mais o nvel do cinema brasileiro, chegando ao
patamar dos grandes filmes europeus. Mas o objetivo aqui no fazer comparativos,
seja com o belssimo mercado europeu ou com a bilionria fbrica de cinema holly-
woodiana.
A produtora Mariza Leo deu a tacada certa na escolha do elenco, colocando a frente,
Selton Mello no papel do carismtico Johnny, Julia Lemmertz como me do protago-
nista e tambm a doidinha Clo Pires, inspirao e perdio do nosso heri.
Mariza apostou forte no diretor Mauro Lima, que at ento fez seus melhores traba-
lhos na msica, produzindo e dirigindo bons vdeo-clipes e assinando alguns arranjos musicais. Mauro mandou bem na dinmica dos dilogos.

Ok, nobres, como de costume, chega de ladainha e vamos pra pancada: anlise do filme!
O que iiiiissso, vei? Que filme esse? Alucinante, empolgante, vi, me fala a!?. Essa prola saiu de
um brother, que prefiro manter annimo, mas que retrata o sentimento de quem assiste ao filme.
Johhny, um playboy de classe mdia-alta, adorado pelos pais e muito popular entre os amigos, vive sempre
acelerado, bom anfitrio das festas promovidas que ocorrem em sua manso. Consumindo uma droguinha
aqui, outra ali, mas nada pra deix-lo doido, at que v uma excelente oportunidade de negcio naquele
movimento todo. Compra uma pequena quantidade e revende. Lucro certo. Aumenta o volume de com-
pra e melhora o nvel das festas. O dinheiro entra e sai muito fcil da mo de Johnny.
Numa das festanas conhece Sofia, interpretada por Clo Pires, e tem um romance avassalador. Numa
grande transao, Johnny vai torrar seu dinheiro na Europa, com sua doce amada.
Cenas dramticas se misturam com momentos hilrios e por que no dizer impagveis, como a chegada de um novo chefe na priso. O novo big boss,
interpretado por Luis Miranda (da trupe do Sob Nova Direo) chega pilhado pedindo Meque Donud, meque nugutis e outras iguarias com sua gria
hilariante. dele tambm um dos momentos mais engraados do filme, quando Johnny forado a traduzir um dilogo entre brasileiros e africanos.
Cssia Kiss, tambm tem uma atuao interessante no papel de juza. Ela consegue transmitir um forte sentimento de angstia, momentos de reflexo e
muita energia. Fique atento ao postal enviado pela juza. No perca tempo. V contemplar o cinema nacional com esse bom filme. Altamente recomenda-
do.

Emerson Facunte - Curtindo sua fase de filmes nacionais


30 Blogs, Foruns e Links

Blogs:
Alexandre Tarifa: http://blogs.vstsrocks.com.br/alexandretarifa/default.aspx
Emerson Facunte: http://www.facunte.com.br
Diego Nogare: http://www.diegonogare.net

Frum (Endereos para Entrar no Grupo):

Codificando .NET: codificandodotnet-subscribe@yahoogrupos.com.br


XNA-BR: xna-br-subscribe@yahoogrupos.com.br

Sites Recomendados:
Visual Studio 2008: http://msdn2.microsoft.com/en-us/vstudio/aa700830.aspx
SQL Server CTP: http://www.microsoft.com/sqlserver/2008/en/us/trial-software.aspx
31
.Close()
Windows Forms... tambm conhecida de Desktop, winforms, client, aplicaozinha que se instala, etc... um tipo de aplicao utiliza-
do a alguns anos (desde a era VB) em muitas empresas como padro de interface de aplicaes. Como todas as outras tecnologias
sofreu muitas alteraes durante esses anos, e dentro da plataforma .Net foi incorporada oficialmente como Windows Application e
a verso mais recente a 2.0.
Muitas pessoas dizem que seria o fim das aplicaes Windows Forms com o domnio das aplicaes web... que domnio? Enfim, nin-
gum pode negar que desenvolver uma aplicao Windows Forms muito mais produtivo do que uma aplicao web... mas tudo
bem, pouco importa se o desenvolvedor tem mais trabalho ou no... pensando no cliente... uma aplicao Windows Forms tambm
oferece uma produtividade MUITO superior... e no venham me dizer que os frameworks AJAX da vida oferece uma produtividade
semelhante que IMPOSSVEL.
Tecnicamente a justificativa simples: Windows Forms todo o poder do computador do cliente. Web todo o poder (pouco) do
Browser.
Agora, se pensarmos em distribuio, inegvel tambm que muito mais simples distribuir uma aplicao Web... mesmo com re-
cursos novos como o Click Once, que utiliza Web para distribuir... podemos dizer que Web tem uma vantagem boa.
Porm, como grandes partes das aplicaes Windows Forms so feitas como soluo para ambientes coorporativos, ai o cenrio
muda... distribuir Windows Forms fica to fcil como uma aplicao Web.
Acredito que a morte do Windows Forms no viria devido s aplicaes Web.
Finalizado essa discusso agora entra a briga mais acirrada. A Microsoft lanou recentemente as aplicaes WPF (Windows Presenta-
tion Foundation) que uma revoluo do Windows Forms com um ambiente grfico mais rico (3D) oferecendo recursos de interfa-
ce realmente muito ricos... mais ricos do que Windows forms.
Fazendo uma comparao boba: Asp.Net Classe mdia, Windows Forms Classe Alta e WPF Milionrios.
Porm tudo tem um custo. Hoje ainda, mesmo com o Visual Studio 2008, muito mais produtivo desenvolver uma aplicao Win-
dows Forms... so mais de 10 anos de maturidade e ferramentas evoluindo.
Ainda sim, muitas aplicaes vo ser feitas em WPF. Principais razes: Modismo, vo dizer por ai que legal e algumas realmente por
necessitar dos recursos sensacionais do WPF.
Agora, aplicaes comerciais... faturamento, contas a pagar, BI, folha de pagamento, etc etc etc... no existe a menor razo para isso.

Alexandre Tarifa MVP Visual Developer Visual Basic .Net, bacharel/ps graduado em Cincia da Computao, trabalha em
diversos projetos. Tem participado de diversos projetos que comeam como Web e terminam com Smart Client.
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