Академический Документы
Профессиональный Документы
Культура Документы
Net
#1
360 S PARTA
THIS IS XNA EXPRESS NUMERO 2 ANO I
B IZTALK
B IZ. TALKING
DESENVOLVIMENTO WEB
CONHEÇA O S ILVERLIGHT
Codificando Net
e-magazine
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
Entrevista 5
SQL 2008 8 Mais de 3500 downloads! Este é o resultado da primeira edição da revista Codificando e-Magazine. Na
minha opinião um número muito interessante pois mostra que a comunidade .Net realmente é muito
forte. A idéia inicial da revista era ter 1.000 downloads.
Coluna: XNA 10
Esse número nos proporciona um problema: Como manter ou aumentar este número? Este desafio já
Coluna: 12 está lançado com a segunda edição da revista que conta com um número superior de colunas e artigos...
BizTalk.ing Espero que o resultado seja positivo.
Coluna de 15
Qualidade Nesta edição temos a estréia de dois colunistas: JALF falando sobre Mobilidade e Andrey Sanches sobre
desenvolvimento Web, uma grande dupla que enriquece ainda mais o nosso conteúdo.
Coluna: 20
Point2Share
A qualidade da segunda edição está muito boa, assim como a primeira, mas vamos tentar evoluir cada vez
Coluna: Com- 23 mais, por isso o feedback da comunidade é tão importante... Qualquer sugestão mande para edi-
pact Place tor@codificandomagazine.net.
Coluna: 25
Acadêmico Teremos também nessa edição a estréia do nosso repórter Alfred Myers que de cara publica uma entre-
vista internacional com um funcionário da Microsoft que atua no time de C#... Leitura imperdível.
Coluna: Web 26
Myers, Marcelo
Gerra e Veronica.
PÁGINA 4
Entrevista - Marcelo Guerra
AM: Qual a visão da Microsoft sobre o AM: Você acha que o trabalho pela comuni-
ecossistema das comunidades? Vocês dade acaba criando novas oportunidades e
realmente as usam para ouvir os pedi- crescimento profissional?
dos e críticas quando planejam um pro- MG: Eu acho que trabalhar pela comunidade é pre-
duto? cioso. Ele te dá influência e conhecimento, ambos os
MG: Em minha opinião, estamos muito satis- quais são muito importantes para o teu crescimento
feitos com o engajamento, ajuda e feedback profissional. Se envolvendo em esforços da comuni-
que recebemos da comunidade. Um exemplo dade e se tornando um MVP, por exemplo, você
disto são os fóruns. Muitas vezes quando es- obtém muito conhecimento do que outras pessoas
tou tentando responder a uma questão, antes estão fazendo e o que está vindo de modo que você
de postar eu descubro que um MVP já respon- esteja preparado.
deu. É muito legal ver o nível de envolvimento AM: Nós temos comunidades bem fortes no
que os MVPs têm. Também foi muito interes- Brasil. Como é isto no Uruguai?
sante conhecê-los durante o último MVP Sum-
mit. Sem dúvida, nós escutamos o feedback da MG: O Uruguai é bem menor, então só temos um
comunidade especialmente o dado através de único grupo de usuários, mas o grupo é bem forte e
fóruns e o site Connect. Pode ser que você tem bastante suporte da Microsoft.
não veja o teu feedback na próxima versão do AM: Como você costuma contribuir para a
produto, mas sem dúvida ele é levado em comunidade?
conta. MG: Agora eu tenho contribuído mais respondendo
AM: Qual a sua experiência com comu- a perguntas nos fóruns. Eu gostaria muito de poder
nidades no Uruguai? me engajar mais com comunidades latino-americanas
MG: No Uruguai, eu era membro do GUU- e seus esforços. Sem dúvida eu gostaria de manter
NET (Grupo de Usuarios Uruguayos de .Net). contato com o Codificando .NET e outros grupos
Foi uma experiência bastante positiva. Tínha- de usuários que estejam interessados.
mos reuniões, compartilhávamos experiências
e também assistíamos a apresentações sobre
novas tecnologias.
Alexandre Tarifa - Olá Cezar, obrigado AT: Hoje existem diversas formas de colab-
por participar desta entrevista para a re- oração/trabalhos que as comunidades ofere-
vista Codificando e-Magazine. Falando cem. Quais tipos de trabalho você acha as mais
sobre comunidade, qual a importância da eficazes?
Comunidade em relação aos produtos e CG: Sinceramente acredito que todos sejam eficazes.
ferramentas de desenvolvimento na Mi- A diferença é a sua necessidade naquele momento ou
crosoft? o seu perfil. Os eventos são importantíssimos para
Cézar Guimarães: Olá e obrigado pelo convi- ficarmos antenados nas novidades e nas tecnologias
te para participar desta edição da Codificando e- recém lançadas. Os Fóruns oferecem uma maneira
Magazine. Falando sobre comunidades, a Micro- simples e rápida de conseguirmos ajuda para resolver
soft entende a importância das comunidades alguns problemas. Os blogs oferecem uma visão para
técnicas e procura apoiá-las com artigos disponí- onde as coisas estão caminhando e a nos dá o opor-
veis em sites como o MSDN e Technet, fóruns tunidade de termos discussões saudáveis sobre deter-
de discussão, eventos e apoio aos grupos de minados temas.
usuários.
Mas, para mim, o principal benefício dela está no AT: Você acredita que ainda existe alguma
seu próprio nome: “Comunidade”. Espera-se de forma de inovar estes trabalhos? Quais foram
uma comunidade a oportunidade de encontrar os trabalhos mais inovadores que você presen-
pessoas com o mesmo interesse e a partir daí, ciou no período em que trabalhou focado nes-
iniciar uma troca, onde você terá uma série de ta área?
benefícios e também oferecerá benefícios. Que
CG: Sempre existe possibilidade de inovar. O que o
benefícios são estes: troca de experiências, ajuda
Codificando está fazendo agora, lançando esta revista
para resolver problemas e até mesmo oportuni-
on-line, é um exemplo de inovação. Os brasileiros,
dades para a carreira, somente para citar alguns.
em geral, são muito criativos e os grupos estão sem-
Portanto quanto maior a comunidade e quanto pre propondo algo novo. A inovação não está apenas
mais pessoas com disposição de troca tivermos, em criar algo novo, mas muitas vezes está em fazer
mais profissionais experientes existirão e mais algo de maneira diferente. Neste respeito, destaco a
maduros serão os desenvolvedores brasileiros. maneira como os diversos grupos procuraram se unir
para fortalecer a comunidade brasileira, por exemplo,
fazendo eventos juntos. Também a maneira como os
AT: Uma grande questão apontada sob os
grupos apoiaram as iniciativas junto com o INETA e
desenvolvedores Microsoft está na qualida-
MSDN em roadshows pelo país.
de no desenvolvimento (codificação), você
acha que a participação dos desenvolvedo-
res na comunidade por facilitar a evolução AT: Mudando de assunto para a área técnica,
da qualidade? hoje a Microsoft investe muito no Silverlight.
CG: Com certeza sim. Como mencionei o obje- Você acha que em quanto tempo esta tecnolo-
tivo das comunidades é o benefício comum. E o gia estará madura para utilização em projetos
maior benefício que podemos ter nas comunida- reais e qual o impacto que isso pode causar no
des técnicas é o nosso próprio amadurecimento. desenvolvimento Web?
CG: Segundo o que foi anunciado no Remix 07 pelo
Celso Gomes no keynote, o Silverlight 1.0 está pre-
AT: Uma grande questão apontada sob os
visto para este ano (2007) ainda. Assim como aconte-
desenvolvedores Microsoft está na qualida-
ceu no ASP.NET AJAX (codenome “ATLAS”), ver-
de no desenvolvimento (codificação), você
sões de preview estão sendo disponibilizadas e já
acha que a participação dos desenvolvedo-
podem ser utilizadas. Isto permite que bastante feed-
res na comunidade por facilitar a evolução
back seja dado. E isto contribui bastante para o ama-
da qualidade?
durecimento da tecnologia. Eu acredito que este fator
CG: Com certeza sim. Como mencionei o obje- aliado aos benefícios da própria tecnologia farão que
tivo das comunidades é o benefício comum. E o ele tenha uma grande adoção. Em relação ao impac-
maior benefício que podemos ter nas comunida- to, quem já viu alguma demonstração dele já deve ter
des técnicas é o nosso próprio amadurecimento.
PÁGINA 6
Entrevista - Cezar Guimarães
ficado impressionado. Os efeitos que podem ser utilizar ou não determinado recurso. Neste ponto
feitos, unindo media, animação e dados é impres- entram as comunidades, grupos de usuários, revistas
sionante. O feedback que tenho recebido após técnicas e sites como o MSDN e os blogs.
as minhas palestras sobre desenvolvimento com
Silverlight, inclusive no Remix, é que será possí-
AT: Você mantém um blog dos mais atualiza-
vel fazer mais coisas com ele do que com as
dos da comunidade Microsoft, você acredita
tecnologias existentes e ainda por cima de uma
que a comunidade brasileira ainda não está
maneira mais simples. Imagine então com a ver-
100% adaptada a este tipo de material?
são 1.1 do Silverlight onde teremos .NET no
browser! CG: O que eu tenho sentido é que muitos desenvol-
vedores têm lido e acompanhado blogs brasileiros. O
que eu e alguns blogueiros com quem tenho conver-
AT: O Visual Studio 2008 (“Orcas”) já sado temos sentido falta é da participação nos blogs.
tem data prevista para lançamento, quais O blog é um excelente lugar para ocorrer uma dis-
são os grandes recursos em destaque que cussão sadia sobre determinado tema. Mesmo que
você aponta? este seja apenas uma notícia ou um pedaço de código.
CG: Ainda não tenho a data oficial do lançamen- Os blogs no exterior recebem dezenas de comentá-
to. Com certeza as novidades são grandes, inclu- rios por post, mas infelizmente ainda não temos isto
indo novidades no framework e funcionalidades no Brasil. Não nos blogs técnicos de tecnologias Mi-
na ferramenta para aumentar a nossa produtivi- crosoft. Pelo menos, não nos que eu acompanho.
dade. A grande novidade no framework para Mas, acredito que com o tempo isto mudará. Temos
mim é o LINQ. Com ele será possível não ape- tido muitas discussões interessantes sobre este tema
nas ter o mapeamento objeto relacional, como nas últimas semanas em diversos destes blogs.
também realizar queries em qualquer coleção de
objetos. Para os desenvolvedores web as novida-
AT: Você mantém um blog dos mais atualiza-
des são muitas: melhorias para a criação e manu-
dos da comunidade Microsoft, você acredita
tenção de estilos, integração do ASP.NET como
que a comunidade brasileira ainda não está
Silverlight de uma maneira muito simples. Mas, a
100% adaptada a este tipo de material?
que mais me chama a atenção e o intellisense de
javascript e o debug integrado na ferramenta. CG: O que eu tenho sentido é que muitos desenvol-
vedores têm lido e acompanhado blogs brasileiros. O
que eu e alguns blogueiros com quem tenho conver-
AT: Qual a sua opinião sobre a qualidade/ sado temos sentido falta é da participação nos blogs.
conhecimento dos desenvolvedores no O blog é um excelente lugar para ocorrer uma dis-
Brasil? Você acha que estamos bem posi- cussão sadia sobre determinado tema. Mesmo que
cionados em relação a outros países? este seja apenas uma notícia ou um pedaço de código.
CG: Eu acho que a qualidade dos desenvolvedo- Os blogs no exterior recebem dezenas de comentá-
res brasileiros em geral é boa. Temos muito rios por post, mas infelizmente ainda não temos isto
reconhecimento no exterior. Diversas empresas no Brasil. Não nos blogs técnicos de tecnologias Mi-
estrangeiras buscam desenvolvedores diretamen- crosoft. Pelo menos, não nos que eu acompanho.
te aqui e os levam para os seus países. Isto é um Mas, acredito que com o tempo isto mudará. Temos
bom sinal. Entretanto ainda existe campo para tido muitas discussões interessantes sobre este tema
melhora. Principalmente os que estão começan- nas últimas semanas em diversos destes blogs.
do. Estes devem ser ávidos em obter mais co-
nhecimento. Entender não somente o básico,
mas o que há por de trás para que com o tempo
saibam tomar as decisões corretas de quando
O SQL Server 2008 será a próxima versão da família Microsoft SQL Server. É fornecida uma plataforma de comunicação de dados ainda mais completa, se-
gura, confiável, gerenciável e escalonável para suas aplicações. Permitindo aos desenvolvedores criem aplicações de nova geração, que poderão armazenar e
consumir qualquer tipo de dado em qualquer dispositivo e ainda, melhora a tomada de decisões de funcionários e analistas através de maior percepção dos
negócios utilizando a plataforma e as ferramentas de BI (Business Intelligence) do SQL Server 2008. Foram abordados e detalhados alguns tópicos interessan-
tes desta nova versão.
O SQL Server 2008 trabalha nas quatro grandes áreas chaves da plataforma de visão de dados.
Plataforma de Missão Crítica: O SQL Server 2008 permite que grupos de TI trabalhem com mais produtividade, oferecendo maior segurança, escalabili-
dade e plataforma de gerenciamento. Isso inclui uma nova política baseada no Framework, que permite gerenciamento por Scripts e gerenciamento por
Regras. O SQL Server 2008 também protege os valores das informações em aplicações existentes e dispositivos desconectados.
Desenvolvimento Dinâmico: O SQL Server 2008, juntamente com o .NET Framework permite aos desenvolvedores criar soluções nos padrões da nova
geração de aplicativos. Os desenvolvedores terão mais produtividade, pois trabalharão com as entidades de negócios diretamente em tabelas e colunas.
Armazenamento de Dados: O SQL Server 2008 permite que desenvolvedores consumam e armazenem qualquer tipo de dados, desde arquivos XML a
documentos diversos.
Compreendendo a persistência de negócios: O SQL Server 2008 disponibiliza uma infra-estrutura flexível que permite o gerenciamento de relatórios
e análises, de qualquer complexidade ou tamanho ao mesmo tempo. Isso é possível para os usuários, porque o SQL Server 2008 é integrado com o Micro-
soft Office System.
Acelerando seu desenvolvimento com Entidades
Uma tendência comum de desenvolvedores que trabalham com banco de dados é, quando vão interagir os dados com o banco, frequentemente definem
altos níveis de detalhamento para os objetos de negócios que mapearão. No SQL Server 2008, melhor que escrever a lógica da aplicação desta forma
(trabalhando com tabelas e linhas), os desenvolvedores utilizarão entidades, como “Funcionário” ou “Cliente”. O ADO .NET Entity Framework possibilita ao
desenvolvedor programar similarmente a dados relacionais, os dados de suas entidades. Ao se programar neste elevado nível, a produtividade é incrivelmen-
te elevada e permite que os desenvolvedores utilizem modelagem direcional de Entidade-Relacionamento.
Language Integrated Query (LINQ): Permite desenvolvedores editarem Queries contra os dados, trabalhando em sua linguagem de programação instan-
ciando o SQL. Este recurso garante continuidade, dados fortemente tipados, ajuste orientado a Queries em C# ou VB quando conectados ao ADO .NET
Stack (SqlClient), ADO .NET DataSet e ao provider Entity Data Service Mapping.
PÁGINA 9
Artigo: Novidades do SQL Server 2008
Serviços de Objetos do ADO .NET: A camada de serviços de objetos do ADO .NET Stack permite materializa-
ção, garante a mudança e persistem os dados como objetos da Common Language Runtime (CLR). Desenvolvedo-
res que utilizam o ADO .NET Framework podem programar o banco usando objetos da CLR que sejam gerencia-
dos pelo ADO .NET. O SQL Server 2008 introduz maior eficiência, otimização do suporte que melhora a desempe-
nho e simplifica o desenvolvimento.
Armazenamento de qualquer tipo de dados
O SQL Server 2008 possui uma transição continua entre dados relacionais e não relacionais. Possibilitando aos
usuários acessarem e simularem documentos como sendo dadas, hierarquias complexas com XML, e queries utili-
zando relacionamentos e dados de textos.
Dados de FileStream: O objeto FileStream do SQL Server permite armazenamento de grande quantidade de
dados binários, contudo, mantém partes integrais do banco utilizando consistências transacionais. Isto permite em
larga escala, o gerenciamento do banco de dados e do armazenamento, um maior custo-benefício em armazena-
mento e “File Systems”.
Procura integrada com o Full-Text: A procura integrada cria uma transição entre a procura de textos e dados
relacionais, enquanto permitem usuários utilizarem índices nos textos para melhorar a performance da procura em
colunas com grande quantidade de texto.
Colunas escassas: Permitem aos usuários armazenarem modelo de objetos em dados relacionados sem submeter
-se a grande custo de armazenamento. Ele também permite os usuários gerenciarem completamente as aplicações,
submetendo o armazenamento do banco.
Tipo grande definido pelo usuário: É permitido a usuários criar tipos definidos grandes, expandindo o tamanho
máximo definido aos tipos de dados, eliminando o limite de 8kb.
O programa para avaliar o "SQL Server 2008 CTP" teve seu Início em 21/05/2007 e terminará em 30/06/2008. De-
ve ser feita a inscrição no projeto, antes de fazer o download.
Em minhas palestras sobre XNA muitos duvidam do poder da ferramenta e questionam se é possível desenvolver jogos profissionais. A versão
gratuita da ferramenta (XNA Game Studio Express) foi disponibilizada com objetivos acadêmicos e para o desenvolvimento de jogos casuais,
no entanto algumas produtoras de games já utilizam a versão profissional (ainda não disponível no mercado até o fechamento desta edição –
27/6/07) e estão produzindo games de “responsa”.
Particularmente tenho acompanhado o desenvolvimento de HUXLEY, um game absurdamente animal, que utiliza a mais poderosa engine do
mercado: UNREAL 3, e inova ao dar suporte a cerca de 200 jogadores online. Antes que me corrijam, sei que existem diversos MMOs
(Massively Multiplayer Online), mas MMOFPs (Massively Multiplayer Online First Person Shooting) com 200 jogadores é o primeiro!
Bem, como imagens valem mais do que mil palavras, vibrem com o primeiro lote:
PÁGINA 11
Para conhecer melhor o projeto e apreciar novas imagens, basta acessar o site:
http://www.webzengames.com/Game/Huxley/default.asp
Voltando ao mundo real, aquele habitado por pobres mortais, sonhadores e afins, o XNA fornece inúmeros recursos para o desenvolvimento
de diferentes tipos e qualidades de games.
O maior inimigo para o desenvolver um bom game é o fator motivacional. Muitos imaginam que é só apertar uma seqüência de botões NEXT
e por fim o FINISH, e voilà, o game sai prontinho do forno, numa caixa e vai direto pra prateleira das lojas.
Jovens Spartanos, comecem por baixo, desenvolvendo pequenos jogos casuais, entendendo e ampliando os horizontes computacionais, estude
física, leia bons livros de aventuras, monte um roteiro e crie o seu primeiro game “ridículo” (no bom sentido, é claro).
Bons ventos!
O material indicado acima serve muito bem para o pesso- È importante salientar que esses treinamentos tratam
al autodidata que está acostumado a estudar sozinho. apenas do básico sobre o produto. Como todas as
Para quem tem dificuldade com Self Learning, a opção são novas tecnologias (ou como tudo na vida) é necessá-
os treinamentos oficiais do produto. rio, posteriormente, de estudo aprofundado no pro-
duto (e também sobre o assunto). Além de estudo
Para o BizTalk Server 2006 temos disponíveis dois cursos adicional de “produtos” correlacionados. Falaremos
oficiais: sobre isso em outra oportunidade.
- 2933 – Developing Business Process and Integration
Solutions Using Microsoft BizTalk Server 2006 – 5 dias.
Até a próxima !!!
- 2934 – Deploying and Managing Business Process and
Integration Solutions Using MS BizTalk Server 2006 – 2
dias.
using System;
using Exemplo1;
namespace ConsoleApplication1
Qualidade
{
class Program
{
static void Main(string[] args)
{
DescontoFrete desconto = new DescontoFrete();
if (desconto.calcular("Cliente1") == 0.15)
Console.WriteLine("Desconto OURO - OK");
else
Console.WriteLine("Desconto OURO - ERRO");
if (desconto.calcular("Cliente2") == 0.1)
Console.WriteLine("Desconto PRATA - OK");
else
Console.WriteLine("Desconto PRATA - ERRO");
if (desconto.calcular("Cliente3") == 0.05)
Console.WriteLine("Desconto BRONZE - OK");
else
Console.WriteLine("Desconto BRONZE - ERRO");
if (desconto.calcular("Cliente4") == 0)
Console.WriteLine("Sem Desconto - OK");
else
Console.WriteLine("Sem Desconto - ERRO");
}
}
}
Como você pode ver, é perfeitamente possível criar um programa para testar esse código. Ao invés de manualmente
acessar o site com perfis diferentes e analisar qual é o desconto aplicado, o nosso console application executa todos os
caminhos possíveis do código e cria mensagens de acordo com o resultado.
No entanto, na prática, não é tão simples assim. O grande problema desse tipo de código é que ele depende do banco de
dados estar sempre consistente para os clientes Cliente1, Cliente2, Cliente3, Cliente4. Já que se outro desenvolvedor
realizar uma compra para qualquer um destes clientes pode afetar a execução do código de testes.
Por exemplo, imagine que o cliente Cliente2 já tenha comprado 20 produtos, logo ele é um cliente “PRATA”, e o código
de testes exibe corretamente a mensagem "Desconto PRATA - OK". Mas outro desenvolvedor que está trabalhando na
funcionalidade de carrinho de compras estava utilizando o Cliente2 para testes e realizou uma compra. Na próxima vez
que você executar o código de testes a mensagem será “Desconto PRATA - ERRO", já que o desconto aplicado para esse
cliente será de 20% (Cliente “OURO”) e não mais de 15%. O código está correto, mas como os dados foram modificados
o resultado esperado não é mais o mesmo.
Devido a esse tipo de problema é que quase a totalidade de códigos de testes desenvolvidos é descartável.
Depois de alguns dias os parâmetros de entrada já não valem nada e compensa mais criar outro programa de testes ou
trocar os parâmetros. Claramente é necessário outro tipo de abordagem.
PÁGINA 17
Coluna: Coluna de Qualidade
Se você tem alguma experiência com orientação a objetos pode perceber que a causa de todo o problema está no fato
que a classe DescontoFrete tem 2 responsabilidades: ela é uma classe que calcula o desconto de frete a acessa o banco
de dados! Esse compartilhamento de responsabilidade é um dos maiores fatores que dificultam a manutenção de código.
Vamos então reorganizar o código dessa classe para que ela tenha apenas uma responsabilidade. O primeiro passo é criar
uma nova classe com o código de acesso a dados:
{
int result = 0;
using (SqlConnection conn = new SqlConnection("..."))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand())
{
cmd.CommandText = "SELECT COUNT(*) FROM Vendas WHERE
CodCliente=@CodCliente";
cmd.Parameters.Add(new SqlParameter("@CodCliente",
codigoCliente));
cmd.Connection = conn;
SqlDataReader reader = cmd.ExecuteReader();
if (reader.Read())
{
result = reader.GetInt32(0);
}
}
}
return result;
}
}
Em seguida podemos alterar a classe DescontoFrete para chamar a nova classe DescontoFreteDB:
O que acontece é que uma vez que eu defino um contrato para conversar com a classe DescontoFreteDB eu passo a ter
a opção de substituí-la (se de repente eu necessitar acessar o número de compras em outro sistema de banco de dados
como Oracle) ou criar cópias desta classe apenas para propósitos de testes. Como a classe abaixo:
Essa classe que serve apenas para retornar valores fixos é a solução para os problemas de testes da classe DescontoFrete!
Observe abaixo:
public class DescontoFrete
{
E o código de testes:
class Program
{
static void Main(string[] args)
{
DescontoFrete desconto = new DescontoFrete();
desconto.DescontoDB = new DescontoFreteDBFalso();
if (desconto.calcular("Cliente1") == 0.15)
Console.WriteLine("Desconto OURO - OK");
else
Console.WriteLine("Desconto OURO - ERRO");
if (desconto.calcular("Cliente2") == 0.1)
Console.WriteLine("Desconto PRATA - OK");
else
Console.WriteLine("Desconto PRATA - ERRO");
if (desconto.calcular("Cliente3") == 0.05)
Console.WriteLine("Desconto BRONZE - OK");
else
Console.WriteLine("Desconto BRONZE - ERRO");
if (desconto.calcular("Cliente4") == 0)
Console.WriteLine("Sem Desconto - OK");
else
Console.WriteLine("Sem Desconto - ERRO");
}
}
Desse modo a classe DescontoFrete por padrão utiliza a classe DescontoFreteDB verdadeira, que realmente acessa o
banco de dados. Mas que eu desejo testar apenas o cálculo de desconto posso utilizar a propriedade DescontoFre-
te.DescontoDB para inserir qualquer classe que implemente a interface IDescontoFreteDB.
A flexibilidade ganha com esse tipo de construção é muito útil. O tratamento de erro dos nossos códigos quase nunca é
testado adequadamente porque é complexo gerar uma exceção como “Banco de dados indisponível” sem atrapalhar o
desenvolvimento dos outros membros da equipe, mas com essa construção somente seria necessário criar uma classe
que implemente IDescontoFreteDB e lance a exceção desejada, sem que seja preciso parar serviços ou forçar situações
no código verdadeiro.
Desenvolver desta maneira é uma grande mudança de paradigma para a maioria dos desenvolvedores, mas é um caminho
que leva a melhora consistente da qualidade dos códigos e permite que nós nos concentremos mais na criação de novas
funcionalidades que no “debug” de problemas.
Esta arquitetura evolutiva e de dependência dos produtos acima citados é de extrema importância, pois a suportabilidade
à ambientes críticos - performance, alta-disponibilidade e confiabilidade - é automaticamente dependente de sua arquite-
tura-base – sendo neste caso, itens automaticamente endereçados pela robustez da plataforma Windows Server 2003 e
SQL Server 2005.
Além da consistência, a presença do ASP.Net 2.0 faz com que os desenvolvedores de aplicações-clássicas web possam
visualizar com bons olhos esta nova plataforma de serviços e, através do seu modelo de extensibilidade, compor soluções
de forma rápida – necessitando trabalhar com uma pequena curva de aprendizado frente ao modelo e a forma de custo-
mização das tecnologias Sharepoint.
Esta primeira sessão tem como objetivo introduzir os princípios básicos da ferramenta, sendo uma plataforma de serviços
a serem consumidos por nossas implementações corporativas. Novamente, gostaria de ressaltar que o modelo de custo-
mização das tecnologias Sharepoint é muito abrangente, completo e funcional – sendo esta a sua principal característica
para tornar-se uma plataforma de desenvolvimento, e não mais uma simples solução para a criação de portais corporati-
vos.
PÁGINA 21
Coluna: Point2Share
Outrora, produtos completos tornam-se, invariavelmente, complexos e também confusos – sendo praticamente impossí-
vel extrair o máximo das ferramentas dada a sua baixa produtividade e dificuldade em compor soluções (desde as mais
simples, até as mais complexas e robustas).
Point2Share
As tecnologias Sharepoint mitigam esses problemas tendo como princípio uma grande biblioteca de funcionalidades e
características customizáveis. Isso faz com que grande parte das soluções sejam entregues sem a necessidade de
“codificar”. Temos que desvincular os conceitos de “CUSTOMIZAR” com “CODIFICAR”, tornando o trabalho mais pro-
dutivo e, caso necessário, aberto à codificações e novas implementações com interfaces e características-base mais com-
plexas.
Neste ponto, podemos pensar nas seguintes conclusões:
“Uma plataforma grande, completa e bastante complexa, porém de fácil utilização.”
“Apesar da facilidade na utilização, temos um framework de extensibilidade e customização muito abrangente.”
(Customizando o sharepoint conseguimos compor rapidamente soluções funcionais e consistentes, extendendo-o através de
programação, “o céu é o limite!!!”)
Ou seja, utilizamos uma plataforma de serviços de forma fácil e simples (inacreditável???); e tal simplicidade não faz com
que o produto seja limitado (inacreditável novamente???) – disponibilizando modelos de extensibilidade e customização
baseados no .Net Framework 2.0.
Este já é um dos pontos de compatibilidade da infra-estrutura de serviços porporcionados pelo Sharepoint e o .Net Fra-
mework 2.0.
Figura 4. Área de atuação estrutural da Master Page. Figura 5. Detalhamento dos controles
presentes na Master Page.
PÁGINA 22
Coluna: Point2Share
Na figura 4 podemos visualizar, a partir do destaque visual, as áreas definidas e gerenciadas a partir da Master Page. Ou
seja, estamos visualizando a página Default.aspx que esta utilizando a master page Default.master; contemplando basica-
mente toda a sua definição de topo estrutural do site e a navegação lateral.
Point2Share
Na figura 5, visualizamos a composição da Master Page – através da disposição dos controles responsáveis por cada pon-
to estrutural da página, resultando em funcionalidades e muitas vezes características visuais.
Com o entendimento desta estrutura, podemos facilmente modificar estas Master Pages para modificar os mais diversos
controles presentes em nosso portal. Outro ponto importante que vale ser ressaltado é a facilidade na mudança de la-
yout´s – que pode ser realizada através de ferramentas proprietárias e específicas para a integração com as tecnologias
Sharepoint, tal como o Office Sharepoint Designer 2007 (parte integrante do Office System 2007) ou outras ferramentas
tais como Visual Studio .Net 2005.
Vejam abaixo alguns exemplos do nosso site, modificando somente a Master Page.
Bom pessoal, o intuito deste nosso segundo bate-papo foi introduzir mais alguns conceitos com relação às tecnologias
Sharepoint, já com abordagens técnicas. Como diria um amigo meu: “Sigamos conversando ...” e espero que vocês estejam
gostando ....
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 23
Coluna: Como o mundo da voltas...
Olá amigos,
Como estréia desta coluna, tive a idéia de não abordar nenhum assunto realmente técnico (iremos abordar isso nas
próximas edições com certeza!), mas sim abordar um tema que acredito seja essencial para qualquer desenvolvedor
sério de mobilidade. A questão das plataformas – E acho que a pequena história a seguir ilustra um pouco sobre isso.
Recentemente tive a felicidade de re-encontrar um antigo amigo dos tempos de PalmOS. Na época éramos entusias-
COMPACT PLACE
tas do PalmIII e éramos fascinados com suas possibilidades e achávamos que aquela seria a plataforma que dominaria
todo o mundo devido a sua simplicidade e inovação. Em nossa desculpa tenho que dizer que éramos adolescentes e
conseqüentemente idiotas.
Era a época onde nós, recém formados, juntávamos nossos minguados salários para mandar buscar nos EUA essas
pequenas maravilhas a preço de ouro. Ficávamos fascinados como aquelas coisinhas eram versáteis e imaginávamos
como podíamos ter ficado tanto tempo sem um Palm em nossas vidas.
Tudo corria bem até 1999. Eu estava lá feliz com o meu PalmV até que vi as especificações do novo sistema opera-
cional PocketPC 2000, da Microsoft. Era praticamente um S.O. "de verdade", da forma como eu, desenvolvedor de
software, esperava de um sistema operacional. Aquilo fez meus olhos brilharem.
Falei isso com meu colega e ele falou que jamais a Microsoft iria ocupar o espaço do PalmOS, eles não tinha experi-
ência no segmento, não tinham dispositivos decentes, não tinham software. Não tinha nada.
Não sei se meu colega estava um pouco ofuscado pela nossa paixão pelo Palm, mas eu não via as coisas dessa manei-
ra. Sim, o PocketPC não tinha nada disso que ele falou, mas ele tinha uma coisa que o PalmOS nunca teve. O Poc-
ketPC era uma plataforma. Um verdadeiro sistema operacional, da forma como conhecemos um, para PDA's. Isso
me acendeu uma luz amarela sobre o futuro do PalmOS naquela época.
No ano seguinte, decidi ir contra todos os meus princípios e comprei um iPaq 3600, rodando o novíssimo PocketPC
2000. Era um tijolão na época de dispositivos pequenos, como o meu PalmV. Eu o mostrava entusiasmado para as
pessoas e elas só comentavam: "que tijolo! Cadê o PalmV?!". Mostrei para meu colega e ele me falou: "Você vai bater em
mim com isso?!!" . Nunca esqueci.
Aparentemente eu olhava para o tijolão (err, iPaq) com olhos diferentes. Onde alguns viam um grande PDA comedor
de espaço e de bateria eu via um sistema operacional concebido para o futuro, com recursos bastante eficientes de
escalonamento de processos, alocação de memória e gerenciamento de drivers de dispositivo. Pela primeira vez eu vi
que o futuro estaria destinado ao então PocketPC 2000.
Essa foi uma época muito estranha. A maioria dos meus amigos PDA-zeiros tinha Palm. 99.99% da "imprensa especia-
lizada" só viam o iPaq (e os outros modelos com PocketPC 2000 da época) como um tijolão. A maioria dos sites,
blogs, fórums e formadores de opinião só viam o tijolão. Será que eles não enxergavam que o que importava não era
o tijolão mas sim o sistema operacional?
E olha que o PocketPC 2000 tinha problemas. E muitos. Mas menos que seu antecessor, o tosco Windows CE, do
qual todos nós riamos em conversas no bar. Mas eu sabia que os problemas do PocketPC 2000 eram coisas simples
de resolver, poderiam ser feitas com pequenas modificações nas camadas superiores do software. Eu via que o pro-
blema do PalmOS era mais profundo, baseadas em soluções simplistas, e a Palm na época não via essa "simplicidade"
do PalmOS como um problema. Foi um erro fatal.
A comunidade de PocketPC na época era mais ou menos como um gueto judeu durante a segunda guerra. Éramos
esquecidos em nossas próprias listas de discussão e passávamos ao largo de calorosas discussões sobre plataformas
que aconteciam nos fóruns em todo mundo, a maioria criada por usuários de Palm para criticar a escolha "estúpida"
de adotar qualquer PDA que não rodasse o PalmOS. Preferíamos ficar calados, sempre tirando dúvidas de usuários
PalmOS que analisavam as plataformas munidos de razão e não de paixão. Atraíamos esses usuários para o chamado
"lado negro", que chamávamos de "luz". Eram tempos divertidos aqueles.
PÁGINA 24
Coluna: Como o mundo da voltas...
Menos meu colega. Não conseguia entrar na cabeça dele a importância do sistema operacional num PDA. Para ele,
PDA era hardware e o sistema operacional uma coisa menor, apenas um acessório do hardware, nada mais.
Era meados de 2002 e eu agora um feliz possuidor de um Casio E-200 rodando o novíssimo PocketPC 2002 e ele
com um super PDA Sony NX80 rodando PalmOS. Não adiantava eu lhe mostrar os recursos do E-200,como o slot
CF e o suporte a drivers permitia que eu tivesse placas de wi-fi,GPS,TV, etc.. Para ele nada interessava. O look-and-fell
do NX80 era imbatível.
COMPACT PLACE
Por coisas do destino, nos separamos e ficamos alguns anos sem nos comunicar. Durante esse período vimos o mer-
cado mudar de rumo. A Microsoft lançou o Windows Mobile 2003, depois o Windows Mobile 2003SE e o atual
Windows Mobile 5.0. Muitos devices passaram. A Palm se dividiu. A sony saiu do mercado de PDA's. A quantidade
de fabricantes de devices com Windows Mobile cresceu.
Durante esse período, principalmente em 2004, houve uma verdadeira "debandada" de usuários PalmOS para o Win-
dows Mobile, principalmente devido a redução de tamanho dos até então "tijolões" e a total inércia da então Palm-
Source na condução dO PalmOS.
Aparentemente, a equalização do tamanho dos dispositivos fez saltar aos olhos dos usuários do PalmOS como sua
plataforma era limitada. A comunidade PocketPC agora saia dos guetos e gritava em alto e bom som que seus dispo-
sitivos tinham wi-fi, bluetooth, MP3, multitarefa, desde 2000! Os usuários de PalmOS ficavam atordoados se pergun-
tando como não tinham visto isso antes! Como isso aconteceu? E agora, como eu me livro da porcaria do meu Palm
T3??
Foi interessante observar como antigos defensores do PalmOS davam desculpas por estarem migrando de plataforma
a seus "seguidores". Toda a "imprensa especializada" fica procurando em vão explicações para esse fenômeno. A
comunidade de desenvolvedores não acreditavam que seus investimentos de longos anos estavam indo por água
abaixo. Não acreditavam que poderia sequer existir um PDA da própria Palm rodando Windows Mobile! Não acre-
ditavam mais que o PalmOS não era a plataforma destinada ao futuro.
Então finalmente meu colega me deu ouvidos. Falei para ele que, qualquer que seja o mercado, é o software que
importa. Não adianta tentar simplificar o software para ele se adequar a um hardware limitado. Faça um bom softwa-
re e deixe que o hardware evolua até que o sustente de forma adequada. Você tem de passar pelos tijolões até che-
gar a um i-Mate Jam se quiser fazer algo realmente destinado ao futuro.
Finalmente convenci meu colega e hoje ele é um feliz possuidor de um Dell X51v, rodando o Windows Mobile 5.0. E
agora ele também vê como um bom sistema operacional pode fazer diferença num mercado onde aparentemente é o
hardware que importa.
Mas não sem me dizer antes de ir embora que está de olho no "novo PalmOS" que deverá sair algum dia, baseado no
Linux!...
Uma Célula Acadêmica é um grupo de estudo criado por estudantes e/ou professores, para desenvolver, aprender e
aprimorar seus conhecimentos na plataforma Microsoft. Este grupo se reúne semanalmente para estudar objetivos
propostos pelo programa. A freqüência de reuniões depende do comprometimento e da assiduidade que os mem-
bros componentes terão.
Os assuntos que podem ser abordados numa Célula Acadêmica podem ser os mais variados, como Desenvolvimento
na plataforma .NET, Segurança, Infra-Estrutura, Bancos de Dados, etc. Os interessados podem abrir a sua célula aca-
dêmica, com o mínimo recomendado de 3 (três) componentes no site: http://www.seminargroup.com.br/celula
A metodologia utilizada para este programa é a “Metodologia de Evolução e Aprendizado em Grupo, visando desen-
volvimento de conhecimento técnico, habilidades de apresentação, comportamento social e comunicação, a fim de
alcançar um posicionamento de destaque no mercado de trabalho.”
Cabe ressaltar que o aprimoramento dos alunos e/ou membros componentes somente traz benefícios e o ideal de
superação profissional, além de contribuir com o ideal de todos aqui no Codificando.NET, que é o ideal de COMU-
NIDADE, ao replicarmos conhecimento adquirido.
Convido a quem estiver interessado em aprender, replicar e disseminar conhecimento, a criar uma Célula Acadêmi-
ca, não se esqueçam “Não tem que ser difícil”.
dendo publicar isso tudo em um servidor Web para que seja acessado por qualquer browser utilizando qualquer
sistema operacional. Incrível não ?
O Silverlight basicamente trabalha com um pluguin, que pode ser baixado pelo próprio site da Microsoft (http://
www.microsoft.com/silverlight) para que você consiga executar aplicações com suporte ao Silverlight. Nesse caso,
quando o usuário executar a página onde essa tecnologia se faz presente, será solicitado o download do pluguin que
deverá ser baixado e instalado para que o conteúdo seja visualizado.
Falando um pouco agora do lado desenvolvedor, ganhamos algumas ferramentas que darão suporte à criação das
aplicações desse tipo. O Visual Studio “Orcas” (codinome) será lançado e dará suporte para a criação de aplicativos
WPF e Silverlight para os desenvolvedores. Atualmente já é possível criar essas aplicações usando o Visual Studio
2005 baixando e instalando os templates disponíveis. A grande novidade é que a Microsoft também lançou algumas
ferramentas para os designers, que utilizarão a linguagem XAML (Extensible Application Markup Languagem), lê-se
“zammel”, uma linguagem declarativa baseada em XML para a criação da interface que será visualizada pelo usuário
final. Para que os designer não precisassem codificar o XAML, foram criadas algumas ferramentas como: Expression
Web, Expression Blend, Expression Design e Expression Media, que em conjunto gerarão a maior experiência de
usuários já vista até então, criando o XAML necessário para executar áudio, vídeo, animações e tudo o que é neces-
sário para chamar a atenção do usuário que está navegando. A integração dessas ferramentas com o Visual Studio é
completa. Esqueçam aqueles problemas em que o desenvolvedor “estraga” o layout da página ou o designer “perde”
parte do código já codificado pelo desenvolvedor, já que a apresentação estará presente no arquivo .xaml totalmente
desligado do arquivo “CodeBehind” (.cs ou .vb) da página. A integração do Silverlight com o ASP.NET Ajax Library
também está perfeita, permitindo que além de criar aplicações ricas ainda temos todas as facilidades que o Ajax pro-
porciona
Vou ficando por aqui, pedindo para que você visite o site http://www.silverlight.net e faça download das ferramentas
para desenvolvedores disponíveis tal como vídeos e tutoriais completos explicando passo-a-passo como criar e man-
ter aplicações SilverLight.
Utilizando a portabilidade do Framework.Net , ficou possibilitado o uso de duas ou mais linguagens para a construção de aplicações. Neste caso utilizaremos
para a construção de um jogo o Visual J# com os recursos do XNA Game Studio Express.
O exemplo foi elaborado com base na matéria publicada na revista .Net Magazine Ano 04 Edição 40 “Desenvolva seu próprio Game com .Net e XNA Game
Studio” que mostra uma programação simples em XNA. Mas para efeitos de estudo, este jogo foi construído com Visual J# e XNA. Com a compilação sen-
do executada em tempo real pelo CLR (Common Language Runtime), permite que os recursos do XNA, que foram desenvolvidos em C# e na linguagem J#
sejam aderidas ao desenvolvimento.
O jogo constitui de personagens que são uma bola, uma raquete e o fundo da tela com o objetivo de rebater a bola com a raquete. Para criá-los foi utilizado
o PaintBrush com nomes sugestivos (e muito “originais”) e salvos com extensão .png (bola.png, raquete.png) o fundo é background do jogo.A codificação foi
adaptada para a linguagem em J# deixando apenas algumas que são utilizados do próprio XNA.
Vamos iniciar o exemplo. Abra um novo projeto em J# File>New>Project em Name coloque MeuJogo clique em OK.
Na próxima etapa aparece o Form para a criação das delas para aplicativos, ele não será necessário, vamos a Solution Explorer para retirá-lo do projeto,
selecionando com o mouse o Form1.jsl clique com o botão direito do mouse em cima selecione Delete.
Ainda na Solution Explorer criaremos um diretório chamado “conteúdo” e um subdiretório chamado “modelos” nesta iremos adicionar as imagens.
import Microsoft.Xna.Framework.*;
/**
* Summary description for clsPersonagens.
*/
public class Jogador
{
private Point _posicao;
private int _velocidade;
Este fonte indica a posição na tela e a velocidade dos personagens durante a execução do jogo. Utilize as teclas de atalho Ctrl+Shift+B para um Build sem
execução para verificar se há erros na codificação. Agora o fonte para a execução do jogo que ficará em clsJogo.
PÁGINA 31
import System.*;
import Microsoft.Xna.Framework.*;
import Microsoft.Xna.Framework.Audio.*;
import Microsoft.Xna.Framework.Content.*;
import Microsoft.Xna.Framework.Graphics.*;
import Microsoft.Xna.Framework.Input.*;
import Microsoft.Xna.Framework.Storage.*;
int Acertos = 0;
public clsJogo()
{
graphics = new GraphicsDeviceManager(this);
content = new ContentManager(get_Services());
SetaPosicaoInicial();
}
public void SetaPosicaoInicial()
{
if (objJogador == null)
{
objJogador = new Jogador(400, 500);
objBola = new Bola(200, 50);
}
else
{
objJogador.setPosicao(new Point(400, 500));
objBola.setPosicao(new Point(200, 50));
}
}
//Aqui é feita a chamada das imagens dos personagens isso depente de onde //as imagens estam basta colo-
car o path
public void DefineImagens()
{
imgJogador = Texture2D.FromFile(graphics.get_GraphicsDevice(), "F:/Artigos J#/Jxna/MeuJogo/
MeuJogo/conteudo/modelos/raquete.png");
imgBola = Texture2D.FromFile(graphics.get_GraphicsDevice(), "F:/Artigos J#/Jxna/MeuJogo/
MeuJogo/conteudo/modelos/bola.png");
sprite = new SpriteBatch(graphics.get_GraphicsDevice());
}
PÁGINA 32
void EntradaTeclado()
{
KeyboardState currentState = Keyboard.GetState();
Keys[] currentKeys = currentState.GetPressedKeys();
for (int i = 0; i < currentKeys.length; i++)
{
if (currentKeys[i] == Keys.Escape)
{
this.Exit();
}
if (currentKeys[i] == Keys.Left)
{
if (objJogador.getPosicaoX() < 5)
{
objJogador.setPosicaoX(5);
}
else
{
objJogador.setPosicaoX(objJogador.getPosicaoX() - objJoga-
dor.getVelocidade());
}
}
if (currentKeys[i] == Keys.Right)
{
if (objJogador.getPosicaoX() > (800 - (imgJogador.get_Width() + 5)))
{
objJogador.setPosicaoX(800 - (imgJogador.get_Width() + 5));
}
else
{
objJogador.setPosicaoX(objJogador.getPosicaoX() + objJoga-
dor.getVelocidade());
}
}
}
}
protected void BeginRun()
{
super.BeginRun();
this.graphics.get_GraphicsDevice().add_DeviceReset(new System.EventHandler
(this.GraphicsDevice_DeviceReset));
DefineImagens();
}
private void GraphicsDevice_DeviceReset(Object sender,System.EventArgs e)
{
DefineImagens();
}
protected void Update(GameTime gameTime)
{
if (GamePad.GetState(PlayerIndex.One).get_Buttons().get_Back().Equals(ButtonState.Pressed))
{
this.Exit();
}
MoverBola();
EntradaTeclado();
AcertouBola();
super.Update(gameTime);
}
PÁGINA 34
}
No código anterior foi definido a lógica que executa a rebatida, o movimento da bola, a textura dos personagens. Também foi aplicada a lógica para aumento
da velocidade da bola aumentando assim o nível de dificuldade do jogo. Utilize as teclas de atalho Ctrl+Shift+B para um Build sem execução para verificar se
há erros na codificação.
Por:
Isso fará a chamada da classe clsJogo na execução do jogo. Pronto podemos executar o exemplo. E ele ficará como na imagem abaixo:
Download do Mês
O CTP do SQL Server 2008 já está disponível para a comunidade. As versões disponíveis são:
Blog Nacional
Eduardo Miranda trabalha na Microsoft Brasil e publica posts interessantíssimos com uma freqüência
muito boa. O grande destaque são os destaques da semana, onde em um resumo simples ele reporta os
acontecimentos .Netianos.
Blog Internacional
O time de desenvolvimento do VB.Net trabalha muito forte em conjunto para manter o blog do time
“Os Blogs hoje são atualizado ao menos uma vez ao dia. São posts bem trabalhados mostrando principalmente as grandes
novidades da linguagem.
ferramentas
essenciais para
Link do Blog: http://blogs.msdn.com/vbteam
quem acompanha
tecnologia”
PÁGINA 38
Expert: “Exigências” de um programador
Israel Aéce, MVP de destaque na comunidade, publicou recentemente sobre algumas exigências para um
desenvolvedor exercitar bem o seu trabalho:
O Microsoft Outlook deve ficar minimizado junto ao systray (o melhor seria ficar fechado :));
As preferências do Google devem ser alteradas para exibir 100 resultados por página;
Ter um conta no Bloglines para ler blogs em qualquer lugar;
Ter a maioria dos aplicativos que uso na barra de tarefas. Atualmente são:
Desktop
Reflector
Notepad
Outlook
IE
VS.NET 2005
MSDN Library
VS.NET Command Prompt
Computer Management
“Os Blogs hoje são
Process Explorer
ferramentas Service Configuration Editor
essenciais para Virtual PC
quem acompanha Enterprise Manager? Query Analyser? Não! Nada disso. Uso o Server Explorer do VS.NET
2GB de RAM;
tecnologia”
2 Monitores (isso é demais!);
Skin clássico do Windows;
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.
Open Source
“Hoje em dia
Muitos projetos Open Source podem ajudar em muito o dia-a-dia de quem trabalha com o Visual Studio
temos uma ou .Net em geral. Temos um novo site com diversos projetos para Download.
quantidade
gigantesca de http://www.codeplex.com
materiais de
estudo, porém um
direcionamento
sobre esses
materiais é sempre
muito importante”
Muitos Web Casts
O número de Web Casts disponibilizado pela Microsoft aumenta cada dia mais, visite o site e agende os
mais interessantes.
http://www.microsoft.com/brasil/msdn/
Eventos/Webcasts.mspx
VSTS Brasil
A primeira comunidade do Brasil chama-se VSTS Rocks! Já com diversos eventos realizados, o site possui
uma área de blogs atualizada por Alexandre Tarifa, Fábio Camara e Mauro Ana.
http://www.vstsrocks.com.br
Comunidade: Build Brasil
PÁGINA
O Build Developers.Net está de volta, só que agora de cara nova!! O grupo nasceu
no dia 06 de outubro de 2004, com o objetivo de reunir profissionais e pessoas
interessadas em trocar informações sobre modelo, formas e técnicas de desenvol-
vimento e soluções Microsoft.
Foi o primeiro a realizar atividades desse tipo na Região Metropolitana da Baixada
Santista e conquistou reconhecimento do público, sempre contando com apoio da
Microsoft Brasil e de outras comunidades como o GoDtNet e o próprio Codifi-
cando.Net. Nos últimos meses o grupo vem passando por uma reformulação, o
relançamento acontecerá no segundo semestre, agora com o nome de Build Brasil.
Os Build Brasil herdará a bagagem e adotará os mesmos princípios do antigo Build Developers.Net. Como diferencial podemos destacar
a proposta de transformar o Build Brasil em uma Organização Não Governamental (ONG) que tem por objetivo realizar um trabalho
social e comunitário para a formação profissional e divulgação de material e conhecimento técnico na área de tecnologia.
As principais ações do grupos serão os eventos presenciais, workshops práticos, artigos técnicos e fórum de discussão. Tudo isso sem-
pre bem centralizado em nosso portal o www.buildbrasil.org .Todo trabalho será sempre desenvolvido com objetivo:
“Trocar conhecimento e experiências”
Nossa filosofia é que o conhecimento é para ser divulgado e repassado, para que assim tenhamos sempre pessoas mais inteligentes e
qualificadas.
Esperamos continuar contando com apoio dos parceiros nessa nova etapa. Quanto mais pessoas estiverem engajadas neste objetivo,
melhores serão os resultados futuros. Podemos afirmar que a maior recompensa que uma pessoa pode ter por dedicar parte do seu
tempo à comunidade, é o seu próprio reconhecimento profissional.
O RECONHECIMENTO
A ideal do Build Developers.Net foi apresentado à comunidade da Baixada Santista em um evento de lançamento realizado na Faculdade
de Tecnologia de Praia Grande, em outubro de 2004.
Fomos muito bem recebidos e desde então a comunidade Build Brasil cresceu e se multiplicou, marcando presença em dentro e fora da
região. Nossa agenda de eventos era completa. Um dos principais foi o Microsoft on the Beach, evento anual, que tem como característi-
ca o lado social, onde são arrecadados alimentos em prol do Fundo Social de Solidariedade da cidade receptora do evento.
A terceira edição do Microsoft on the Beach já está sendo preparada, para que possamos receber com qualidade e conforto nossos ex-
pectadores. Como nas edições anteriores o evento pretende trazer palestrantes renomados para discutirem as ultimas novidades no
mundo da tecnologia, movimentando estudantes e profissionais de várias localidades.
Eventos como esse foram realizados graças ao apoio e ao reconhecimento de diversas instituições como Microsoft, International .NET
Association, Culminis, Prefeitura de Praia Grande e de Santos, além do apoio e divulgação dos órgãos de impressa da Baixada Santista.
NOSSA EQUIPE.
Em seu lançamento o Build Brasil (Build Developer´s .NET), contava com cinco integrantes que contribuíram pelo sucesso inicial da co-
munidade. Hoje perto de completar três anos, e perto de seu relançamento como ONG, a estrutura do Build Brasil está organizada da
seguinte forma:
Líderes- Adriano Bertucci – adriano@buildbrasil.org / Israel Lucania – Israel@buildbrasil.org
Co-Líderes - Renato Sacco – renato@buildbrasil.org / Abdul Hade - abdul.hade@buildbrasil.org / Rafael Magalhães – Rafa-
el@buildbrasil.org
É isso ai pessoal, o Build Brasil está aí para contribuir com o crescimento da comunidade e dos profissionais envolvidos.
Você também pode fazer parte dessa comunidade, junte-se a nós!
Um abraço
com DJ.”
Fotos do evento
PÁGINA 42
.Close()
Nesta edição da coluna .Close() resolvi re-publicar um texto de um artigo que escrevi sobre Smart Client sobre um assunto que
acredito ser muito interessante...
Nos últimos anos, nos projetos de software comerciais e corporativos, uma pergunta que ocorre no início do projeto acaba
tendo uma resposta simples e “óbvia”:
Esta resposta está certa ou errada? Depende! Aliás, depende muito e de inúmeros pontos que devem ser discutido antes desta
resposta.
Acompanho diversos projetos em empresas de diversos ramos e portes e vejo em pelo menos 70% dos casos um erro de arqui-
tetura. Às vezes erros grotescos que geram a necessidade de simplesmente refazer o sistema. Isso porque a resposta “óbvia”
foi seguida.
Nada contra a Web, muito pelo contrário. A idéia principal deste artigo é apresentar os pontos de cada tecnologia e depen-
dendo de cada caso, teremos uma resposta coerente e significativa.
Outro cenário baseado em fatos reais.
O Consultor chega a um cliente para uma reunião onde o cliente vai pedir um sistema:
Tipos de arquiteturas
Arquitetura Thin Client
São baseadas em navegador, ou seja, executadas dentro de um navegador, seguindo suas características e limitações.
Principais vantagens:
Eficiência na exposição – Seu sistema pode funcionar na China! Em “qualquer” browser, em qualquer sistema operacional;
Gerenciamento centralizado – O sistema fica em um ponto único (servidor) e o controle de quem controla a aplicação é muito
mais simples. O gerenciamento engloba: configurações, versões, controle de acesso, etc;
Solução interna e externa – Seu sistema funciona tanto na intranet da sua empresa como na internet para todos.
Principais desvantagens:
100% conectado – O sistema fica em um servidor e toda a sua execução ocorre no servidor. Com isso para que o usuário mani-
pule o sistema a cada ação tomada no sistema, deve-se ocorrer uma conexão com o servidor da aplicação;
Limitações do navegador – Controles pobres, recursos simples e para funcionalidades relativamente simples, deve ter um conhe-
cimento absurdo de DHTML e Java Script;
Produtividade do usuário baixa – O usuário (cliente) que é a pessoa que deve ficar feliz com o sistema, acaba perdendo
muito na usabilidade e produtividade no seu dia-a-dia;
Produtividade do desenvolvedor baixa – Mesmo com novas tecnologias AJAX, desenvolver recursos mais avançados para
melhorar a usabilidade acabam sendo de extrema dificuldade e trabalhoso e ainda sim não chega a ser uma tecnologia que ofere-
ce uma usabilidade 100% efetiva, porque nunca podemos esquecer: estamos dentro de um navegador.
PÁGINA 43
.Close()
Arquitetura Rich Client
Principais vantagens:
Baseada em Windows – Todo o poder do sistema operacional Windows;
Trabalha conectado e desconectado – Podem-se criar aplicações com funcionalidades Off-line e a aplicação não depende de nenhum
serviço servidor para executar a não ser que tenha dependência de Banco de Dados ou algum outro recurso;
Solicitação ao servidor somente quando necessário – A aplicação só faz uma solicitação ao servidor caso algum recurso externo da
aplicação é solicitado;
Produtividade do usuário – O usuário ganha em produtividade já que ele está utilizando uma aplicação que utiliza todos os recur-
sos do sistema operacional;
Produtividade do desenvolvedor – O desenvolvedor praticamente só gasta o seu tempo no negócio da aplicação e praticamente
nada com funcionalidades de interface, já que a tecnologia oferece os recursos nativamente.
Principais desvantagens:
DIFICULDADE NA DISTRIBUIÇÃO – A distribuição é muito complicada já que cada máquina tem suas particularidades que
pode afetar no funcionamento do sistema ou até mesmo na não instalação do sistema.
Resumindo
Comparando as duas arquiteturas apresentadas, temos então Thin Client como a arquitetura ideal para termos uma distribuição e
gerenciamento centralizado, já Rich Client acaba sendo uma arquitetura ideal para produtividade tanto do usuário como do desenvol-
vedor.
Resumindo
A arquitetura Smart Client consolida as principais vantagens das arquiteturas Thin Client e Smart Client tornando-se mui-
to efetiva e funcional para aplicações corporativas e comerciais. O funcionamento é simples:
Gerenciamento e distribuição são feitos através da Web (IIS);
Execução da aplicação é local (Computador do usuário);
Comunicação da aplicação com regras de negócio com Web Services (Veja outros tipos a seguir).
Artigo completo em: http://www.linhadecodigo.com.br/colunas.asp?id_colunista=54
Até a próxima...
Alexandre Tarifa é MVP Visual Developer Visual Basic .Net, bacharel/pós graduado em Ciência da Computação, trabalha em
diversos projetos. Tem participado de diversos projetos que começam como Web e terminam com Smart Client.
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.