Codificando Magazine 9a edicao [view full mode]

p.  1

Embed or link this publication

Description

Popular Pages


p. 1



[close]

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. 12



[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]

p. 16

uma metodologia Ágil scrum e-magazine artigo temos observado que a utilização de kanban ver figura abaixo ajuda a maximizar o comprometimento da equipe e a comunicação de todos os comprometidos e envolvidos com o projeto figura 2 nossa implementação de kanban na empresa repom dirigida pelo scrum master marcelo martins as cores amarela e laranja representam diferentes complexidades das atividades a cor pink representa atividades não planejadas no sprint que foram incluídas por motivo de força maior por se tratar de um extenso assunto abordaremos detalhes explicativos sobre o que é kanban e como se utiliza em projetos de software no nosso próximo artigo técnico considerações finais nós praticantes das metodologias ágeis acreditamos que todos os projetos são diferentes a tecnologia destes projetos são diferentes as pessoas os requisitos idem nós não queremos ser indivíduos críticos do que existe há muito tempo na engenharia de software nós queremos sugerir proporcionar e fundamentar alternativas novas para resolver problemas antigos sprint para validar o produto executável que a equipe conseguiu incrementar explicando a retrospective é uma reunião que também acontece ao final do sprint com o objetivo de fortalecer a unidade de ação da equipe três perguntas deverão ser respondidas com seriedade por todos os membros do scrum team 1 2 3 o que você fez e gostou neste sprint o que você fez e não gostou neste sprint o que você vai fazer diferente no próximo sprint o desenvolvimento de projetos de software é um desafio constante é uma atividade complexa todo processo complexo exige uma intensa comunicação entre todos os membros do projeto scrum daily meeting é a resposta para promover a comunicação da equipe todos os dias obrigatoriamente todo o scrum team irá se reunir por 15 minutos aproximadamente para responder a 3 importantes perguntas sugerimos que está reunião seja de pé pois temos verificado bons resultados em nossas práticas as perguntas são 1 o que eu fiz desde a última scrum daily meeting até agora 2 o que eu vou fazer hoje 3 o que pode me impedir adicionalmente as técnicas apresentadas neste e-magazine codificando.net na grande maioria das consultorias que ministro sob a titulação de coaching para fins de crescimento dos resultados qualitativos e produtivos de equipes de desenvolvimento de software encontro pessoas que utilizandopara saber mais recomendamos os livros agile project management by jim highsmith agile software development with scrum by ken schwaber e mike beedle agile project management with scrum by ken schwaber treinamento msf agile scrum agile methods em http www.fcamara.com.br www.codificando.net abril maio 2009 16

[close]

p. 17

uma metodologia Ágil scrum e-magazine se de métodos tradicionais ou simplesmente de improviso diário também denominado ausência de métodos revelam-me uma estranha e frustrante sensação ­ a síndrome do trabalho vazio a stv é a sensação que ocorre depois de um intenso dia de trabalho repleto de aborrecimentos e de atividades urgentes quando percebe-se que no final todas as atividades planejadas para aquele dia não puderam ser implementadas É uma constatação que se é uma espécie de marionete do tempo da empresa e dos clientes a utilização de métodos ágeis com a adequação mental conforme os princípios estabelecidos pelas metodologias ágeis mudaram minha vida profissional perante o cenário anteriormente descrito eu consigo fazer atividades planejadas consigo priorizar atividades importantes e tenho um pequeno índice de atividades urgentes no meu dia-adia eu me sinto protagonista do meu dia as metodologias ágeis são uma positiva proposta para as empresas desgastadas com os resultados proporcionados por waterfall approach to software development ou pela ausência de métodos para iniciantes em metodologias ágeis eu recomendo o scrum para praticantes de métodos ágeis que não conhecem o scrum permitam-se mais uma evolução sucesso em seus projetos e-magazine codificando.net www.codificando.net abril maio 2009 17

[close]

p. 18

e-magazine 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 a versão do sql server 2008 trouxe diversas novas features que há muito tempo a comunidade aguardava neste artigo abordaremos a sql server audit que é mais uma feature disponível no sql server 2008 para a realização de auditoria o que é auditoria É uma forma de registrar dados das ações realizadas pelos usuários como por exemplo · · · · · · · select insert update e delete em determinadas tabelas ou esquemas logins bem ou mal sucedidos backup e restore dentre outros para uma lista detalhada sobre operações que podem ser auditadas a nível de instância database e auditoria consulte audit-level audit actions [sql server no bol como funciona alterações no esquema do banco de dados alterações de logins consulta alteração exclusão e inclusão de dados o sql server audit usa a infraestrutura do sql server extended events introduzida no sql server 2008 os extended events registram todas as ações auditáveis ocorridas no servidor para mais informações consulte extended events no bol os dados auditados podem ser gravados nos seguintes locais nota o processo de gravação dos dados da auditoria pode trabalhar de duas formas 1 síncrona os dados auditados são gravados antes de terminar uma transação ou ação 2 assíncrona os dados auditados são gravados após o término de uma transação ou ação o parâmetro queue_delay que será demonstrado adiante define a forma de gravação dos dados da auditoria caso o valor do parâmetro seja zero a auditoria será síncrona do contrário será assíncrona auditoria é muito importante para sistemas que trabalham com dados confidenciais ou críticos visto que ela visa controlar data hora usuário e demais informações das ações realizadas por lei sistemas da área financeira e de saúde precisam realizar auditoria das ações realizadas enfim uma auditoria pode nos ajudar a rastrear uma gama enorme de informações sobre as ações realizadas em um sistema como um todo o que é o sql server audit um mecanismo que permite a realização de auditoria de diversas ações a nível instância e de database ações essas como e-magazine codificando.net www.codificando.net abril maio 2009 18

[close]

p. 19

sql server audit e-magazine disabling a c2 audit · · · application event log file system security event log · as ações auditadas como citado anteriormente podem ser a nível de instância ou de database neste artigo iremos mostrar como auditar ações nos dois níveis e também como recuperar os dados auditados antes de iniciarmos a parte prática iremos falar sobre alguns objetos que fazem parte do sql server audit são eles 1 server audit É um container para os audit specifications ele está associado à instância visto que sql server audit não trabalha com múltiplas instâncias É no server audit que ficam guardadas informações sobre onde serão gravados os arquivos de auditoria o tamanho máximo de cada arquivo se o modo de auditoria será síncrono ou assíncrono dentre outros 2 audit specifications determinam quais ações serão auditadas estão divididos em dois tipos 2.1 server audit specifications determina as ações a serem auditadas para uma instância portanto existe somente no banco master ele usa grupos de ações para determinar quais ações deverão ser auditadas aplica-se quando necessitamos realizar auditoria de ações a nível de servidor como por exemplo um login bem sucedido exemplo trace_change_group é um grupo de ações que audita as seguintes ações · · · · 2.2 database audit specifications em alguns cenários possuímos instâncias com diversos databases funcionando no entanto necessitamos auditar apenas um ou alguns databases nesta instância nestes casos ao invés de usar a auditoria a nível de servidor instância podemos usá-la a nível de database diferente do server audit specification que só trabalha com grupos de ações o database audit specification nos permite tanto auditar grupos de ações como também apenas algumas ações de determinados grupos por exemplo para auditar selects apenas em um database chamado db1 através do server audit specification deveríamos usar o grupo de ações chamado schema_object access_group no entanto este grupo iria auditar não somente selects mas também inserts updates e todas as outras ações contidas neste grupo a auditoria também seria feita para essas ações em todos os demais databases desta instância isso poderia gerar uma carga extra desnecessária nos demais databases visto que a necessidade de auditoria era apenas para o database db1 para contornar este problema podemos usar o database audit specification e auditarmos apenas as ações de select no database db1 diferente do server audit specifications usando o database audit specifications podemos auditar as ações individuais e não apenas através de grupos de ação 2.3 database e server audit specifications são grupos de ação no nível de auditoria ou seja é possível auditar a criação de um server audit ou server audit specification por exemplo sendo auditar as ações no processo de auditoria a nível de database e servidor e-magazine codificando.net starting a trace stopping a trace altering a trace enabling a c2 audit www.codificando.net abril maio 2009 19

[close]

p. 20

sql server audit e-magazine prática 1 criando um server audit o comando abaixo cria um objeto server audit assíncrono chamado srvaudit que armazenará os dados auditados em um file system com tamanho máximo de 10 mb por arquivo num total de 100 arquivos após criado é necessário alterar seu state para on use master go create server audit srvaudit to file filepath c maxsize 10mb max_rollover_files 100 reserve_disk_space on descrição dos parâmetros filepath pasta onde serão gravados os arquivos de dados da auditoria tamanho máximo de cada arquivo de auditoria quantidade de arquivos que podem ser criados para o nosso exemplo serão criados 100 arquivos de 10mb cada sendo possível o armazenamento de 1gb 10 arquivos x 100 mb de dados de auditoria se é necessário pré-alocar espaço no disco este espaço é igual ao valor do parâmetro maxsize somente deve ser setado como on quando o valor de maxsize for diferente de unlimited este valor especifica o tempo de gravação dos dados caso seja passado o valor zero o modo de auditoria passa a ser síncrona indica se a instância será derrubada ou continuará em caso de falha para dar suporte em cenários de espelhamento o sql server audit precisa de um guid ele não pode ser alterado após criada a auditoria with queue_delay 1000 caso o valor fosse 0 a forma de gravação seria síncrona on_failure continue audit_guid 0d54ef3d-90204ae7-a0a3-31d9d43acaa4 go alter server audit srvaudit with state on 2 ­ criando um server audit specification o comando abaixo cria um server audit specification no container srvaudit que audita falhas de login use master go create server audit specification srvauditspecification for server audit srvaudit add failed_login_group with state on maxsize max_rollov er_files mas suponhamos que após criar o srvauditspecification acima fosse necessário adicionar o grupo de ações successful_login_group logins bem sucedidos e-magazine codificando.net reserve_dis k_space antes de adicionar o novo grupo ao srvauditspecification devemos setar seu state como off o seguinte script realiza este procedimento use master go alter server audit specification srvauditspecification with state off go alter server audit specification srvauditspecification add successful_login_group with state on queue_dela y on_failure audit_guid e por fim caso fosse necessário dropar por www.codificando.net abril maio 2009 20

[close]

p. 21

sql server audit e-magazine exemplo group o grupo failed_login use master go alter server audit specification srvauditspecification with state off go alter server audit specification srvauditspecification drop failed_login_group with state on select statement as comando from sys.fn_get_audit_file c default default order by event_time desc esta função retorna uma tabela contendo informações sobre as ações auditadas mais informações sobre o conteúdo de cada coluna podem ser vistas no bol [fn_get_audit_file vale lembrar que como a auditoria pode trabalhar de forma síncrona e assíncrona os dados auditados podem não estar gravados no momento do select isso vai depender do parâmetro queue_delay configurado na criação do server audit conclusão sql server audit é uma nova feature do sql server 2008 que comparada com outros mecanismos como c2 audit sql trace event notifications e ddl triggers possui uma enorme flexibilidade e facilidade além de gerar um menor overhead que os outros citados 3 ­ criando um database audit specification iremos mostrar agora como criar um database audit specification para auditar selects para a tabela person.address e selects no schema humanresources use adventureworks go create database audit specification dasselect for server audit srvaudit add select on person.address by public add select on schema humanresources by public with state on go e-magazine codificando.net visualizando os dados auditados por fim para visualizarmos os dados gerados que no nosso caso estão gravados em arquivo existem duas formas 1 2 usando o ssms em

[close]

p. 22

e-magazine 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 resumo os mashups ganharam aceitação nos últimos anos impulsionados pela web 2.0 inicialmente os mashups adotaram dados de fontes como craigslist http www.craigslist.org combinando-os com serviços de mapeamento ou fotografia para criar visualizações dos dados por exemplo http housingmaps.com muitos desses primeiros mashups tinham o consumidor como objetivo mas em anos recentes a empresa também começou a se interessar e aceitar os mashups corporativos as organizações começam a perceber que podem colocar seus serviços bem definidos para produzir bits distintos de lógica do negócio com outros serviços existentes internos ou externos à organização para fornecer visões novas e interessantes dos dados 1 introdução desenvolvimento web e.g [msdn 2008 além de aplicativos interativos e sofisticados para a web 2 conceituação sobre mashups 2.1 definição mashup e.g [msdn 2008 é uma técnica para a construção de aplicativos que combina dados de várias fontes para criar uma experiência integrada atualmente há muitos mashups hospedados em sites da internet que oferecem representações visuais de dados abertos ao público 2.2 histórico e-magazine codificando.net o objetivo deste artigo é demonstrar a utilização de mashups dentro do contexto e advento da web 2.0 e.g [web2.0 2008 segunda geração de comunidades e serviços baseados na plataforma web como wikis aplicações baseadas em folksonomia e redes sociais juntamente com a utilização do plugin de desenvolvimento para a plataforma .net microsoft silverlight e.g [msdn 2008 que é um plug-in para vários navegadores várias plataformas e vários dispositivos destinado a oferecer a próxima geração de experiências de mídia baseadas em .net framework para na medida em que as técnicas para a criação de mashups amadureceram começamos a ver nas empresas a construção de modelos do negócio baseados nesta tecnologia no mercado imobiliário norte-americano redfin http www.redfin com e zillow http www.zillow.com utilizam grandes volumes de dados imobiliários públicos e privados de fontes como autarquias de registro municipais e multiple listing service combinados com serviços internos de valor agregado cujo resultado é apresentado ao usuário em um mapa utilizando o virtual earth da microsoft e o google maps respectivamente há muitos outros tipos de informações que podem ser acrescentadas a um site do setor imobiliário outras listagens similares informações sobre escolas e hospitais locais índices recentes de abril maio 2009 www.codificando.net 22

[close]

p. 23

utilização de mashups com silverlight e-magazine criminalidade classificados para colocações de trabalho e muito mais dos locais externos de armazenamento de dados 2.3.2 feeds rss o uso de feeds rss really simple syndication é uma fonte comum de dados primários ou suplementares os feeds rss são fáceis de serem consumidos pois são documentos xml e muitas bibliotecas existem para manipular esses feeds a extensibilidade do rss também é bastante conhecida como demonstra a quantidade de extensões em uso atualmente como a adição de vínculos aos feeds informações de localização e licenciamento da creative commons 2.3 arquitetura de um mashup prototípico 2.3.4 web services embora haja grande variação na iu e nas fontes de dados de muitos mashups ainda assim podemos derivar padrões arquiteturais comuns compartilhados por todos por exemplo todos os mashups são de natureza restful obedecem aos princípios do protocolo de transferência de estado representacional a figura 1 ilustra um processamento arquitetural típico 2.3.1 dados dados agregados e apresentados ao usuário são o principal elemento de qualquer mashup embora o diagrama acima descreva a fonte de dados como um banco de dados para utilização do conceito não é necessário a utilização deste recurso no local nem para o aplicativo mashup nem para o cliente os dados podem vir estritamente dos web services serializados para xml ou json este é o padrão mais comum em mashups baseados em internet existem compensações arquiteturais a serem feitas do armazenamento de dados primários no local ao acesso aos dados feito a cada solicitação na medida em que os aplicativos mashups deixam de ser baseados em internet para serem internos à empresa tendem a depender menos É também comum incluir chamadas para web services É fácil ver web services baseados em wsdl e outros baseados em rest com alguns serviços expondo os dois estilos os web services podem ser usados para oferecer dados adicionais ou transformar os dados submetidos ao aplicativo para um mashup baseado em mapa os dados só podem conter endereços de ruas e uma chamada para web service baseado em wsdl ou rest pode ser feita para converter o endereço de rua em uma coordenada longitudinal/latitudinal para o mapa 2.4 serviços da plataforma e-magazine codificando.net a figura 2 representa uma classe especial de serviços usadas para criar mashups estamos chamando estes serviços de plataforma porque fornecem funcionalidade além do modelo típico solicitação/resposta dos web services tradicionais um exemplo típico disso é o mapeamento de serviços fornecido pelo virtual earth inclui uma lista completa de capacidades de processamento dos dois lados cliente e servidor assim como serviços na nuvem estamos presenciando o surgimento de serviços de bloco de construção baseados na nuvem que começam a criar valor por exemplo o serviço amazon s3 oferece abril maio 2009 www.codificando.net 23

[close]

p. 24

utilização de mashups com silverlight e-magazine armazenamento na nuvem facilita a exposição de todos os dados estáticos por meio de upload para provedor de armazenamento hospedado o biztalk services da microsoft é uma plataforma de serviços que oferece uma capacidade diferente transmite comunicações da internet por meio de um firewall corporativo e assim expõe serviços internos para o consumo de parceiros de negócio ou terceiros que constroem os próprios mashups corporativos comunicações transmitidas como fornecidas pelo biztalk services é também um serviço útil mesmo dentro de uma única empresa com muitas unidades de negócio ou com inúmeros segmentos de rede uma transmissão de comunicações baseada em internet pode eliminar a topologia de rede física como um obstáculo às comunicações àquela de muitos aplicativos de desktop tipicamente não exigem uma instalação do lado do cliente além de um plugin genérico como o adobe flash ou microsoft silverlight 2.6 aplicativo cliente o mashup é distribuído e apresentado ao usuário como aplicativo cliente para mashups públicos de internet o aplicativo cliente mais comum é um navegador web que recebe html e javascript distribuídos de um servidor web sobre http contudo começamos a ver os mesmos sendo distribuídos também com plataformas ria neste modelo o cliente pode fornecer mais riqueza visual e até algum processamento 2.7 direção futura dos mashups nas primeiras versões grande parte da implementação era muito ente diante e demorada muitos deles usavam o processamento do lado do servidor quase sempre com php ou perl e o cansativo scripting do lado do cliente na forma de javascript para criar a experiência de mashup era comum para a pessoa que os criava criar código personalizado para analisar os conjuntos de retorno xml que recebiam das respectivas fontes de dados e-magazine codificando.net 2.5 aplicativos pense no aplicativo mashup como uma combinação de serviços de camada intermediária e de lógica leve do negócio para aplicativos baseados na internet sua codificação é usualmente escrita utilizando tecnologias web como php ou asp net mas estamos começando a ver a demarcação entre o processamento do servidor e a indefinição do aplicativo cliente com o surgimento das rich internet applications rias as rias são aplicativos executados no navegador com funcionalidade rica similar na medida em que o tempo passou e o processo de desenvolvimento amadureceu uma boa parte do trabalho ente diante de codificação foi substituída por frameworks e melhores padrões de codificação os scripts personalizados no lado do servidor começaram a ser substituídos por bibliotecas padronizadas que automaticamente geram o necessário script do lado do cliente presenciamos também a padronização dos formatos de mensagens um exemplo disso é a extensão georss para o padrão rss que permite especificar a longitude e a latitude correlatas dos itens do feed os três principais provedores de serviço de mapeamento google microsoft e yahoo são compatíveis com georss e isso significa que os mashups com essa extensão rss abril maio 2009 www.codificando.net 24

[close]

p. 25

utilização de mashups com silverlight e-magazine praticamente não exigem codificação por algum tempo a criação de mashups foi domínio exclusivo do desenvolvedor mas existe um movimento para colocar a habilidade de criá-los diretamente nas mãos do cliente final como os frameworks para sua criação tornaram-se cada vez mais simples de usar e os formatos de mensagens tornam-se mais padronizados o próximo passo lógico será o de construir ferramentas que possam criar mashups algumas dessas ferramentas serão destinadas ao consumidor final pipes da yahoo e popfly da microsoft são exemplos de frameworks e ferramentas que permitem aos usuários criar seus próprios mashups observamos um crescimento na importância do esquema comum e dos meta dados no desenvolvimento atualmente já observamos o surgimento de outros esquemas-padrão como a linguagem de marcação de keyhole kml keyhole markup language para descrever dados geoespaciais ainda mais interessante será o microformats framework de grande potencial destinado à distribuição de significado semântico que pode ser facilmente lido por software do tipo mashup 2.8 mashups na empresa equipes de esportes do local e os resultados dos seus jogos recentes como início de conversação ou passatempo em chamadas de longa duração 2.8.1 aproveitar os serviços já construídos por você o retorno imediato de uma soa pode ser concretizado quando as organizações começam a mesclar e fazer a correspondência desses serviços entre objetivos novos e existentes pode ser instigante iniciar o aproveitamento dos serviços ou aplicativos nos modos jamais imaginados no momento em que foram escritos quicken loans mashups para resultados mais rápidos 2.8.9 aproveitar os serviços construídos por terceiros É importante compreender que não se pode ter todas as informações do mundo e que há um retorno sobre o investimento bastante alto quando você simplesmente aproveita o trabalho árduo de outra pessoa em lugar de reinventar a roda 2.8.10 construir serviços que terceiros possam aproveitar imagine-se arquiteto de aplicativos de um sistema de call center que recebe chamadas sobre assistência técnica de garantia e peças sobressalentes utilizando o número de telefone do cliente poderíamos exibir seus registros incluindo um histórico de compras esse interessante aplicativo já está implantado em muitas centrais de chamadas mas se além de pesquisar as informações do cliente pudéssemos associar o número do telefone em um mapa utilizando um serviço disponível ao público e também exibir uma lista de centros de assistência técnica do local ou fornecedores de peças dos produtos incluídos no mapa com esses dados em mãos poderíamos responder as perguntas dos clientes em segundos e se também pesquisássemos as condições atuais do tempo nessa área ou as outra oportunidade para as empresas na medida em que os mashups tornam-se cada vez mais populares é a de construir serviços que possam ser facilmente consumidos por aplicativos voltando ao exemplo que citamos o atendente do serviço de chamadas pode deixar o cliente feliz informando o endereço da loja mais próxima mas imagine se as próprias lojas expusessem seus inventários e disponibilidade de produtos para o mashup agora o atendente do serviço de chamadas pode fornecer informações ainda mais detalhadas e valiosas ao cliente esse tipo de serviço seria importante para o cliente para a central de chamadas e para a própria loja 2.9 plataforma ágil e-magazine codificando.net muitos mashups foram criados para www.codificando.net abril maio 2009 25

[close]

Comments

no comments yet