p. 2
sumário 04 acessando o mysql com asp.net edição 09 número 09 ano 03 2009 editores alexandre tarifa diego nogare emerson facunte sergio gonçalves revisÃo fernanda sallai giaccomo sabino montagem formataÇÃo milton carvalhaes editoraÇÃo e diagramaÇÃo adriano almeida colaboradores anderson bermar demetrio silva edson aparecido do nascimento fábio câmara ivan sampaio juliana prado juliano schimiguel roni a marcello veja neste artigo como acessar com asp.net um banco mysql através da data access layer por anderson bermar juliano schimiguel 08 tutorial xna hello word demonstração de como se faz para se animar uma sprite no xna por edson aparecido do nascimento 13 uma metodologia Ágil scrum conceituação scrum sobre metodologias ágeis e por fábio câmara 18 sql server audit neste artigo abordaremos o sql server audit que é mais uma feature disponível no sql server 2008 para a realização de auditoria por demetrio silva fale com editor É muito importante para a equipe saber a sua opinião sobre a revista caso tenha alguma critica sugestão ou elogio entre em contato caso tenha interesse em publicar um artigo na revista envie o título e um resumo do tema em formato word site@codificandomagazine.net 22 utilização de mashups com silverlight o objetivo deste artigo é demonstrar a utilização de mashups dentro do contexto e advento da web 2.0 por roni a marcello juliano schimiguel 29 evolução da metodologia do desenvolvimento de sistemas metodologias no desenvolvimento de software e o modo como elas evoluíram no decorrer dos anos por juliana prado produzido por 33 criando um cubo olap www.codificando.net carga de um cubo olap utilizando o microsoft sql server 2005 analysis services por ivan sampaio juliano schimiguel 03 editorial 40 .close
[close]
p. 3
edição 09 número 09 ano 03 2009 editorial depois de mais de um ano fazendo a revista da forma que conseguíamos finalmente montamos uma equipe profissional para a editoração através do portal codificando .net nós convidamos todos os membros da comunidade para participar e após os candidatos mostrarem interesse nós selecionamos alguns para fazer o trabalho a nova equipe de editoração da nova revista codificando .net e-magazine é composta por dois revisores técnicos fernanda sallai e giaccomo sabino por um revisor geral milton filho e por um editor de diagramação e formatação adriano almeida esta nova equipe mostrou uma maturidade e desempenho muito acima do que esperávamos tenho certeza que a nova revista terá uma aceitação e credibilidade muito mais forte do que tínhamos antes muito obrigado por participarem e acreditarem nesta família grande abraço diego nogare site@codificandomagazine.net
[close]
p. 4
e-magazine acessando o mysql com asp .net veja neste artigo como acessar com asp.net um banco mysql através da data access layer por anderson bermar juliano schimiguel neste artigo iremos apresentar como acessar com asp.net um banco mysql através da data access layer vamos utilizar também o componente chamado objectdatasource que será responsável em fazer a comunicação entre a interface e a data access layer o artigo não irá abordar a instalação do mysql mas irá mostrar como criar o banco tabela stored procedure e criar a camada de acesso a dados ou data access layer para acessarmos com .net tudo de forma rápida e de fácil acesso ferramentas para esse artigo foi usado o visual studio 2005 mysql 5.1 e o connector para .net uso também uma ferramenta free chamada heidisql para criação do banco tabela e stored procedure um pouco mais sobre data access layer dal a data access layer ou camada de acesso a dados é uma camada que tem por finalidade acessar o banco de dados deixando as consultas sql diretamente no banco e fazendo o acesso através de stored procedure ela se comunica com a camada lógica ou business logic layerbll deixando o sistema mais específico e com uma maior facilidade em manutenção e atualização do sistema pois uma camada não interfere diretamente na outra ou seja em alguns casos podemos atualizar uma regra de negócio sem ter que atualizar a camada de acesso a dados e vice versa e podemos reaproveitar as camadas para qualquer tipo de aplicação seja ela para desktop web ou mobile vamos a prática criando o banco de dados o script abaixo é a criação do banco de dados tabela inclusão de registros e as stored procedure s o script também apresenta alguns comandos sql para inserção na tabela produto você pode usar qualquer ferramenta que faz a criação do banco tabela e stored procedure no mysql create database loja e-magazine codificando.net use loja create table if not exists produto id integer primary key not null auto_increment descricao varchar30 not null preco double6,2 insert preco insert preco insert preco insert preco into produto descricao values tv plasma 1200.00 into produto descricao values geladeira 950.00 into produto descricao values microondas 370.00 into produto descricao values ferro 150.00 create procedure selectproduto select from produto www.codificando.net abril maio 2009 4
[close]
p. 5
acessando o mysql com asp .net e-magazine create procedure insereproduto in d varchar30 in p double6,2 insert into produto descricao preco valuesd,p na figura 1 mostra como ficou a criação do banco figura 03 figura 01 criando a dal agora abra o visual studio 2005 e crie um projeto do tipo class library conforme a figura 2 na linguagem c salve o projeto onde desejar renomeie a classe class1 para produtos e clique com o botão direito na pasta references e escolha a opção add reference figura 3 abrirá uma caixa de dialogo e na aba .net localize a opção mysql.data figura 4 selecione e clique em ok a solucion ficará conforme a figura 5 o script 2 apresenta o código da classe produtos figura 04 using system using system.collections.generic using system.text using system.data manespace para conexão com mysql using mysql.data.mysqlclient e-magazine codificando.net namespace dal public class produtos string de conexão para o banco mysql public string str database=loja data source=localhost user id=root password=mysql método para selecionar os dados através da procedure selectproduto retorna um dataset public dataset select mysqlconnection conn new mysqlconnectionstr mysqlcommand cmd new mysqlcommand selectproduto conn figura 02 www.codificando.net abril maio 2009 5
[close]
p. 6
acessando o mysql com asp .net cmd.commandtype commandtype.storedprocedure mysqldataadapter dtadapter new mysqldataadapter cmd dataset ds new dataset dtadapter.fillds return ds método para inserir na tabela produtos através da procedure insereproduto public void insertstring desc double preco mysqlconnection conn new mysqlconnectionstr mysqlcommand cmd new mysqlcommand insereproduto conn cmd.commandtype commandtype.storedprocedure cmd.parameters.addwithvalue d desc cmd.parameters.addwithvalue p preco conn.open cmd.executenonquery conn.close e-magazine na caixa de dialogo que abrir escolha asp.net web site linguagem c file system e escolha a mesma pasta do projeto que foi salvo a dal a figura 6 apresenta a página default.aspx que é a página onde vamos trabalhar crie uma semelhante figura 06 componente textbox textbox button gridview objectdatasource id txtdescricao txtpreco btnenviar gridprodutos objectdatasource enviar text e-magazine codificando.net após criar a página temos que referenciar a dal no projeto web na aba solution explorer clique com o botão direito em cima do projeto do web site e escolha a opção add reference na janela add reference na aba projects escolha dal conforme figura 7 figura 05 compile a aplicação em build>build solution ou ctrl schift b criando o website depois de compilado o projeto dal no visual studio clique em file>add>new web site www.codificando.net figura 07 abril maio 2009 6
[close]
p. 7
acessando o mysql com asp .net volte na página default.aspx no componente objectdatasource clique na smart tag seta que fica em cima do componente e escolha a opção configure data source irá aparecer um wizard e na primeira tela em choose your business object selecione o class library dal a class library dal já traz a classe produtos automaticamente clique em next na próxima tela na aba select defina o método que criamos na classe produtos clique em finish clique na smart tag do gridview e em choose data source escolha o object data source pronto já fizemos a conexão com o banco de dados figura 09 e-magazine conclusão este artigo teve por finalidade mostrar como podemos acessar com .net o mysql criamos as stored procedure s para separar as consultas sql da camada dal camada que faz a conexão com o banco e acessamos o banco de dados de duas formas uma foi criando um objeto da classe produtos e chamando o método insert passando os argumentos descrição e preço e a outra maneira foi com o componente objectdatasource que fez a comunicação entre a interface e a camada de acesso a dados um componente muito poderoso da versão 2.0 que faz a comunicação com o gridview e a classe produtos figura 08 dê um duplo clique no botão enviar e digite o código do script abaixo protected void btnenviar_click object sender eventargs e criação do objeto da classe dal dal.produtos produto new dal.produtos método da stored procedure produto.insert txtdescricao.text.trim double.parsetxtpreco.text.trim e-magazine codificando.net compile o web site e na aba solution explorer clique com o botão direito em cima do projeto web e selecione a opção set as startup project execute e teste a sua aplicação www.codificando.net abril maio 2009 7
[close]
p. 8
e-magazine tutorial xna hello word demonstração de como se faz para se animar uma sprite no xna por edson aparecido do nascimento estou aqui para demonstrar como se faz para se animar uma sprite no xna primeiro vamos definir o que é uma sprite segundo a wikipédia onde achei a melhor definição uma sprite do latim spiritus significando duende fada é um objeto gráfico bi ou tridimensional que se move numa tela sem deixar traços de sua passagem como se fosse um espírito os sprites foram inventados originalmente como um método rápido de animação de várias imagens agrupadas numa tela em jogos de computador bidimensionais usando hardware especial a medida que a performance dos computadores melhorou esta otimização tornou-se desnecessária e o termo evoluiu para referir-se especificamente às imagens bidimensionais que eram integradas numa determinada cena isto é figuras geradas por hardware ou software eram todas referenciadas como sprites a medida que gráficos tridimensionais tornaram-se mais comuns o termo passou a descrever uma técnica elementar de simulação de imagens em 2.5d ou 3d que prescinde do uso de renderizações complexas bom vamos à animação primeiramente vamos abrir um novo projeto no xna e dar a ele o nome de hello world na janela solution explorer veremos que dentre os objetos criados existem dois arquivos de classe um é o program.cs no qual não iremos mexer o outro é o game1.cs no qual faremos o nosso código assim que abrirmos o game1.cs veremos que parte do código já vem escrita para facilitar nosso entendimento na primeira parte do código veremos as bibliotecas que o xna estará usando para quem está acostumado com a linguagem c o termo using do xna é o mesmo que o include logo abaixo temos a nomenclatura do projeto definida pelo termo namespace depois temos a definição de uma classe do tipo public public class game1 microsoft.xna.framework.game esses dois pontos colocados após o nome da classe tem a mesma função que o termo extends usado em java ou seja ele estende os termos dessa classe à biblioteca de frameworks do xna seguindo nosso projeto temos graphicsdevicemanager graphics spritebatch spritebatch a primeira linha se refere à criação de uma variável graphics do tipo graphicsdevicemanager na qual iremos declarar as propriedades gráficas da tela na segunda linha declaramos uma variável spritebatch do tipo spritebatch aqui faremos a primeira alteração para facilitar o nosso entendimento alteramos o nome dessa variável para sb deixando a linha assim spritebatch sb e-magazine codificando.net agora vamos declarar as outras variáveis a serem utilizadas e é isso que vamos fazer na linha abaixo da declaração de spritebatch digitaremos as seguintes variáveis texture2d globo int linha 0 int coluna 0 int largura altura www.codificando.net abril maio 2009 8
[close]
p. 9
tutorial xna hello word e-magazine double tempo gametime tempojogo seguindo no nosso projeto vemos que logo abaixo existe a declaração de public game já estruturada e abaixo temos a initialize onde iremos começar a carregar nosso jogo já temos declarado a linha base.initialize e em seguida vamos declarar o título da janela sua altura e sua largura ficará assim base.initialize window.title hello world aqui definimos o nome da janela graphics.preferredbackbufferheight 512 definição da altura em 512 pixels graphics.preferredbackbufferwidth 512 definição da largura em 512 pixels graphics.applychanges aplicamos as mudanças assim nossa imagem será anexada no projeto nela também devemos clicar com o botão direito e depois em properties na janela properties deveremos verificar a propriedade asset name essa propriedade se refere à que nome iremos instanciar a imagem para podermos chamá-la no projeto deixe como animatedsprite mesmo agora sim podemos voltar ao código antes de sb new spritebatchgraphicsdevice colocaremos o código globo content.load
[close]
p. 10
tutorial xna hello word e-magazine tempojogo gametime if tempojogo.totalgametime.totalmilli seconds tempo 150 coluna if coluna 3 coluna 0 linha if linha 3 linha 0 tempo gametime.totalgametime.totalmillise conds qualquer cor que lhe interesse para isso basta apagar o nome de cornflowerblue e digitar outra cor no lugar no nosso caso utilizaremos o preto black assim nossa linha de código deverá ficar assim graphics.graphicsdevice.clear color.black agora vamos dar sequencia ao código para inicializar o programa então digitaremos sb.begin int x largura coluna int y altura linha rectangle retimagem new rectangle x y largura altura sb.drawglobo vector2.zero retimagem color.white sb.end nessas linhas declaramos que a variável gametime do método update vai se tornar a variável tempojogo que criamos no início definimos dentro do método if o tempo de 150 milissegundos para a mudança de quadro da imagem lendo o que está escrito seria algo assim se o tempo for maior que 150 milissegundos então muda-se a coluna coluna se a coluna for maior que 3 então voltamos à coluna 0 coluna 0 lembre-se que em programação o primeiro item é o 0 e mudamos de linha linha e se a linha for maior que 3 voltamos à linha 0 no fim temos a linha base.draw gametime a qual já existe no projeto agora é só apertar f5 ou ir ao menu debug start debugging e ver nosso projeto sendo executado deverá aparecer uma pequena tela com fundo preto e um globo com os dizeres hello world girando para melhor entendimento abaixo deixo o código completo using system using system.collections.generic using microsoft.xna.framework using microsoft.xna.framework.audio using microsoft.xna.framework.content using microsoft.xna.framework.gamerservices using microsoft.xna.framework.graphics using microsoft.xna.framework.input using microsoft.xna.framework.net using microsoft.xna.framework.storage namespace gamehelloworld public class game1 microsoft.xna.framework.game graphicsdevicemanager graphics spritebatch sb texture2d globo int linha 0 e-magazine codificando.net logo abaixo desse código temos base.updategametime o qual já está escrito no nosso projeto por último temos o método draw que é responsável por fazer o nosso projeto aparecer na tela na primeira linha deles temos graphics.graphicsdevice.clear color.cornflowerblue essa linha serve para definir a cor de fundo da tela onde está cornflowerblue pode-se colocar www.codificando.net abril maio 2009 10
[close]
p. 11
tutorial xna hello word e-magazine base.updategametime int coluna 0 int largura altura double tempo gametime tempojogo public game1 graphics new graphicsdevicemanagerthis content.rootdirectory content protected override void initialize base.initialize window.title hello world graphics.preferredbackbufferheight 512 graphics.preferredbackbufferwidth 512 graphics.applychanges protected override void loadcontent globo content.load
[close]
p. 13
e-magazine uma metodologia Ágil scrum conceituação sobre metodologias ágeis e scrum por fábio câmara introdução das muitas definições sobre agilidade que podemos encontrar em livros revistas e na internet uma das que mais gosto é agilidade é a habilidade de criar e responder a mudanças com respeito ao resultado financeiro do projeto em um turbulento ambiente de negócios agilidade é a habilidade de balancear flexibilidade com estabilidade highsmith jim agile project management 2002 agilidade é uma proposta de desenvolver projetos com uma estrutura e organização suficientes muita estrutura e organização reduz a criatividade e a flexibilidade de suportar mudanças pouca estrutura e organização permeia a ineficiência e resulta em esforços maiores que os necessários a diferença entre caos e agilidade pode ser verificada nos produtos resultantes considerando o mesmo cenário turbulento de negócios¹ nas equipes que convivem com o caos verificamos atrasos constantes baixissíma qualidade dos sistemas problemas com estimativas e estouro de orçamento nas equipes que utilizam-se de métodos ágeis percebemos entregas parciais constantes interação com clientes para revisão de estimativas e orçamento conjuntamente com antecedência salutar ao projeto e principalmente dois pontos fundamentais compromisso com a satisfação do cliente e responsabilidade com o resultado financeiro do projeto empresas procuram métodos ágeis as metodologias ágeis estão disponíveis desde a década passada porém foi no ano de 2001 que houve a formalização com a assinatura do manifesto ágil manifesto for agile software development-http agilemanifesto.org inicialmente houve uma desconfiança geral por parte da indústria de software certamente impulsionada pelas diferenças aos métodos tradicionais e as questões das dificuldades de quebra de paradigmas por parte das pessoas nesta época tornou-se bastante famosa a metodologia xp extreme programming pois propunha sem hipocrisia uma série de métodos polêmicos muitos deles questionáveis até hoje como por exemplo a programação em pares e o cliente ao lado do desenvolvedor durante o projeto lentamente a indústria de software impulsionada pela necessidade de obter resultados diferentes dos obtidos pelos métodos tradicionais verificou que pessoas válidas estavam propondo métodos sérios e factíveis desta forma determinadas práticas ágeis começaram a ser utilizadas em projetos de software sem a agressividade² pela adoção plena de uma e-magazine codificando.net ¹o autor entende como cenário turbulento de negócios as demandas oriundas de empresas no qual a necessidade de prazos rápidos e a competitividade são predominantes como regra de sobrevivência no seu próprio mercado de atuação ²o autor define como agressividade neste contexto a quantidade de procedimentos que deveriam ser mudados no caso da adoção plena da metodologia ao invés da adoção de apenas alguns dos métodos propostos pela metodologia www.codificando.net abril maio 2009 13
[close]
p. 14
uma metodologia Ágil scrum e-magazine metodologia ágil alguns destes métodos compreendidos de forma inadequada causavam uma dificuldade de percepção dos resultados um ótimo exemplo disto é a iteração iteração iteration que em tradução simples quer dizer repetição é confundido com interação ou compreendido como processos repetíveis na verdadeira definição ágil iteração está mais para processos confiáveis do que processos repetíveis na lingua inglesa também verificamos este desentendimento quando estudamos em textos ágeis as palavras repeatable e reliable a confusão entre confiável e repetível acontece porque muitos gestores de empresas gostam de formalizar processos muito estruturados e precisos repetíveis no lugar de formalizar processos suficientemente estruturados e flexíveis confiáveis processos repetíveis focam na entrada das atividades processos confiáveis focam no resultado das atividades outros métodos por oferecerem propostas mais simples de compreensão e apuração de resultado começaram a chamar a atenção positivamente da indústria de software face a isso iniciou-se um movimento liderado pelas universidades no brasil hoje sou consultor de metodologias ágeis da usp que objetiva esclarecer os métodos e gerar conteúdos práticos que facilitem a implantação de tais propostas metodológicas certificadas de que estes métodos funcionam as empresas de software começaram a estudar uma proposta de metodologia classificada como ágil que propõe novos métodos em substituição aos métodos praticados tradicionalmente este critério de escolha que em minha opinião está suficientemente maduro buscou primeiramente resolver as questões acerca da organização distribuição e controle das atividades de um projeto de software eis a explicação da escolha da metodologia scrum pelo mercado de empresas desenvolvedoras de software scrum muito simples de usar a metodologia scrum está entrando na moda aqui no brasil após já haver conquistados inúmeras empresas da indústria de software na américa do norte particularmente eu considero o scrum uma proposta extremamente prática e honesta defino por prática neste contexto a facilidade de compreensão e aplicação em nosso ambiente de desenvolvimento de software defino por honesta a fidelidade entre a proposta do método e o resultado que podemos obter após aplicá-lo scrum nome utilizado inicialmente pelos japoneses hirotaka takeuchi e ikujiro nonaka descrevia um tipo de processo de desenvolvimento de produto utilizado no japão.também o nome scrum foi escolhido pela similaridade entre o jogo de rugby e o tipo de desenvolvimento de produto comentado ambos são adaptativos rápidos e promovem a auto-organização para explicar scrum utilizarei uma estratégia que foi usada pelo ken schwaber³ em seu livro chamado agile project development with scrum na minha leitura este é o melhor livro disponível lançado até a presente data iniciando um projeto há uma formalização de todas as coisas que se pretende fazer ou que se precisar construir no projeto cada item desta lista representa um requisito funcional ou requisito não funcional ou questão de tecnologia infra-estrutura esta lista é denominada product backlog podemos traduzir product backlog como uma e-magazine codificando.net ³ ken schwaber junto com jeff sutherland foram os formalizadores das primeiras versões de scrum como metodologia para desenvolvimento de projetos de software ken está trabalhando neste projeto desde o início dos anos 90 www.codificando.net abril maio 2009 14
[close]
p. 15
uma metodologia Ágil scrum e-magazine lista de todos os requisitos de um produto priorizados ou em outras palavras é qualquer coisa que represente um trabalho que precisa ser feito para o produto os itens com maior prioridade nesta lista são os requisitos mais desejados pelo produto no projeto real o product backlog nunca é finalizado existe uma natural evolução e maturidade dos requisitos nesta lista requisitos novos podem aparecer requisitos existentes podem perder prioridade e podem até serem eliminados apesar de se permitir que áreas usuárias manifestem seus pedidos nesta lista somente o product owner pode priorizar o backlog o product owner possui a responsabilidade de definir a ordem que os requisitos serão produzidos pela equipe de desenvolvimento esta equipe deve ser pequena multidisciplinar e capaz de desenvolver todos os requisitos esta equipe recebe o nome de scrum teams a preparação dos trabalhos é denominada sprint planning sprint planning é composta dos seguintes ingredientes product backlog a capacidade de desenvolvimento da equipe as condições e exigências do negócio as características da tecnologia a ser usada e o comprometimento em entregar produtos executáveis incrementais a mistura são revisões administração e organização os resultados são sprint goal e sprint o scrum team deve desenvolver os itens separados pelo product owner em um determinado prazo previamente combinado este prazo é definido como time box e o trabalho de desenvolver os itens separados neste time box é denominado sprint estes itens separados do product backlog fazem parte de uma nova lista esta lista chamada sprint backlog será de total responsabilidade do scrum team que deverá mantê-la e organizá-la de tal forma a atender os objetivos do específico sprint É permitido ter mais de um scrum team trabalhando no mesmo product backlog por isso os requisitos são devidamente separados em sprint backlog distintos por equipe uma idéia deste ciclo é verificada na figura 01 a liderança destas equipes é exercida por um papel denominado scrum master o scrum master é um facilitador da gestão dos requisitos e direcionador da gestão das equipes este papel deve garantir a correta utilização das práticas de scrum deve ajudar a equipe a tomar decisões e apoiar a equipe para adquirir os recursos necessários para o desenvolvimento do produto este método de liderança é exercido através de 3 recorrentes tipos de reunião scrum daily meeting sprint review e retrospective começando pelo sprint review que é a reunião típica de final de sprint alguns scrum team também a fazem no meio do e-magazine codificando.net figura 01 www.codificando.net abril maio 2009 15
[close]