Você está na página 1de 63

Sumrio

04 :. Conceitos e Caractersticas do Microsoft SQL Server


Edio 14 Nmero 14 Ano 04 2010
Por: Danilo Marion Munhoz e Juliano Schimiguel

EDITORES Alexandre Tarifa Diego Nogare Emerson Facunte Sergio Gonalves REVISO Felipe Pocchini Fernanda Sallai MONTAGEM / FORMATAO Fernanda Sallai EDITORAO E DIAGRAMAO Adriano Almeida COLABORADORES Anderson Castro Caio Azevedo Danilo Marion Munhoz Diego Moreno da Silva Manhani Emerson Facunte Felipe Pocchini Fernanda Sallai Fernando Gonalves Flvio Cezar Canducci Dias Juliano Schimiguel

17 JavaScript trabalhando com WebService


Por: Flvio Cezar Canducci Dias

20:. Ferramentas Case para Modelagem de Banco de Dados


Por: Diego Moreno da Silva

Manhani e Juliano

Schi-

miguel

26:. Utilizando Update Panel do ASP .Net Ajax de forma consciente


Por: Fernando Gonalves

39:. Aplicaes com N camadas em ASP .Net - Parte III


Por: Felipe Pocchini

Fale com Editor


muito importante para a equipe saber a sua opinio sobre a revista, caso tenha alguma critica, sugesto, ou elogio entre em contato. Caso tenha interesse em publicar um artigo na revista envie o ttulo e um resumo do tema em formato Word.
site@codificandomagazine.net

43:. Conhea e construa sua primeira aplicao em Silverlight


Por: Anderson Castro

50:. SQL Reporting Service 2005 Parte IV


Por: Caio Azevedo

56:. Direto do tnel do tempo... Exceptions! - Voc ainda vai ter uma
Por: Emerson Facunte

Produzido por:

60:. Windows Forms Criando um Splash Screen


www.codificando.net
Por: Fernanda Sallai

03:. Editorial

62:. .Close ( )

Edio 14 Nmero 14 Ano 04 2010

Editorial
No ms passado, em fevereiro, tivemos o MVP Global Summit 2010, que o maior evento para no funcionrios da Microsoft no mundo e aconteceu na sede da Microsoft em Redmond WA (Estados Unidos). Ns do Codificando .Net fomos em peso em 2009: Andrey Sanches, Alexandre Tarifa, Diego Nogare e Emerson Facunte. Em 2010 estvamos l novamente, no os quatro lderes do Codificando .Net, mas estvamos l marcando presena!

Esse pequeno texto pra mostrar que possvel chegar l, alcanar seus objetivos, mostrar para o mundo que ns somos capazes de produzir contedo de qualidade, como estes artigos da revista Codificando .Net e-Magazine! Eu comecei minha trajetria escrevendo artigos, e depois de muito trabalho tive o meu reconhecimento mundial. Se voc tiver interesse em colaborar e ser reconhecido, tenha certeza que a famlia Codificando .Net vai te dar o apoio que voc precisar. Grande abrao, Diego Nogare site@codificandomagazine.net

EDITORIAL

Estou comentando um pouquinho sobre o que o evento, pra mostrar a importncia que as comunidades tcnicas tm para a Microsoft. muito difcil explicar em um pargrafo o que o evento e a importncia dele, mas acreditem, um evento que no tem preo ser convidado para participar. Muitos dos MVPs comearam suas contribuies em grupos de usurios ao redor do mundo, que o caso do Andrey Sanches e do meu. Ns comeamos no Codificando .Net algum tempo depois de ele j ter sido criado, comeamos ajudando a organizar evento, montando artigo, palestrando. E de pouco em pouco fomos mostrando trabalho na comunidade e ganhando respeito e reconhecimento. Reconhecimentos internacionais, atravs do titulo de MVP!

e-magazine

Conceitos e Caractersticas do Microsoft SQL Server


Por: Danilo Marion Munhoz e Juliano Schimiguel

1. Introduo O SQL Server 2008 baseia-se na viso da Plataforma de Dados da Microsoft, o que ajuda as organizaes no gerenciamento dos dados, em qualquer local e a qualquer momento. Ele permite que voc armazene seus dados a partir de documentos estruturados, semi-estruturados ou mesmo no estruturados, como imagens e msicas, diretamente dentro do banco de dados. O SQL Server 2008 fornece um vasto conjunto de servios integrados que permitem que voc faa muito mais com seus dados como consulta, pesquisa, sincronizao, relatrios e anlises. Os dados podem ser armazenados em grandes servidores de um data-center e acessados a partir deles para desktops e dispositivos mveis, fornecendo controle sobre os dados, no importando o local em que esto armazenados [3]. Suas caractersticas so: Integrao com os servios de multithreading (mltiplas linhas), Agendamento, Monitor de Desempenho, Gerenciamento centralizado de todos os servidores atravs de uma arquitetura de gerenciamento distribuda, com uma interface visual de gerenciamento, e log de eventos do Windows NT. Um usurio pode se conectar ao SQL Server com a mesma senha usada para a rede Windows

NT. O SQL Server 2008 permite que voc utilize seus dados em aplicativos personalizados desenvolvidos no Microsoft .NET e Visual Studio, na arquitetura SOA (service-oriented architecture - arquitetura orientada a servios) e em processos de negcios por meio do Microsoft BizTalk Server, enquanto os profissionais da informao podem acessar os dados diretamente nas ferramentas que utilizam no dia-a-dia, como o Microsoft Office System 2007. O SQL Server 2008 fornece uma plataforma de dados confivel, produtiva e inteligente para todas as suas necessidades relacionadas aos dados. 2. Viso Geral do SQL Server 7.0
2.1 Distributed Management Framework (DMF)

Codificando.net e-magazine
|

O SQL Server possui uma arquitetura distribuda de gerenciamento (distributed management framework), composta de objetos, servios e componentes. Atravs dela, vrios servidores podem ser gerenciados completamente a partir de qualquer local na rede. Entre outros componentes, essa arquitetura composta de:
Fev / Mar - 2010

www.codificando.net

Conceitos e Caractersticas do Microsoft SQL Server

e-magazine

SQL-DMO: biblioteca de objetos ActiveX que expe interfaces para todas as funes de gerenciamento do SQL Server e pode ser usada em qualquer linguagem compatvel com automao ActiveX. Permite gerenciar servidores, bancos de dados, tabelas e outros objetos relacionados ao banco de dados. SQL Enterprise Manager: ferramenta grfica de administrao que, utilizando os objetos SQL-DMO, simplifica o gerenciamento de um ambiente de mltiplos servidores. Servios SQLServerAgent e MSSQLServer: executando no servidor NT, o servio SQLServerAgent permite agendar tarefas, como backups, por exemplo, e definir alertas para informar quando ocorrem condies de erro diversas. O servio MSSQLServer o componente central, que permite inserir, atualizar e consultar dados armazenados no SQL Server.
2.2 Ferramentas de Administrao

base_do_SQLServer\BINN\SQL Server Enterprise Manager.MSC", substituindo pasta-base_do_SQLServer pela pasta onde voc instalou o SQL Server 7. Por padro, C:\MSSQL7. Service Manager(SQLMANGR.EXE): permite iniciar, pausar, continuar e parar ("finalizar") os servios do SQL Server. Query Analyzer(ISQLW.EXE): permite administrar diretamente o SQL Server usando comandos Transact-SQL. Os comandos SQL podem ser executados interativamente, ou podem ser executados de procedimentos armazenados ou scripts. Profiler (SQLTRACE.EXE): permite monitorar toda a atividade do servidor e registrar essa atividade em arquivos de log, incluindo comandos SQL executados pelo servidor. ClientNetwork Utility CLICONFG.EXE): configura o software de acesso cliente numa estao.

Codificando.net e-magazine

O SQL Server vem com vrias ferramentas de administrao que podem ser executadas a partir de um servidor Windows NT, de uma estao Windows NT Workstation, ou at mesmo a partir do Windows 95/98. So elas: Enterprise Manager: como j foi dito, gerencia vrios servidores, permitindo executar qualquer tarefa relacionada ao SQL Server. Ele Funciona dentro MMC (Microsoft Management Console). Para execut-lo atravs de: Iniciar, Executar, entre com a seguinte instruo: mmc /s "pasta-

Performance Monitor (SQLCTRS.PMC: integra o Performance Monitor ("Desempenho do Sistema") do Windows NT com o SQL Server, para monitorar o desempenho do sistema. Server Network Utility (SRVNETCN.EXE): permite adicionar, remover ou configurar as Net-libraries, que so os protocolos aceitos para comunicao do cliente com o servidor. SQL Server Books Online: toda a documentao do SQL Server, para consultar on-line. Permite fazer pesquisas de texto
Fev / Mar - 2010

www.codificando.net

Conceitos e Caractersticas do Microsoft SQL Server

e-magazine

na documentao. Para execut-lo, em Iniciar, Executar, entre com HH pasta_base_do_SQLServer\BOOKS\SQLBO L.CHM, onde pasta_base_do_SQLServer o diretrio onde o SQL Server foi instalado. Por padro, C:\MSSQL7. Uninstall SQL Server 7.0: permite que voc remova a instalao existente do SQL Server 7.0 [1]. 3. Sistemas Gerenciadores de Banco de Dados Um sistema gerenciador de banco de dados (SGBD) como o SQL Server responsvel por armazenar dados de forma confivel e permitir fcil recuperao e atualizao desses dados. Um SGBD relacional armazena dados de forma relacional, isto na forma de linhas e colunas.
3.1 Conceitos Relacionais

nas (column) ou field (campo). Um banco de dados (database) um conjunto de tabelas que contm dados relacionados. Por exemplo, um sistema de contas a pagar poderia ter um banco de dados de contas a pagar, com uma tabela para duplicatas, uma tabela para bancos, uma tabela para contas etc... Um ndice (index, plural 'indexes' ou 'indices') um mecanismo que permite pesquisar rapidamente por linhas em uma tabela, dado o valor de uma determinada coluna (ou algumas colunas) da tabela. Um ndice primrio ou chave primria define um valor nico, que no pode ser repetido em outras linhas da tabela. Uma consulta (query) um pedido de pesquisa no banco de dados, que permite obter todo um subconjunto da tabela ou de vrias tabelas, especificando as condies de seleo. 3.2 Desktop x Cliente/Servidor Uma aplicao que utiliza bancos de dados composta de trs partes: Interface com o usurio: responsvel por validar as entradas do usurio, e iniciar pesquisas de acordo com um pedido do usurio. Mecanismo de acesso (database engine): responsvel pela manuteno das estruturas de dados necessrias em arquivos, pelos detalhes internos do acesso aos dados, e pela manuteno da integridade dos dados. Armazenamento de dados: arquivos que contm os dados em si.

Um registro (record) ou linha (row) um grupo de variveis com tipos de dados diferentes, que armazenam dados relacionados. Por exemplo, um registro pode conter os dados relativos a um produto vendido pela empresa, como descrio, cdigo de identificao, quantidade em estoque. Um campo (field) ou coluna (column) um dos itens de informao dentro de uma linha da tabela, como a descrio da informao. Uma tabela (table) um conjunto de linhas (registros) com a mesma estrutura, armazenados de forma permanente em disco. As tabelas so compostas de linhas (row) ou registros (record) e colu-

Codificando.net e-magazine
|

www.codificando.net

Fev / Mar - 2010

Conceitos e Caractersticas do Microsoft SQL Server

e-magazine

Um banco de dados "desktop" (ou baseado em arquivos), aquele no qual a interface com o usurio e o mecanismo de acesso ficam no mesmo computador (a estao) e apenas os arquivos de dados ficam num servidor de rede. Operaes de consulta ou pesquisa devem passar atravs da rede. Por exemplo, quando um usurio quer ver uma relao de contas a pagar, mas apenas em determinado perodo, o sistema deve selecionar alguns registros baseado na data informada. No ambiente desktop, a estao traz todos os registros atravs da rede, mesmo os que no so utilizados. O trfego gerado na rede grande, principalmente quando vrias estaes acessam simultaneamente o servidor. J num banco de dados cliente/servidor, a interface com o usurio fica na estao e se comunica remotamente com o mecanismo de acesso, que um sistema gerenciador de banco de dados (SGBD) rodando no servidor. Quando o SGBD recebe um pedido para selecionar alguns dados, ele acessa localmente os dados no servidor e retorna apenas o resultado pedido. No caso de uma atualizao, no necessrio nem mesmo retornar um resultado, apenas informar que a atualizao foi feita. 4. Fundamentos de Arquitetura do SQL Server Um banco de dados uma coleo de tabelas e outros objetos relacionados. Existem dois tipos de banco de dados: os bancos de dados do sistema so usados pelo SQL Server para operar e gerenciar

o sistema e os bancos de dados do usurio so usados para armazenar os seus prprios dados. O catlogo do sistema composto de tabelas no banco de dados master. 4.1 Bancos de Dados do Sistema Ao instalar o SQL Server, so criados os seguintes bancos de dados do sistema: master controla os bancos de dados do usurio e a operao do SQL Server. Tem como tamanho inicial de 16 MB. importante manter um backup atualizado desse banco de dados. Contm informaes sobre:

Contas de login; Processos em execuo; Mensagens de erro; Bancos de dados criados no servidor; Espao alocado para cada banco de dados; Travas (locks) de linhas ativas; Espao alocado para cada banco de dados; Procedimentos armazenados do sistema.

Codificando.net e-magazine
|

Model: um modelo usado para criao de novos bancos de dados, que pode ser usado para definir padres, como autorizaes default de usurio, opes de configurao, tipos de dados etc... Sempre que um banco de dados do usurio criado, o contedo de model copiado para ele. Seu tamanho inicial de 2.5 MB. Esse modelo pode ser alterado. tempdb Usado para armazenar tabelas temporrias e resultados intermedirios de consultas. Geralmente o seu contedo

www.codificando.net

Fev / Mar - 2010

Conceitos e Caractersticas do Microsoft SQL Server

e-magazine

excludo sempre que um usurio se desconecta. Ele cresce automaticamente conforme necessrio. Seu tamanho inicial de 8 Mb.
Informao sobre cada coluna de cada tabela, e cada parmetro de procedimento. Para cada objeto de banco de dados syscomments (viso, regra, default, trigger, procedimento) contm o texto de sua definio. Inclui informaes sobre todas as restrisysconstraints es usadas no banco de dados. Registra as dependncias entre objetos sysdepends do banco de dados. Tem uma linha para cada grupo de arquisysfilegroups vos armazenado em um banco de dados. Informaes sobre cada arquivo de um sysfiles banco de dados. Informaes sobre todas as restries de sysforeignchaves estrangeiras encontradas em todas keys as tabelas de um banco de dados. sysfulltextca- Lista todos os catlogos de texto completatalogs to para esse banco de dados. Informao para cada ndice criado e para cada tabela sem ndices, alm de sysindexes informaes para cada tabela que possui colunas text ou image. Informao sobreas chaves e as colunas sysindexkeys de um ndice. Informaes sobre os membros de cada sysmembers papel. Informao sobre cada objeto do banco sysobjects de dados (tabelas, vises, procedimentos, regras, defaults e gatilhos). Informao sobre permisses atribudas a syspermisusurios, grupos e papis em um banco sions de dados. Permisses atribudas a contas de segusysprotects rana. Informao sobre toda restrio de intesysreferences gridade referencial usada numa coluna ou tabela de um banco de dados. Informao sobre cada tipo de dados (do systypes sistema ou definido pelo usurio). Informao sobre cada usurio que pode sysusers ter acesso ao banco de dados. syscolumns

sysallocati- Informaes sobre cada unidade de alocaons o gerenciada pelo SQL Server Informaes sobre cada arquivo gerenciasysaltfiles do pelo SQL Server Informao sobre conjuntos de caracteres syscharsets (character sets) e ordens de classificao (sort orders). sysconfiguParmetros de configurao do SQL Serres, syscurver. configs Informao sobre os bancos de dados exissysdatabases tentes. Informao sobre os dispositivos, tais cosysdevices mo o dispositivo de fita. syslanguaIdiomas suportados pelo servidor. ges syslockinfo Travas (locks) ativas. syslogins Contas de login.

sysmessages Mensagens de erro do sistema sysoledbu- Contm uma linha para cada usurio e sers senha mapeados em um servidor. Informao sobre os monitores de perforsysperfinfo mance. sysprocesses Processos em execuo sysremoteloContas de login remotas. gins sysservers Servidores remotos conhecidos. 4.2 Tabelas do Sistema

As tabelas do sistema, armazenadas no banco de dados master e em cada banco de dados de usurio, contm informaes sobre o SQL Server e sobre cada banco de dados de usurio. Existem 17 tabelas em cada banco de dados que formam o catlogo do banco de dados. Todas comeam com o prefixo sys e contm as seguintes informaes: Existem tambm tabelas localizadas apenas No banco de dados master, que compem o catlogo do sistema. Elas contm as seguintes informaes: 5. Componentes do Banco de Dados Um banco de dados composto de objetos, ndices, tipos de dados e restries: cada

Codificando.net e-magazine

Msdb: Usado pelo servio SQLServerAgent, para controlar tarefas como replicao, agendamento de tarefas, backups e alertas. Contm algumas tabelas de sistema, que armazenam informaes usadas pelo SQLExecutive. Seu tamanho inicial de 12 Mb [1].

www.codificando.net

Fev / Mar - 2010

Conceitos e Caractersticas do Microsoft SQL Server

e-magazine

objeto tem uma linha correspondente na tabela sysobjects. Seu tamanho mnimo 1 Mb.
Tabela (table) Viso (view) Default Regra (rule) Conjunto de linhas, compostas de colunas. Cada coluna armazena um item de dado. Uma forma alternativa de visualizar dados em uma tabela ou mais. Um valor que inserido numa coluna caso no tenha sido informado um valor. Valida os dados que podem ser inseridos em uma coluna.

6. Estrutura dos Bancos de Dados Todo banco de dados do SQL Server constitudo de dois ou mais arquivos fsicos de sistema operacional. Podem haver trs tipos diferentes de arquivos fsicos: Arquvios primrios: Todo banco de dados inclui ao menos um arquivo primrio, que feito para armazenar todos os objetos de banco de dados, tais como tabelas e ndices. Este arquivo tambm usado para apontar para o resto dos arquivos que constituem o banco de dados. Arquivo secundrio: Um banco de dados s ter um arquivo secundrio se o arquivo primrio no for grande o suficiente para aramzenar todos os dados. Um banco de dados pode ter um, ou muitos arquivos secundrios. Arquivo de log: Todo banco de dados tem um arquivo de log, que usado para registrar todas informaes antes que elas sejam escritas em um arquivo primrio ou secundrio. Esses dados so utilizados para ajudar na recuperao, no caso de um problema com o banco de dados. Um banco de dados pode ter um ou vrios arquivos de log se o arquivo de log original ficar sem espao.
6.1 Nomes Lgicos e Fsicos

Procedimento Uma seqncia de comandos SQL, armazenado compilados e armazenados no banco (stored procedude dados. re) Uma seqncia de comandos executaGatilho (trigger) dos automaticamente quando os dados so modificados numa tabela.

5.1 Objetos

Um objeto contm dados ou interage com os dados. Cada objeto tem uma linha correspondente a tabela sysobjects. Existem os seguintes tipos de objetos [6]:
5.2 ndices

Um ndice composto de ponteiros para os dados, ordenados pelo valor de uma ou mais colunas. Atravs de um ndice, possvel acessar mais rapidamente os dados, dado o valor de algumas colunas.
5.3 Tipos de Dados

Codificando.net e-magazine

Um tipo de dados especifica quais os valores que podem ser armazenados em uma coluna.
5.4 Restries (Constraints)

Uma restrio refora a integridade dos dados em uma tabela, ou entre duas tabelas, controlando quais dados podem ser inseridos.

Um dispositivo de banco de dados um arquivo do sistema operacional, por exemplo, o banco de dados MASTER o arquivo C:\MSSQL7 \DATA\master.mdf, localizado no servidor. Como default, os bancos de dados

www.codificando.net

Fev / Mar - 2010

Conceitos e Caractersticas do Microsoft SQL Server

e-magazine

so criados no diretrio C:\MSSQL7 \DATA, mas podem ser criados em qualquer drive ou diretrio acessvel ao SQL Server. Cada banco de dados tem um nome fsico (o caminho e nome do arquivo) e um nome lgico (nome usado dentro do SQL Server). Os dois no precisam estar relacionados. Por exemplo, ao criar um banco de dados chamado VENDAS, o SQL Server, por default, cria um arquivo chamado VENDAS.mdf, no diretrio C:\MSSQL7\DATA. O nome fsico pode ser qualquer nome suportado pelo sistema operacional. O nome lgico pode ter at 30 caracteres e geralmente s contm letras e nmeros (espaos no so recomendados) [1]. 6. Estrutura dos Bancos de Dados Todo banco de dados do SQL Server constitudo de dois ou mais arquivos fsicos de sistema operacional. Podem haver trs tipos diferentes de arquivos fsicos: Arquvios primrios: Todo banco de dados inclui ao menos um arquivo primrio, que feito para armazenar todos os objetos de banco de dados, tais como tabelas e ndices. Este arquivo tambm usado para apontar para o resto dos arquivos que constituem o banco de dados. Arquivo secundrio: Um banco de dados s ter um arquivo secundrio se o arquivo primrio no for grande o suficiente para armazenar todos os dados. Um

banco de dados pode ter um, ou muitos arquivos secundrios. Arquivo de log: Todo banco de dados tem um arquivo de log, que usado para registrar todas informaes antes que elas sejam escritas em um arquivo primrio ou secundrio. Esses dados so utilizados para ajudar na recuperao, no caso de um problema com o banco de dados. Um banco de dados pode ter um ou vrios arquivos de log se o arquivo de log original ficar sem espao.
6.1 Nomes Lgicos e Fsicos

Um dispositivo de banco de dados um arquivo do sistema operacional, por exemplo, o banco de dados MASTER o arquivo C:\MSSQL7 \DATA\master.mdf, localizado no servidor. Como default, os bancos de dados so criados no diretrio C:\MSSQL7 \DATA, mas podem ser criados em qualquer drive ou diretrio acessvel ao SQL Server.
UnidaCada unidade de alocao tem 512 Kb (meio des de megabyte). Um banco de dados ocupa sempre alocaum nmero inteiro de unidades de alocao. o: Um extent tem 64 Kb. Cada objeto de banco de Extents: dados (tabelas, ndices) ocupa um nmero inteiro de extents Uma pgina (8Kb) a unidade mais bsica de armazenamento. Um objeto do banco de dados Pgina sempre cresce em pginas e em alguns casos (page): pode ficar fragmentado, disperso em pginas distantes uma da outra.

Codificando.net e-magazine
|

Cada banco de dados tem um nome fsico (o caminho e nome do arquivo) e um nome lgico (nome usado dentro do SQL Server). Os dois no precisam estar relacionados. Por exemplo, ao criar um banco de dados chamado VENDAS, o SQL Server, por default, cria um arquivo cha-

www.codificando.net

Fev / Mar - 2010

10

Conceitos e Caractersticas do Microsoft SQL Server

e-magazine

mado VENDAS.mdf, C:\MSSQL7\DATA.

no

diretrio

O nome fsico pode ser qualquer nome suportado pelo sistema operacional. O nome lgico pode ter at 30 caracteres e geralmente s contm letras e nmeros (espaos no so recomendados) [1].
6.2 Subdivises de espao

havia a necessidade de criao de dispositivos (devices), e dentro destes deviam ser criados os bancos de dados. Bem, no existem mais dispositivos no SQL Server 7.0. Depois de fazer excluir ou fazer alteraes no do banco de dados recomendvel fazer backup do banco de dados master, porque ele contm informaes sobre cada banco de dados. Mais especificamente, a tabela de sistema sysdatabases, do banco de dados master, armazena as informaes sobre todos os bancos de dados. Mais adiante, discutiremos com mais detalhes as tabelas de sistema.
7.1 O Log de Transaes (Transaction Log)

Cada banco de dados dividido ainda em:


6.3 Arquivos predefinidos

Ao instalar o SQL Server, so criados quatro bancos de dados, com os seguintes nomes lgicos:

MASTER: composto pelos arquivos master.mdf e mastlog.ldf (arquivo primrio e de log) MSDB: composto pelos arquivos msdbdata.mdf e mastlog.ldf (arquivo primrio e de log, que por sinal o mesmo arquivo de log do banco de dados master) MODEL: composto pelos arquivos model.mdf e modellog.ldf. TEMPDB: composto pelos arquivos tempdb.mdf e templog.ldf

Quando voc cria um banco de dados, criado tambm um log de transaes (transaction log) para esse banco de dados. Esta uma rea reservada onde todas as alteraes feitas no banco de dados so registradas. Qualquer comando SQL que modifica os dados registra as alteraes antes no log de transaes, depois nas tabelas alteradas. Quando executado um comando que altera os dados (insere, altera ou exclui linhas numa tabela), essa alterao salva primeiramente no log de transaes, escrevendo diretamente em disco. Os dados so alterados apenas em memria. Periodicamente, o SQL Server faz um checkpoint, um processo que grava em disco as alteraes feitas em memria. (Geralmente um checkpoint feito uma vez por minuto). O log de transaes permite recuperar o banco de dados a um estado consistente,

Codificando.net e-magazine

7. Criando e Gerenciando Bancos de Dados Voc cria um banco de dados (database) definindo o seu nome, nome do arquivo, tamanho inicial, tamanho mximo e taxa de crescimeno. Inicialmente apenas o administrador do sistema (SA) pode criar ou modificar o tamanho e excluir os bancos de dados, mas ele pode conceder permisses a outros usurios para isso. Em verses anteriores do SQL Server,

www.codificando.net

Fev / Mar - 2010

11

Conceitos e Caractersticas do Microsoft SQL Server

e-magazine

em caso de uma pane no sistema. Sempre que o SQL Server inicia, ele verifica o log de transaes para saber se alguma alterao foi iniciada, mas no salva nos dados. As transaes que no foram confirmadas (commited) so canceladas. Pode ser interessante colocar o log fisicamente em um disco diferente dos dados, o que melhora o desempenho, pois as operaes de E/S podem ser feitas simultaneamente nos dois. Por padro, ao se criar um banco de dados, o log de transaes criado com 25% do tamanho do banco de dados. Podese mudar o tamanho do mesmo. Recomenda-se alocar para o log de 10 a 25% do tamanho do banco de dados [1].
7.2 Criando Bancos de Dados com Comandos SQL

FILENAME = 'caminho_e_nome_arquivo' [, SIZE = tamanho]) }[,..n] ]

8. Documentao de Criao de Bancos de Dados no SQL Server Documentar os passos de criao de bancos de dados SQL Server pode ser til por diversas razes, mas claro que a principal e mais motivadora, o fato de ter um backup do trabalho que voc fez. Isso no necessariamente vai lhe prevenir de perdas de dados, mas vai salvar seu modelo, e um modelo de banco de dados uma coisa terrvel a se perder. O SQL Server tem um gerador de script que torna fcil para voc documentar, e se necessrio reconstruir, seu banco de dados. O gerador de scripts pode construir o banco de dados e os objetos criados no banco de dados. Voc tem a opo de selecionar desde todos at um nico objeto. Voc pode pegar um script de um banco de dados e rod-lo em outro para criar cpias exatas de procedimentos armazenados, regras, gatilhos, etc. Voc pode gerar scripts para os seguintes objetos:

Para gerenciar os bancos de dados com comandos SQL necessrio que se esteja posicionado no banco de dados master. Voc tambm pode criar um banco de dados com o comando SQL, CREATE DATABASE. Sintaxe:
CREATE DATABASE nome_bancodedados [ON { [PRIMARY] (NAME = nome_lgico_arquivo, FILENAME = 'caminho_e_nome_arquivo' [, SIZE = tamanho] [, MAXSIZE = tamanho_mximo] [, FILEGROWTH = taxa_crescimento] }[,...n] ] [LOG ON { (NAME = nome_lgico_arquivo,

Codificando.net e-magazine
|

Tabelas (Tables); Procedimentos armazenados (Stored procedures); Gatilhos (Triggers); ndices (Indexes); Vises (Views); Usurios e Grupos (Users and Groups); Tipos de dados definidos pelo usurio (User-defined data types); Logins;

www.codificando.net

Fev / Mar - 2010

12

Conceitos e Caractersticas do Microsoft SQL Server

e-magazine

Regras (Rules); Default; Tabelas-chave / DRI.

O esquema pode ser salvo em um arquivo nico ou voc pode querer divid-lo baseado em objetos. Independentemente do seu mtodo, voc no tem mais uma boa desculpa para um banco de dados no documentado. 9. Vises (Views) Uma viso (view) uma forma alternativa de olhar os dados contidos em uma ou mais tabelas. Para definir uma viso, usa-se um comando SELECT que faz uma consulta sobre as tabelas. A viso aparece depois como se fosse uma tabela. Vises tm as seguintes vantagens: uma viso pode restringir quais as colunas da tabela que podem ser acessadas (para leitura ou para modificao) o que til no caso de controle de acesso, como veremos mais tarde. Uma consulta SELECT que usada muito freqentemente pode ser criada como viso. Com isso, a cada vez que ela necessria, basta selecionar dados da viso. Vises podem conter valores calculados ou valores de resumo, o que simplifica a operao. Uma viso pode ser usada para exportar dados para outras aplicaes. 10. Integrao de Dados no Microsoft SQL Server 2008 O SQL Server 2008 fornece uma plataforma abrangente, entregando inteligncia onde seus usurios precisam dela.

Compresso de Backup: Manter online os backups baseados em disco caro e demorado. Com a compresso de backup do SQL Server 2008 exige-se menos armazenamento para manter os backups online que so executados de forma muito mais rpida porque exigese menos I/O (entrada/sada) de disco. Paralelismo de Tabela Particionada: As parties permitem que as empresas gerenciem grandes tabelas de maneira mais efetiva, quebrando-as de forma transparente em blocos gerenciveis de dados. O SQL Server 2008 foi construdo sobre os avanos de particionamento no SQL Server 2005, melhorando o desempenho nas grandes tabelas particionadas. Otimizaes de Consulta Star Join: O SQL Server 2008 fornece um aprimorado desempenho de consulta para os cenrios comuns de data warehouse. As Otimizaes de Consulta Star Join reduzem o tempo de resposta consulta, reconhecendo os padres de unio de data warehouse.

Codificando.net e-magazine
|

Grouping Sets: So uma extenso da clusula GROUP BY, que permitem que os usurios definam mltiplos agrupamentos na mesma consulta. Os Grouping Sets produzem um nico conjunto de resultados que equivalente a uma UNION ALL de linhas agrupadas de forma diferente, tornando a consulta de agregao e relatrios mais fceis e rpidos. Captura de Alteraes de Dados: Com o recurso Captura de Alteraes de Dados, as mudanas so capturadas e colocadas em tabelas de alteraes. Ele captura o
Fev / Mar - 2010

www.codificando.net

13

Conceitos e Caractersticas do Microsoft SQL Server

e-magazine

contedo completo das alteraes e mantm a consistncia na tabela cruzada e, at mesmo, trabalha nas alteraes de esquemas. Isto permite que as organizaes integrem as informaes mais recentes no data warehouse. Declarao MERGE SQL: Com a introduo da Declarao MERGE SQL, os desenvolvedores podem controlar os cenrios comuns de data warehousing de maneira mais efetiva, por exemplo, verificando se uma linha existe e, depois, fazendo uma insero ou atualizao. Melhorias de Pipeline do SQL Server Integration Services (SSIS): Os pacotes de Integrao de Dados agora podem escalonar de maneira mais efetiva, fazendo uso dos recursos disponveis e gerenciando as maiores cargas de trabalho da empresa. O novo design melhora a escalabilidade do tempo de execuo em mltiplos processadores. Pesquisas Persistentes do SQL Server Integration Services (SSIS): A necessidade de realizar pesquisas uma das operaes de ETL mais comuns. Isto prevalece especialmente no data warehousing, onde os registros de dados precisam usar as pesquisas para transformarem as chaves corporativas em seus substitutos correspondentes. O SSIS aumenta o desempenho das pesquisas para dar suporte s tabelas maiores [2]. O SQL Server 2008 oferece tambm melhorias na segurana que ajudam a fornecer o gerenciamento efetivo da configurao dos recursos de segurana, uma forte autenticao e controle de acesso, uma criptografia poderosa e recursos de gerenciamento de chave e uma auditoria

aprimorada [5]. 11. Viso Geral do Orientador de Otimizao do Mecanismo de Banco de Dados O Microsoft SQL Server Orientador de Otimizao do Mecanismo de Banco de Dados ajuda na seleo e criao de um conjunto de ndices otimizados, exibies indexadas e parties sem a necessidade de se possuir conhecimentos muito avanados sobre a estrutura do banco de dados e sobre o Microsoft SQL Server. O Orientador de Otimizao do Mecanismo de Banco de Dados analisa uma carga de trabalho e a implementao fsica de um ou mais bancos de dados. A carga de trabalho um conjunto de instrues Transact-SQL que so executadas em um ou mais bancos de dados a serem ajustados e utiliza arquivos de rastreamento, tabelas de rastreamento ou scripts Transact-SQL como entrada de carga de trabalho no ajuste de bancos de dados. Voc pode criar scripts Transact-SQL como cargas de trabalho com o Editor de Consultas no SQL Server Management Studio. Voc pode criar um arquivo e uma tabela de rastreamento como cargas de trabalho usando o Modelo de Ajuste no SQL Server Profiler. Depois de analisar uma carga de trabalho, o Orientador de Otimizao do Mecanismo de Banco de Dados pode recomendar que voc adicione, remova ou modifique estruturas de design fsicas em seus bancos de dados. O supervisor tambm pode recomendar quais estatsticas devem ser coletadas para efetuar backup de estruturas de design fsicas.

Codificando.net e-magazine
|

www.codificando.net

Fev / Mar - 2010

14

Conceitos e Caractersticas do Microsoft SQL Server

e-magazine

As estruturas de design fsicas incluem ndices clusterizados, ndices noclusterizados, exibies indexadas e particionamento e recomenda um conjunto de estruturas de design fsico que reduz os o custo estimado dos otimizadores de consulta da carga de trabalho [4].
11.1 Recursos do Orientador de Otimizao do Mecanismo de Banco de Dados

Considerar alternativas em que voc fornece possveis escolhas de design no formulrio de configuraes hipotticas para avaliao do Orientador de Otimizao do Mecanismo de Banco de Dados.

Concluso Atualmente Banco de Dados so os tpicos mais importantes dentro do campo da informao, de qualquer empresa ou sistema, pois a partir deles que a maioria dos processos so executados, e para que isso ocorra com sucesso no basta somente existir o Banco de Dados por si somente, mas tambm precisa-se de um Software Gerenciador de Banco de Bados (SGBD), que indispensvel para que esse processo se desencadeie e que o seu objetivo ocorra corretamente. Todo armazenamento de dados, todo tipo de armazenamento importante depositado no Banco de Dados, e nele que fica depositado. O SGBD uma funcionalidade muito cuidadosa, pois por esse meio que se pode modificar, incluir ou apagar um dado que possa ser ou no, importante. Em resumo um Banco de Dados depois de implantado, precisa ser gerenciado, mas gerenciado com perfeio. Referncias Bibliograficas [1] Site Apostilando. Apostila Completa de SQL Server. Microsoft SQL Server 7.0 [on-line]. Disponvel em: http:// www.apostilando.com/download.php? cod=2423&categoria=Banco %20de% 20Dados. ltimo acesso: 09.12.2009. [2] Wikipdia, Microsoft SQL Server.

O Orientador de Otimizao do Mecanismo de Banco de Dados pode:

Recomendar a melhor combinao de ndices para bancos de dados utilizando o otimizador de consulta para analisar consultas em uma carga de trabalho. Recomendar parties alinhadas ou desalinhadas para bancos de dados referenciados em uma carga de trabalho. Recomendar exibies indexadas para bancos de dados referenciados em uma carga de trabalho. Analisar os efeitos das mudanas propostas, inclusive o uso de ndice, distribuio de consultas entre tabelas e desempenho de consultas na carga de trabalho. Recomendar modos de ajuste do banco de dados para um pequeno conjunto de consultas de problema. Permitir a personalizao da recomendao especificando opes avanadas, como restrio de espao em disco. Fornecer relatrios que resumam os efeitos de implementao das recomendaes para uma determinada carga de trabalho.

Codificando.net e-magazine
|

www.codificando.net

Fev / Mar - 2010

15

Conceitos e Caractersticas do Microsoft SQL Server

e-magazine

Integre Qualquer Tipo de Dados [onhttp:// line]. Disponvel em: pt.wikipedia.org/wiki/ Microsoft_SQL_Server. ltimo acesso: 09.12.2009. [3] Microsoft, TechNet Brasil. TechCenter do Microsoft SQL Server 2008. Informaes sobre o produto [onhttp:// line]. Disponvel em: www.microsoft.com/brasil/servidores/ sql/ overview.mspx. ltimo acesso: 09.12.2009. [4] Microsoft, TecNet Brasil. Viso geral do Orientador de Otimizao do Mecanismo de Banco de Dados [on-line]. http:// Disponvel em: technet.microsoft.com/pt-br/library/ms 173494.aspx. ltimo acesso: 09.12.2009. [5] Microsoft, MSDN Brasil, Tecnologias do SQL Server 2008 [on-line]. Disponvel em: http://www.microsoft.com/brasil/ servidores/sql/technologies/ security.mspx. ltimo acesso: 09.12.2009. [6] Oficina da Net. SQL Server [on-line]. http://www.oficinadanet.com.br/ artigo/501/sql_ server. ltimo acesso: 09/12/2009. Danilo Marion Munhoz
Aluno de Tecnologia em Anlise e Desenvolvimento de Sistemas FATEPA Faculdade de Tecnologia Unianchieta Centro Universitrio Anchieta Jundia, SP

Codificando.net e-magazine

Prof. Dr. Juliano Schimiguel


Professor do Curso de Tecnologia em Anlise e Desenvolvimento de Sistemas FATEPA Faculdade de Tecnologia Unianchieta Centro Universitrio Anchieta Jundia, SP

www.codificando.net

Fev / Mar - 2010

16

e-magazine

JavaScript trabalhando com WebService


Por: Flvio Cezar Canducci Dias

Nesse artigo mostrarei como trabalhar com JavaScript e chamar funes de um WebService. Utilizaremos a ferramenta Microsoft Visual Web Developer 2008 Express Editon. Criaremos uma aplicao ASP.NET Web Site chamada JSWebService usando a linguagem Visual Basic conforme as figuras 1 e 2.

O projeto criado ser exibido conforme figura 3.

Figura 3. Exibindo estrutura do projeto criado.

Figura 1. Criando um novo Projeto (Web Site).

O prximo passo adicionar no projeto JsWebService um novo item do tipo WebService , clique com o boto direito do mouse em cima do nome do projeto e vai aparecer o menu, escolha Add New Item. Veja o exemplo na figura 4:

Codificando.net e-magazine

Figura 2. Configurando o projeto.

Figura 4. Adicionando um item (Add New Item).

www.codificando.net

Fev/ Mar - 2010

17

JavaScript trabalhando com WebService

e-magazine

Quando abrir a janela de Adicionar um novo item (Add New Item), procure o item WebService, troque seu nome para Wjs.asmx e clique no boto Add (Adicionar) . Veja na figura 5:

Vamos ento criar um simples funo de soma como est ilustrada na figura 7:

Figura 5. Adicionando ao projeto um WebService.

Figura 7. Criando uma funo de soma que vai ter dois parmetros e retornar a soma.

Pronto logo aps essa adio de um Web Service vamos criar um rotina simples de soma, mas, antes de mais nada devemos usar o: <System.Web.Script.Services.Sc riptService()> que serve para fazer chamadas em Javascript ( s descomentar a linha). Veja como fica na figura 6:

Agora vamos para a pgina Default.aspx na parte source e adicionaremos um ScriptManager que vai gerenciar as nossas rotinas de JavaScript. Vamos atribuir em seu Services o nosso Web Service. Veja na figura 8:

Codificando.net e-magazine

Figura 8. Adicionado um ScriptManager e em seus Services referenciar o seu WebService (WJs.asmx).

Figura 6. Descomentando a linha System.Web.Script.Services.ScriptService()>.

Com isso vamos criar a interface do usurio usando dois textbox, um boto html para executar o nosso javascript (em chamar em seu onclick=Soma();) e um div com id=resposta para receber o retorno da soma. Veja na figura 9:

www.codificando.net

Fev/ Mar - 2010

18

JavaScript trabalhando com WebService

e-magazine

11) e a funo Error retornar algum erro (na figura 12) que sero mostrada na tag div com o ID resposta.

Figura 9. Interface do usurio pronta. Figura 11: Projeto sendo testado retornando a soma dos dois valores.

Vamos ainda codificar as rotinas de Javascript para chamadas feitas no WebService dentro da tag <head></head>. Conforme a figura 10:

Figura 12: Projeto sendo testado, mas, retornou um erro(a no um valor do tipo inteiro, ou seja, a no nmero).

Codificando.net e-magazine

Figura 10. Javascript completo para chamada do nosso WebService.

Esse artigo mostrou a grande facilidade de trabalhar com javascript chamando funes feitas em um Web Service. Esse foi um exemplo simples de soma, mas, voc pode implementar para qualquer funo e colocar em sua Home (pgina principal). Flvio Cezar Canducci Dias
fulviocanducci@hotmail.com) Sou estudante do curso de Sistemas de Informao da Faculdade UNIESP Presidente Prudente e programador Web a 5 anos com as linguagem PHP, ASP, ASP.NET(C# e vb.Net). Configuro Servidores 2003 Server para rodar aplicaes Web (IIS e FTP) e Active Directory (configuraes intermedirias)

Na figura 10, temos a rotina completa para a chamada do nosso WebService. A funo Soma chamar o Wjs.Soma que rotina feita em nosso WebService, a funo Sucesso retorna a resposta da soma dos dois valores informados (na figura

www.codificando.net

Fev/ Mar - 2010

19

e-magazine

Ferramentas Case para Modelagem de Banco de Dados


Por: Diego Moreno da Silva Manhani e Juliano Schimiguel

1. Introduo Ferramentas CASE so bastante usadas para facilitar a modelagem dos Bancos de Dados, hoje no mercado temos uma variedade grande de ferramentas CASE, sendo que todas elas tem caractersticas em comum, como a possibilidade de modelar os dados de forma grfica (desenhando tabelas e relacionamentos), outras semelhanas so o custo absurdo para a aquisio do software. A palavra CASE vem do ingls Computer-Aided Software ou Engenharia de Software auxiliada por computador. Neste artigo abordaremos alguns exemplos de Ferramentas para Modelagem para Banco de Dados. Em resumo, as ferramentas CASE automatizam uma grande variedade de tarefas: Gerao de documentao,Testes, Engenharia Reversa, Gerao de cdigo, Gerao de Relatrios entre outras atividades. Por este motivo, tambm so conhecidas como Ferramentas de Produtividade. Escolher a melhor ferramenta no uma tarefa simples. Cada empresa tem necessidades e problemas especficos a serem resolvidos. At a dcada passada era comum o uso de linguagem de modelagem textual, hoje, graas s ferramentas de edio, estes tipos de modelos no so mais comuns.

2. Conceito de Ferramentas Case


2.1. O que so ferramentas Case

Ferramentas CASE (do ingls ComputerAided Software Engineering) uma classificao que abrange todas ferramentas baseada em computadores que auxiliam atividades de engenharia de software, desde anlise de requisitos e modelagem at programao e testes. Podem ser consideradas como ferramentas automatizadas que tem como objetivo auxiliar o desenvolvedor de sistemas em uma ou vrias etapas do ciclo de desenvolvimento de software. Temos trs categorias de ferramentas que so: Lower CASE ferramentas de codificao (front-end): Do apoio parte fsica, isto , a codificao testes e manuteno da aplicao. Upper CASE ferramentas de anlise, projeto e implementao: apiam as etapas iniciais de criao dos sistemas: as fases de planejamento, anlise e projeto do programa ou aplicao. Integrated CASE ferramentas de unio de Upper e Lower CASE: Classifica os produtos que cobrem todo

Codificando.net e-magazine
|

www.codificando.net

Fev / Mar - 2010

20

Ferramentas Case para Modelagem de Banco de Dados

e-magazine

o ciclo de vida do software, desde os requisitos do sistema at o controle final da qualidade.


2.2. Para que sevem as ferramentas Case de modelagem

Produtividade aumentada; Ajuda a tomar decises mais rpidas; Menor a quantidade de cdigos de programao; Melhoria e reduo de custos na manuteno.
2.32. Desvantagens

As ferramentas Case surgiram para facilitar a criao dos modelos, as mais avanadas permitem a gerao de uma parte do cdigo-fonte do software a partir do modelo e at a gerao do banco de dados a partir do modelo de entidade relacionamento. O principal objetivo facilitar o projeto de banco de dados, possibilitando especificar a estrutura geral do banco de dados. Funcionam para modelos conceituais relacionais, objetos-relacionais ou orientado a objetos. Os bancos de dados so modelados atravs de Entidade Relacionamento. O principal objetivo facilitar o projeto de banco de dados, possibilitando especificar a estrutura geral do banco de dados. Um dos componentes indispensveis de uma ferramenta CASE a modelagem visual, ou seja, a possibilidade de representar, atravs de modelos grficos, o que esta sendo definido. Modelagem de dados uma descrio dos tipos de informao que esto armazenadas em um banco de dados. Dentre as tcnicas utilizadas para construo dos modelos utiliza-se linguagem de modelagem de dados, que podem ser grficas ou textuais ().
2.3. Vantagens e Desvantagens em utilizar ferramentas Case
2.3.1. Vantagens

Incompatibilidade de ferramentas; Treinamento para utilizao; Custo alto para aquisio do software; Custo alto da licena do software.

3. Alguns exemplos de ferramentas para Modelagem de Banco de Dados Existe uma grande quantidade de ferramentas que auxiliam na modelagem de banco de dados. Algumas to completas que fazem desde a modelagem conceitual at a implementao, tratando inclusive da integridade referencial. Os nveis de maturidade destas ferramentas so altssimos e muitas implementam, inclusive, tcnicas de engenharia reversa como o ERWin, OracleDesign, PowerDesign e o DBDesign.

Codificando.net e-magazine

Neste mesmo contexto, algumas destas ferramentas so direcionadas a um nico banco de dados como o caso do aplicativo OracleDesign. Existem outras cuja finalidade apenas documentar a construo do esquema e, como exemplo temos o aplicativo MS Visio. Foram escolhidos aplicativos para uma analise rpida () e ficaram agrupados da seguinte forma:

Qualidade no produto final;

Uso exclusivo em um banco de dados especfico: OracleDesigner; Mais utilizado no mercado: PowerDe-

www.codificando.net

Fev / Mar - 2010

21

Ferramentas Case para Modelagem de Banco de Dados

e-magazine

signer, e ERWin; Freeware: DBDesigner e PyDesigner; Desenho: Visio


3.1. Freeware - DBDesign

Editor visual para criao de banco de dados mySQL que integra criao, modelagem, desenvolvimento e manuteno dos bancos em um ambiente simples e agradvel. Comparvel com produtos como Oracle's Designer, IBM's Relational Rose, CA Erwin. O DBDesigner OpenSource distribudo sobre a licena GPL. Algumas caractersticas do DBDesigner:

Figura 02 - Tela do DBDesigner Trabalho sincronizado com banco de dados.

prios;

Cdigo fonte para Windows e Linux

um software livre, licenciado sob a GPL; multi-plataforma; Alm de ser imbatvel no uso com o MySQL, tambm oferece suporte a outros bancos, como Oracle, *MS SQL Server, SQLite, e outros que suportem acesso via ODBC; Permite engenharia reversa, gerando o modelo a partir das tabelas do BD; Faz a sincronia no BD das alteraes realizadas no DER; A interface com o usurio muito bem elaborada, tornando o seu uso bastante simples; Salva os arquivos em XML; Importa modelos gerados no ERWin (XML); Gera relatrios em HTML; Gera modelo lgico com diagramas pr-

Pode ser expandido atravs do uso de plugins; muito bem documentado; O suporte realizado atravs do frum do site do DBDesigner excelente.

3.2. Oracle OracleDesigner

Codificando.net e-magazine

Figura 3 Tela de entrada do OracleDesigner.


Figura 01 - Tela do DBDesigner Vrios Bancos de dados.

Utiliza notao prpria; No h interao com o usurio na converso do modelo; preciso utilizar um repositrio de dados para trabalhar com a ferramen-

www.codificando.net

Fev / Mar - 2010

22

Ferramentas Case para Modelagem de Banco de Dados

e-magazine

ta; Verso de avaliao disponvel no site da empresa (apenas para usurios OTN).

3.4. CA ERWin

3.3. SyBase PowerDesigner

Esta a ferramenta mais utilizada no mercado, conforme informado no site do fabricante. direcionada para profissionais experientes e sua principal deficincia esta no fato de no gerar modelo conceitual.

Uma das ferramentas mais utilizadas e completas do mercado gera modelo con-

Figura 06 - Python Database Designer.

Figura 04 Tela do PowerDesigner Configurao

ceitual, converte para modelo lgico e trabalha com todos os principais bancos de dados disponveis empregando inclusive, engenharia reversa e de integridade referencial. No interage com o usurio na converso entre os esquemas lgico e conceitual; Verso demo disponvel no site.

3.5. PyDesigner Python Database Designer

No gera modelos conceituais Disponvel para plataforma Linux

3.6. Microsoft Visio

Codificando.net e-magazine

Figura 05 - Tela do ERwin Modelando a base de dados de uma biblioteca.

Figura 07 - Diagrama no VISIO diagramas de modelo conceitual e lgico na mesma tela.

www.codificando.net

Fev / Mar - 2010

23

Ferramentas Case para Modelagem de Banco de Dados

e-magazine

Direcionada exclusivamente para desenho; No h interao com banco de dados Seu diagrama padro no programa

conceitos de modelagem conceitual. Concluso Quando falamos em ferramentas Case no podemos levar em conta simplesmente a diferena entre os preos dos softwares, e sim se voc tem familiaridade com a ferramenta que ir utilizar e estudar antes a metodologia que voc vai adquirir. Uma forma bastante utilizada o processo de avaliao de questionrios que buscam avaliar todas as caractersticas de ferramentas Case. E um resultado que no final do processo vai gerar um relatrio de avaliao que pode relacionar todas as ferramentas avaliadas ou vrios relatrios podem ser escritos cada um atuando sobre um subconjunto das ferramentas. As ferramentas Case no so soluo para todos os problemas que voc tiver em relao modelagem, porem um timo software de ajuda para a organizao do banco de dados que ser implantado, lembrando que preciso conhecer o programa que esta utilizando, pois caso contrrio voc pode se perder na ferramenta e acabar se complicando com o tempo de execuo da sua atividade. Mas com tudo o que foi dito neste artigo temos que levar em conta que a modelagem de um banco de dados com as ferramentas Case fica muito mais organizado, a produtividade e bem maior e a qualidade do software bem mais visvel. Nenhuma das ferramentas citadas foi considerada ideal para o ensino das tcnicas de modelagem de dados. Isso se justi-

fica pelo fato que as ferramentas pesquisadas utilizam notaes voltadas basicamente para implementao do esquema gerado no SGBD sendo que algumas, se quer, implementam modelo conceitual. Referncias WEINRICH Jair, GRAHL EveraldoSoftware de apoio a avaliao e seleo de ferramentas case baseado na norma ISO/ IEC 14102, Artigo SEMINCO 1999 FURBUniversidade Regional de Blumenau. SILVA Manoel ROCHA Thayssa PROJETO DE UMA FERRAMENTA CASE UTILIZANDO A NOTAO DA UML E A METODOLOGIA DE COAD & YOURDON, 1998, CESUPA Belm do Par. BRETZKE, Clemens. Anlise e projeto de um sistema de clientes em ORACLE*CASE. 1994. 68 f. Trabalho de Concluso de Curso (Bacharelado em Cincias da Computao) Centro de Cincias Exatas e Naturais, Universidade Regional de Blumenau, Blumenau. Wikipdia, Ferramentas Case para modelagem de Banco de Dados [on-line]. Disponivel em: http:// www.pt.wikipedia.org/wiki/ Ferramentas_de_Modelagem. Ultimo acesso: 06.12.2009. Zaidan, Fernando. Ferramenta de Modelagem Conceitual de Banco de Dados [on-line]. Disponvel em: http:// www.fernandozaidan.com.br/ined/bd/ outros/brModelo.pdf. Ultimo acesso:

Codificando.net e-magazine
|

www.codificando.net

Fev / Mar - 2010

24

Ferramentas Case para Modelagem de Banco de Dados

e-magazine

06.12.2009. () Heuser (2001) () Claudete Moscardini SQL Magazine Ed. 12 Ano 1.

Diego Moreno da Silva Manhani


Aluno de Tecnologia em Anlise e Desenvolvimento de Sistemas FATEPA Faculdade de Tecnologia Unianchieta Centro Universitrio Anchieta

Prof. Dr. Juliano Schimiguel


Professor do Curso de Tecnologia em Anlise e Desenvolvimento de Sistemas FATEPA Faculdade de Tecnologia Unianchieta Centro Universitrio Anchieta.

Codificando.net e-magazine
|

www.codificando.net

Fev / Mar - 2010

25

e-magazine

Utilizando Update Panel do ASP .Net Ajax de forma consciente


Por: Fernando Gonalves

O ASP.NET AJAX um conjunto de extenses para ASP.NET desenvolvida pela Microsoft para implementar a funcionalidade de AJAX. Que por sua vez o uso metodolgico de tecnologias como Javascript e XML, providas por navegadores, para tornar pginas Web mais interativas com o usurio, utilizando-se de solicitaes assncronas de informaes. AJAX no somente um novo modelo, tambm uma iniciativa na construo de aplicaes Web mais dinmicas e criativas. Mostrarei neste artigo o ganho de performance que podemos ter em nossas aplicaes ASP.NET se utilizarmos o controle Update Panel do ASP.NET Ajax de forma consciente.Muitas vezes vemos aplicaes onde o uso incorreto desse controle que responsvel pela atualizao parcial de um bloco e/ou pedao de uma pgina e acaba gerando um desconforto grande nos usurios, pois os processos passam a ter um tempo de resposta maior do que o necessrio assim como veremos no decorrer deste artigo. Antes de comearmos a codificar no posso deixar de mostrar aqui uma ferramenta muito conhecida pela comunidade ASP.Net. Essa ferramenta muito importante na questo de monitoramento do que esta sendo trafegado entre o servidor ASP.Net e seu browser local.

A ferramenta chamasse Web Development Helper e seu download pode ser feito juntamente com sua documentao. Seu uso muito simples, uma vez que voc tenha concludo o download do arquivo em seu computador execute o instalador e voc ter o Web Development Helper instalado no seu Internet Explorer conforme a figura 1:

Codificando.net e-magazine
|

Figura 1 - Web Development Helper na barra de ferramentas do IE8.

Vamos iniciar nossa aplicao. Abra o Visual Studio e clique no meu File | New | Project. Assim que a janela New Project for exibida selecione a linguagem C# | Web e em Templates escolha ASP.NET Web Application, no campo Name informe o nome do projeto que no nosso exemplo ser usado DesenvolvendoParaWebComPerformance aps isso selecione o diretrio que deseja salvar a aplicao e clique em OK veja a figura 2.

www.codificando.net

Fev / Mar - 2010

26

Utilizando Update Panel do ASP .Net Ajax de forma consciente

e-magazine

Vamos montar o nosso exemplo sem o uso de ASP.Net Ajax, para que depois possamos evoluir de forma a mostrar o porque importante pensar em performance utilizando corretamente o controle Update Panel. J que o foco performance no vou me importar com a interface do aplicativo. Aqui temos o cdigo que deve ser colocado no HTML do arquivo ExemploSemAjax.aspx e tambm o cdigo C# utilizado para o exemplo. Cdigo HTML:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ExemploSemAjax.aspx.cs" Inherits="DesenvolvendoParaWebComPerformance. _Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:// www.w3.org/TR/xhtml1/DTD/xhtml1transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <table width="100%"> <tr> <td colspan="3" style="width: 100%" align="center"> <asp:Label runat="server" ID="lblTitulo" Text="Materiais para construo Clique nos botes abaixo para incluir os itens:"></asp:Label> </td> </tr>

Figura 2 - Criao do projeto DesenvolvendoParaWebComPerformance.

Neste exemplo vou utilizar a linguagem C#, porm se voc preferir fique a vontade para utilizar VB.Net. O foco no ser a linguagem, mas sim o uso do controle Update Panel do ASP.NET Ajax. Neste momento seu projeto deve conter um arquivo chamado Default.aspx, altere seu nome para ExemploSemAjax.aspx, conforme as figuras 3 e 4:

Codificando.net e-magazine

Figura 3 - Estrutura padro do Web application (Default.aspx).

Figura 4 - Arquivo alterado para ExemploSemAjax.aspx.

www.codificando.net

Fev / Mar - 2010

27

Utilizando Update Panel do ASP .Net Ajax de forma consciente

e-magazine

<tr> <td style="width: 25%"> <asp:Button runat="server" ID="btnIncluirItem" Text="Incluir produto 1" OnClick="btnIncluirItem_Click" /> </td> <td style="width: 25%"> </td> <td style="width: 50%"> </td> </tr> <tr> <td colspan="2" style="width: 50%"> <asp:Image runat="server" ID="imgProduto1" /> </td> <td colspan="2" style="width: 50%"> </td> </tr> <tr> <td style="width: 25%"> <asp:Button runat="server" ID="btnIncluirItem2" Text="Incluir produto 2" OnClick="btnIncluirItem2_Click" /> </td> <td style="width: 25%"> </td> <td style="width: 50%"> </td> </tr> <tr> <td colspan="2" style="width: 50%"> <asp:Image runat="server" ID="imgProduto2" /> </td> <td colspan="2" style="width: 50%"> </td> </tr> <tr> <td style="width: 25%"> <asp:Button runat="server" ID="btnIncluirItem3" Text="Incluir produto 3" onclick="btnIncluirItem3_Click"/ > </td>

<td style="width: 25%"> </td> <td style="width: 50%"> </td> </tr> <tr> <td colspan="2" style="width: 50%"> <asp:Image runat="server" ID="imgProduto3" /> </td> <td colspan="2" style="width: 50%"> </td> </tr> </table> </div> </form> </body> </html>

Cdigo HTML - Fim Cdigo C#:


using System; using System.Collections.Generic; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace DesenvolvendoParaWebComPerformance { public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void btnIncluirItem_Click(object sender, EventArgs e) {

Codificando.net e-magazine
|

www.codificando.net

Fev / Mar - 2010

28

Utilizando Update Panel do ASP .Net Ajax de forma consciente

e-magazine

imgProduto1.ImageUrl = "~/Imagens/ MaterialProduto1.jpg"; } protected void btnIncluirItem2_Click (object sender, EventArgs e) { imgProduto2.ImageUrl = "~/Imagens/ MaterialProduto2.jpg"; } protected void btnIncluirItem3_Click (object sender, EventArgs e) { imgProduto3.ImageUrl = "~/Imagens/ MaterialProduto3.jpg"; } } }

Com o nosso exemplo rodando no IE, acione o Web Development Helper que instalamos anteriormente para que possamos avaliar o que esta sendo trafegado. Seu IE deve estar muito parecido com a figura 6:

Figura 6 - Habilitando o monitoramento de trfego.

Cdigo C# - Fim Com esta parte do nosso projeto montado vamos clicar em Debug | Start Debugging (Eu sei que poderia ser um simples F5, mas para no dificultar a vida daqueles que por ventura tenham modificado a tecla de atalho preferi ir pelo menu). Voc ser questionado se deseja habilitar o debug do seu aplicativo ASP.Net, selecione Modify the Web.Config e clique no boto OK conforme a figura 5.

Marque o checkBox Enable Logging para que o mclique no boto Incluir produto 1. Vamos analisar o que a ferramenta de monitorao esta nos mostrando (figura 7):

Codificando.net e-magazine

Figura 7 - Itens trafegados no primeiro monitoramento.

Reparem que durante o processo de postback alguns itens tiveram de ser redesenhados no browser. A imagem 7 nos mostra o que foi redesenhado e quais os seus tamanhos alem de exibir outras informaes que podem nos ajudar em uma avaliao mais detalhada. Clique em Clear para limpar todo o log feito at o momento. Aps isso clique no boto

Figura 5 - Habilitando o debugging do Visual Studio.

www.codificando.net

Fev / Mar - 2010

29

Utilizando Update Panel do ASP .Net Ajax de forma consciente

e-magazine

Incluir produto 2 e repare novamente no resultado do monitoramento de trfego (figuras 8 e 9).

Figura 10 - Incluso do novo arquivo no projeto.

Figura 8 - Limpando LOG.

Figura 9 - Exemplo de carregamento desnecessrio.

A codificao do arquivo ExemploComAJAX.aspx muito parecida com a anterior conforme vocs podem verificar no arquivo HTML. A nica diferena que adicionamos um controle ScriptManager no topo da pgina e adicionamos 3 controles Update Panel sendo que cada um tem dentro de si um controle de exibio de imagem. Cdigo HTML:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ExemploComAjax.aspx.cs" Inherits="DesenvolvendoParaWebComPerformance. ExemploComAjax" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:// www.w3.org/TR/xhtml1/DTD/xhtml1transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager>

Vejam que neste momento alm de carregar novamente tudo aquilo que j havia sido carregado na primeira vez a imagem referente ao produto 2 tambm foi carregada. Neste ponto j podemos dizer Se eu estivesse utilizando o controle Update Panel do ASP.Net AJAX eu teria carregado apenas a imagem MaterialProduto2.jpg. Vamos agora verificar essa frase na prtica. A ttulo de curiosidade voc poderia clicar em Clear novamente e na seqncia clicar no boto Incluir produto 3. O resultado ser o recarregamento de todos os itens inclusive a imagem MaterialProduto3.jpg. Vamos voltar ao Visual Studio e adicionar um novo arquivo ao projeto. Vamos chamar este arquivo de ExemploComAjax.aspx.

Codificando.net e-magazine
|

www.codificando.net

Fev / Mar - 2010

30

Utilizando Update Panel do ASP .Net Ajax de forma consciente

e-magazine

<table width="100%"> <tr> <td colspan="3" style="width: 100%" align="center"> <asp:Label runat="server" ID="lblTitulo" Text="Materiais para construo - Clique nos botes abaixo para incluir os itens:"></asp:Label> </td> </tr> <tr> <td style="width: 25%"> <asp:Button runat="server" ID="btnIncluirItem" Text="Incluir produto 1" OnClick="btnIncluirItem_Click" /> </td> <td style="width: 25%"> </td> <td style="width: 50%"> </td> </tr> <tr> <td colspan="2" style="width: 50%"> <asp:UpdatePanel ID="UpdatePanelImagem1" runat="server"> <ContentTemplate> <asp:Image runat="server" ID="imgProduto1" /> </ContentTemplate> </asp:UpdatePanel> </td> <td colspan="2" style="width: 50%"> </td> </tr> <tr> <td style="width: 25%"> <asp:Button runat="server" ID="btnIncluirItem2" Text="Incluir produto 2" OnClick="btnIncluirItem2_Click" /> </td> <td style="width: 25%"> </td> <td style="width: 50%"> </td> </tr>

<tr> <td colspan="2" style="width: 50%"> <asp:UpdatePanel ID="UpdatePanelImagem2" runat="server"> <ContentTemplate> <asp:Image runat="server" ID="imgProduto2" /> </ContentTemplate> </asp:UpdatePanel> </td> <td colspan="2" style="width: 50%"> </td> </tr> <tr> <td style="width: 25%"> <asp:Button runat="server" ID="btnIncluirItem3" Text="Incluir produto 3" OnClick="btnIncluirItem3_Click" /> </td> <td style="width: 25%"> </td> <td style="width: 50%"> </td> </tr> <tr> <td colspan="2" style="width: 50%"> <asp:UpdatePanel ID="UpdatePanelImagem3" runat="server"> <ContentTemplate> <asp:Image runat="server" ID="imgProduto3" /> </ContentTemplate> </asp:UpdatePanel> </td> <td colspan="2" style="width: 50%"> </td> </tr> </table> </div> </form> </body> </html>

Codificando.net e-magazine

Cdigo HTML - Fim

www.codificando.net

Fev / Mar - 2010

31

Utilizando Update Panel do ASP .Net Ajax de forma consciente

e-magazine

Figura 11 - Controle Script Manager e Update Panel's.

Os controles ScriptManager e Update Panel podem ser encontrados na guia AJAX Extensions da Toolbox conforme exibe a figura 12.

using System.Web.UI; using System.Web.UI.WebControls; namespace DesenvolvendoParaWebComPerformance { public partial class ExemploComAjax : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { ScriptManager1.RegisterAsyncPostBackControl (btnIncluirItem); ScriptManager1.RegisterAsyncPostBackControl (btnIncluirItem2); ScriptManager1.RegisterAsyncPostBackControl (btnIncluirItem3); } protected void btnIncluirItem_Click(object sender, EventArgs e) { imgProduto1.ImageUrl = "~/Imagens/ MaterialProduto1.jpg"; } protected void btnIncluirItem2_Click(object sender, EventArgs e) { imgProduto2.ImageUrl = "~/Imagens/ MaterialProduto2.jpg"; } protected void btnIncluirItem3_Click(object sender, EventArgs e) { imgProduto3.ImageUrl = "~/Imagens/ MaterialProduto3.jpg"; } } }

Codificando.net e-magazine

Figura 12 - Tab AJAX Extensions.

Temos aqui o cdigo C# utilizado para que a tela no pisque mais. Reparem que apenas o mtodo Page_Load esta diferente do exemplo anterior. Cdigo C#:
using System; using System.Collections.Generic; using System.Linq; using System.Web;

www.codificando.net

Fev / Mar - 2010

32

Utilizando Update Panel do ASP .Net Ajax de forma consciente

e-magazine

Figura 13 - Cdigo fonte do ExemploComAjax.aspx.cs

Cdigo C# - Fim Conforme podemos visualizar no cdigo da figura 13 os botes foram registrados de forma a no piscar a tela, ou seja, ao invs de executarem um postBack sncrono, eles executaram o postback de forma assncrona. Vamos comparao destas duas formas de se desenvolver a interface. As aplicaes que comentei no segundo pargrafo deste artigo utilizam esta forma de desenvolvimento. Clique com o boto direito do mouse sobre o arquivo ExemploComAjax.aspx no Solution Explorer e selecionem a opo View in Browser de forma que sua aplicao seja executada (conforme figura 14).

Figura 14 - Executando aplicao com View in Browser.

Com a aplicao rodando acione novamente o Web Development Helper de forma que possamos analisar novamente o que esta sendo trafegado. No se esquea de marcar o checkbox Enable Logging. Para facilitar a analise clique seqencialmente nos botes Incluir produto 1, Incluir produto 2 e Incluir produto 3. O resultado da sua analise deve ser muito parecido com a figura 15:

Codificando.net e-magazine
|

Figura 15 - Monitoramento completo dos dados.

www.codificando.net

Fev / Mar - 2010

33

Utilizando Update Panel do ASP .Net Ajax de forma consciente

e-magazine

Neste momento podemos analisar duas coisas: 1) Ao clicar nos botes a tela foi carregada de forma assncrona e assim no piscando mais a tela;

mos um detalhamento melhor de tudo que foi trafegado. Se expandirmos o item updatePanel voc ver que os 3 controles Update Panel foram atualizados.

2) 2) A anlise dos itens trafegados nos diz que a cada post somente a pgina e a nova imagem foram trafegados. E neste momento temos a iluso de que o nosso controle UpdatePanel esta funcionando corretamente. Mas ai que nos enganamos, pois se formos analisar um pouco mais veremos que no bem assim. Clique duas vezes sobre a primeira linha conforme o exemplo das figuras 16 e 17 e repare que uma nova tela HTTP Log Viewer ser exibida.

Figura 18 - Controles atualizados.

Se voc clicar em cada um dos controles Update Panel voc ter na caixa Item Content o contedo de cada Update Panel atualizado. Conforme o exemplo da figura 19:

Figura 16 - Duplo clique na linha de monitoramento.

Figura 19 - Conteudo trafegado no Update Panel.

Codificando.net e-magazine

Figura 17 - Janela HTTP Log Viewer.

Agora chegamos ao principal ponto deste artigo. Reparem que apesar da tela no piscar e somente visualizarmos a imagem da vez sendo exibida, temos a impresso de que apenas a imagem solicitada esta sendo trafegada. Porm como vocs podem verificar todas as imagens continuam a ser trafegadas sempre. Vamos agora para a ltima parte do artigo onde veremos como utilizar o controle Update Panel de forma correta. Vamos voltar ao Visual Studio e adicionar

Como voc pode ver esta janela lhe da vrios detalhes sobre o trafego, porem vamos focar no contedo da tab Response Content que nos mostra em detalhes o que foi trafegado. Reparem que na tab Response Content te-

www.codificando.net

Fev / Mar - 2010

34

Utilizando Update Panel do ASP .Net Ajax de forma consciente

e-magazine

um novo arquivo ao projeto. Vamos chamar este arquivo de ExemploComAjaxConsciente.aspx conforme a figura 20.

Figura 20 - Novo arquivo no projeto.

Para este novo arquivo devemos utilizar o mesmo cdigo HTML utilizado no arquivo ExemploComAjax.aspx com apenas uma nica diferena conforme podemos ver na figura 21: Cdigo HTML:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ExemploComAjaxConsciente.aspx.cs" Inherits="DesenvolvendoParaWebComPerformanc e.ExemploComAjaxConsciente" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:// www.w3.org/TR/xhtml1/DTD/xhtml1transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <asp:ScriptManager ID="ScriptManager1" runat="server">

</asp:ScriptManager> <table width="100%"> <tr> <td colspan="3" style="width: 100%" align="center"> <asp:Label runat="server" ID="lblTitulo" Text="Materiais para construo Clique nos botes abaixo para incluir os itens:"></asp:Label> </td> </tr> <tr> <td style="width: 25%"> <asp:Button runat="server" ID="btnIncluirItem" Text="Incluir produto 1" OnClick="btnIncluirItem_Click" /> </td> <td style="width: 25%"> </td> <td style="width: 50%"> </td> </tr> <tr> <td colspan="2" style="width: 50%"> <asp:UpdatePanel ID="UpdatePanelImagem1" runat="server" UpdateMode="Conditional"> <ContentTemplate> <asp:Image runat="server" ID="imgProduto1" /> </ContentTemplate> </asp:UpdatePanel> </td> <td colspan="2" style="width: 50%"> </td> </tr> <tr> <td style="width: 25%"> <asp:Button runat="server" ID="btnIncluirItem2" Text="Incluir produto 2" OnClick="btnIncluirItem2_Click" /> </td> <td style="width: 25%"> </td> <td style="width: 50%">

Codificando.net e-magazine
|

www.codificando.net

Fev / Mar - 2010

35

Utilizando Update Panel do ASP .Net Ajax de forma consciente

e-magazine

</td> </tr> <tr> <td colspan="2" style="width: 50%"> <asp:UpdatePanel ID="UpdatePanelImagem2" runat="server" UpdateMode="Conditional"> <ContentTemplate> <asp:Image runat="server" ID="imgProduto2" /> </ContentTemplate> </asp:UpdatePanel> </td> <td colspan="2" style="width: 50%"> </td> </tr> <tr> <td style="width: 25%"> <asp:Button runat="server" ID="btnIncluirItem3" Text="Incluir produto 3" OnClick="btnIncluirItem3_Click" /> </td> <td style="width: 25%"> </td> <td style="width: 50%"> </td> </tr> <tr> <td colspan="2" style="width: 50%"> <asp:UpdatePanel ID="UpdatePanelImagem3" runat="server" UpdateMode="Conditional"> <ContentTemplate> <asp:Image runat="server" ID="imgProduto3" /> </ContentTemplate> </asp:UpdatePanel> </td> <td colspan="2" style="width: 50%"> </td> </tr> </table> </div> </form> </body></html>

Figura 21 - Propriedade UpdateMode do UpdatePanel

Cdigo HTML -

Fim

Reparem que adicionei a tag UpdateMode="Conditional" em todos os 3 controles update Panel. Vejamos agora como ficou o cdigo C# deste nosso ultimo exemplo (figura 22). Cdigo C#:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace DesenvolvendoParaWebComPerformance { public partial class ExemploComAjaxConsciente : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { ScriptManager1.RegisterAsyncPostBackControl (btnIncluirItem); ScriptManager1.RegisterAsyncPostBackControl (btnIncluirItem2); ScriptManager1.RegisterAsyncPostBackControl (btnIncluirItem3); }

Codificando.net e-magazine
|

www.codificando.net

Fev / Mar - 2010

36

Utilizando Update Panel do ASP .Net Ajax de forma consciente

e-magazine

protected void btnIncluirItem_Click (object sender, EventArgs e) { imgProduto1.ImageUrl = "~/Imagens/ MaterialProduto1.jpg"; UpdatePanelImagem1.Update(); } protected void btnIncluirItem2_Click (object sender, EventArgs e) { imgProduto2.ImageUrl = "~/Imagens/ MaterialProduto2.jpg"; UpdatePanelImagem2.Update(); } protected void btnIncluirItem3_Click (object sender, EventArgs e) { imgProduto3.ImageUrl = "~/Imagens/ MaterialProduto3.jpg"; UpdatePanelImagem3.Update(); } } }

Cdigo C# - Fim Como podemos ver o contedo dos controles Update Panel somente sero atualizados se aps o processamento executarmos manualmente o mtodo Update(). Se desejar comente os trs blocos em destaque na figura 22 e execute a aplicao. Voc ver que mesmo clicando nos botes as imagens no sero exibidas. Execute a aplicao de forma que possamos efetuar um novo monitoramento e mais uma vez com o Web Development Helper devidamente habilitado clique seqencialmente nos trs botes para que tenhamos como resultado algo semelhante a figura 23. Aparentemente o resultado o mesmo da

Figura 23 - Monitoramento com AJAX de forma consciente.

figura 15. Vamos dar um duplo clique na primeira linha e na janela HTTP Log Viewer clique na tab Response Content, na seqncia expanda o item updatePanel e repare que somente o controle Update Panel vinculado a devida imagem foi atualizado (figura 24). Agora se imaginarmos uma aplicao real

Codificando.net e-magazine

Figura 22 - Cdigo fonte do ExemploComAjaxConsciente.aspx.cs.

Figura 24 - Contedo do nico UpdatePanel atualizado.

www.codificando.net

Fev / Mar - 2010

37

Utilizando Update Panel do ASP .Net Ajax de forma consciente

e-magazine

onde em uma mesma tela temos vrios controles, o ganho de performance se utilizarmos o controle Update Panel de forma consciente (UpdateMode="Conditional") com certeza teremos um ganho enorme em performance. Espero que tenham gostado do artigo. Links para consultas: http://www.asp.net/ajax/ http://www.asp.net/AJAX/downloads/ http://www.codeplex.com/ AjaxControlToolkit http://www.asp.net/ajax/ AjaxControlToolkit/Samples/ Definies de palavras utilizadas no artigo: ASP.Net AJAX - http://en.wikipedia.org/ wiki/ASP.NET_AJAX AJAX http://pt.wikipedia.org/wiki/ AJAX_(programa%C3%A7%C3%A3o) Javascript - http://pt.wikipedia.org/wiki/ Javascript XML Javascript http://pt.wikipedia.org/wiki/

projects.nikhilk.net/Content/Projects/ WebDevHelper/WebDevHelper.zip Web Development Helper Documentao http://projects.nikhilk.net/Content/Projects/ WebDevHelper/WebDevHelper.pdf Fernando Gonalves
Graduado em Sistemas de informao pela Universidade Ibirapuera (UNIB) em So Paulo. Trabalha com desenvolvimento de aplicaes a 8 anos, nos ltimos 4 com a tecnologia .Net (ASP.Net, Windows Mobile e C#). Moderador/Colaborador da comunidade Desenvolvendo para Web e mantm o blog http:// www.fernandodev.com/blog.

Codificando.net e-magazine

Navegadores wiki/Navegador

http://pt.wikipedia.org/

Web - http://pt.wikipedia.org/wiki/Web Web Development Helper http://

www.codificando.net

Fev / Mar - 2010

38

e-magazine

Aplicaes em N Camadas com ASP .NET - PARTE III


Por: Felipe Pocchini

Aplicaes em n camadas so desenvolvidas de forma distribuda, onde cada camada tem sua responsabilidade dentro do contexto. Para um modelo de aplicao Web so comumente usadas 3 camadas: Presentation(Apresentao), Business (Lgica do negcio) e Data(Responsvel pelas transaes com o banco da dados). Para esta terceira parte do artigo, iremos criar a camada Business, que ser responsvel por algumas validaes e pela comunicao entre as camadas Presentation e Data.

Para adicionar a camada ao projeto, vamos clicar com o boto direito na soluo e adicionar um novo projeto.

Figura 2: Adicionando um novo projeto a soluo (Add > New Project).

Codificando.net e-magazine

Esse novo projeto tambm ser do tipo Class Library, assim como as camadas Data e Entity.
Figura 1: Exemplo de aplicao em N Camadas.

Iremos adicionar a camada Business juntamente com a segunda parte criada neste artigo. Uma de suas grandes vantagens que atravs dela, podemos validar algumas informaes e enviar a entidade para camada de dados, executando assim as transaes com o banco.

Figura 3: Projeto do tipo Class Library.

www.codificando.net

Fev / Mar - 2010

39

Aplicaes em N Camadas com ASP .NET - PARTE III

e-magazine

Com o projeto adicionado a soluo, podemos agora trabalhar na camada Business da qual receber uma entidade atravs da camada Presentation, executando as validaes necessrias e enviando a entidade para a camada Data.

Figura 5: Adicionando mtodos na classe Clientes (Add > Method).

Crie mais esses mtodos seguindo os passos acima: Alterar, Excluir, Obter, Listar, FormataCpf. O resultado final ser esse:

Figura 4: Projeto criado.

Vamos utilizar a opo View Class Diagram para criar a classe Clientes, realizada da mesma maneira da qual aprendemos na primeira parte deste artigo. A classe Clientes vai conter apenas os mtodos responsveis pelas validaes de dados e pela transferncia da entidade para a camada Data. Recomendo que os mtodos que vo transportar as entidades para a camada Data tenham o mesmo nome. Como aprendemos na segunda parte deste artigo, vamos criar agora os mtodos da classe Clientes.

Figura 6: Classe Clientes com todos os mtodos definidos.

Para visualizar o cdigo da classe Clientes, basta dar um duplo clique na classe.

Codificando.net e-magazine
|

Figura 7: Visualizao do cdigo da classe Clientes.

www.codificando.net

Fev / Mar - 2010

40

Aplicaes em N Camadas com ASP .NET - PARTE III

e-magazine

Como podemos ver na Figura 7, os mtodos da classe Clientes foram criados, mas no implementados. Vamos agora implementar cada mtodo de acordo com sua responsabilidade. Para a camada Business reconhecer uma entidade da camada Entity, assim como os objetos da camada Data, devemos adicionar as referncias das camadas Entity e Data na camada Business.

Figura 9: implementao do mtodo FormataCpf.

Inserir

Figura 8: Adicionando referncias das camadas Entity e Data na camada Business (Add Reference > Projects > OK). Figura 10: implementao do mtodo Inserir.

Segue abaixo a implementao dos mtodos da classe Clientes: FormataCpf Como o foco deste artigo o estudo de aplicaes em N camadas e suas respectivas responsabilidades, nessa terceira parte iremos utilizar o exemplo de uma implementao e formatao de CPF, para demonstrar como cada camada pode ser utilizada.

Alterar

Codificando.net e-magazine
|

Figura 11: implementao do mtodo Alterar.

www.codificando.net

Fev / Mar - 2010

41

Aplicaes em N Camadas com ASP .NET - PARTE III

e-magazine

Excluir

Conclumos que ao final de mais uma etapa, teremos a classe Clientes definida juntamente com a camada de negcio (Business) finalizada. Na quarta e ltima parte deste artigo, vamos criar a camada de apresentao (Presentation) juntamente com a aplicao Web, que utilizar de todos os recursos das camadas construdas ao longo deste estudo. Aprofunde seus conhecimentos sobre esse tema na comunidade ASP.NET Para saber mais: Viso geral de aplicativo de dados n camadas At a prxima, grande abrao a todos. Felipe Pocchini
Graduado em Cincia da Computao pela Universidade Jos do Rosrio Vellano (UNIFENAS), em Alfenas MG, trabalha com desenvolvimento de aplicaes Web e Windows Forms utilizando a tecnologia .Net. Moderador da comunidade Desenvolvendo para Web, colaborador da comunidade Codificando.Net e editor da revista eletrnica Codificando .Net e-Magazine.

Figura 12: implementao do mtodo Excluir.

Obter

Codificando.net e-magazine

Figura 13: implementao do mtodo Obter.

Listar

Figura 14: implementao do mtodo Listar.

www.codificando.net

Fev / Mar - 2010

42

e-magazine

Conhea e construa sua primeira aplicao em Silverlight


Por: Anderson Castro

O Silverlight uma grande e poderosa plataforma de desenvolvimento baseado no .NET Framework para criao de aplicaes RIA(Rich Internet Application) web,desktop e dispositivos mveis, possibilitando a criao de grficos vetorizados,animaes e aplicativos em geral. Possui suporte para AJAX, Python, Ruby e linguagens. NET como Visual Basic e C#. Seu plug-in gratuito e de fcil instalao e j est presente em mais de 40% dos dispositivos, as estimas que no Brasil esse nmero j supere os 50%. Suporta vrios navegadores e plataformas. Seu modelo de apresentao baseado em XAML (eXtensible Application Markup Language- uma linguagem declarativa baseada no XML). Atualmente temos o Silverlight 3 e a Microsoft j prepara o lanamento da verso 4 no qual encontra-se em fase beta. Outra grande proposta do Silverlight unir dois mundos: os Designers e os Desenvolvedores. Para que possamos desenvolver em Silverlight importante conhecer s ferramentas de desenvolvimento.

Temos hoje a disposio o Microsoft Expression Blend 3, Visual Studio 2008, Visual Studio 2010 e o Visual Web Developer. Para o silverlight 4 BETA j podemos usar o Microsoft Expression Blend for .NET 4 Preview juntamente com Visual Studio 2010. Contamos tambm com o Silverlight Toolkit que um conjunto de controles, componentes e servios adicionando novas funcionalidades, por exemplo, grficos, estilos, layout entre outros. Links para Silverlight 3

Codificando.net e-magazine

Silverlight 3 SDK : http:// go.microsoft.com/fwlink/? LinkID=157102 Silverlight Toolkit : http:// silverlight.codeplex.com/ Silverlight Toolkit Samples :http:// silverlight.net/content/samples/sl3/ toolkitcontrolsamples/run/ default.html Microsoft Silverlight 3 Tools for Visual Studio 2008 SP1:http:// www.microsoft.com/downloads/

www.codificando.net

Fev/ Mar - 2010

43

Conhea e construa sua primeira aplicao em Silverlight

e-magazine

details.aspx?familyid=9442b0f27465-417a-88f35e7b5409e9dd&displaylang=en Visual Studio 2010 and .NET Framework 4 Beta 2 :http:// msdn.microsoft.com/en-us/vstudio/ dd582936.aspx Web Platform Installer: http:// www.microsoft.com/web/gallery/ install.aspx? appsxml=&appid=VWD;Silverlight 3Tools;SilverlightToolkit;RIAServic es Microsoft Expression Blend 3 + http:// SketchFlow Trial : www.microsoft.com/downloads/ details.aspx?FamilyID=e82db5e27106-419e-80b065cce89f06bb&displaylang=en

default.html O Silverlight 3 trouxe uma srie de inovaes em relao as suas verses anteriores. Entre elas podemos destacar:

Links para Silverlight 4 Beta

Visual Studio 2010 and .NET Framework 4 Beta 2:http:// msdn.microsoft.com/en-us/vstudio/ dd582936.aspx Silverlight 4 sdk:http:// go.microsoft.com/fwlink/? LinkID=169408 Microsoft Expression Blend for .NET 4 Preview:http:// go.microsoft.com/fwlink/? LinkId=169446 Silverlight 4 Beta Tools for Visual Studio 2010:http:// go.microsoft.com/fwlink/? LinkID=177508 Silverlight Toolkit: http:// silverlight.codeplex.com/ Silverlight Toolkit Samples :http:// silverlight.net/content/samples/sl3/ toolkitcontrolsamples/run/

SketchFlow: De forma bastante rpida e prtica fornecendo todo recurso de prototipagem inclusive com interao facilitando a evoluo do projeto junto ao cliente final. Out of Browser: Voc pode configurar sua aplicao para funcionar fora do browser estando ou no online. Smooth Streaming: Possui a capacidade de ajustar em tempo real a qualidade do seu vdeo independentemente de conexo de banda larga, ou seja, voc pode ver seu vdeo sem aquelas interrupes. (http:// www.iis.net/expand/ SmoothStreaming). Deep Linking: A partir de agora possvel compartilhar links para determinados pontos dentro de uma aplicao web permitindo assim o suporte otimizao para motores de busca (SEO) de forma que o contedo dentro da aplicao Silverlight pode ser indexado pelos motores de busca como Google, Bing e Yahoo. Acelerao grfica via GPU. Suporte a vdeos HD (720p), CODECs H.264, AAC e MPEG4.

Codificando.net e-magazine

Vamos entender alguns elementos do Silverlight. Canvas O canvas um elemento que possibilita incluir qualquer controle em qualquer poFev/ Mar - 2010

www.codificando.net

44

Conhea e construa sua primeira aplicao em Silverlight

e-magazine

sio da tela.
<Canvas Height=100 Width=100 Background=Blue> <Button x:Name=play Content=Paly> </Button> </Canvas>

Figura 2: StackPanel.

Grid. Grid uma estrutura similar a uma tabela com suas linhas e colunas. Possui duas propriedades importantes o RowDefinitions e o ColumnDefinitions.
Figura 1: Canvas.

StackPanel Um StackPanel usado quando precisamos fazer algum tipo de agrupamento de demais controles visuais. Cada elemento posto dentro dele pode ser posicionado verticalmente ou horizontalmente em uma linha ou coluna.
<StackPanel Orientation="Horizontal" Background="Black" Width="300" Height="300"> <Button x:Name="Play" Content="Play" Height="50" Width="50"></Button> <Button x:Name="Pause" Content="Pause" Height="50" Width="50"></Button> <Button x:Name="Stop" Content="Stop" Height="50" Width="50"></Button> </StackPanel>

Vamos definir um Grid com trs linhas e trs colunas e vamos posicionar nossos elementos Button. <Grid x:Name="LayoutRoot" Background="Blue" Width="300" Height="300">
<Grid.ColumnDefinitions> <ColumnDefinition></ColumnDefinition> <ColumnDefinition></ColumnDefinition> <ColumnDefinition></ColumnDefinition> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition></RowDefinition> <RowDefinition></RowDefinition> <RowDefinition></RowDefinition> </Grid.RowDefinitions> <Button x:Name="Play" Content="Play" Height="50" Width="50" Grid.Row="0" Grid.Column="2"></Button> <Button x:Name="Pause" Content="Pause" Height="50" Width="50" Grid.Row="1" Grid.Column="1"></Button> <Button x:Name="Stop" Content="Stop" Height="50" Width="50" Grid.Row="2" Grid.Column="0"></Button> </Grid>

Codificando.net e-magazine
|

www.codificando.net

Fev/ Mar - 2010

45

Conhea e construa sua primeira aplicao em Silverlight

e-magazine

Figura 4: TextBlock.

ToggleButton Um toggleButton funciona como um boto. Seu diferencial guardar e conservar o estado de seu acionamento atravs das propriedades Checked e UnChecked.
Figura 3: Grid.

<ToggleButton x:Name="play" >

Perceba que atravs do RowDefinitions e o ColumnDefinitions nos podemos definir a posio dos demais controles. Lembrando que tanto RowDefinitions como ColumnDefinitions seu ndex inicia-se em 0. TextBlock Usamos para exibio e manipulao de textos em nossa aplicao.
<Grid x:Name="LayoutRoot" Background="White"> <TextBlock x:Name="Titulo" Text="Silverlight 3" FontFamily="Verdana" FontSize="30" Foreground="Red"> </ TextBlock> <TextBlock x:Name="Titulo2" Text="Silverlight 3" FontFamily="Arial" FontSize="20" Foreground="Blue"> </TextBlock> </Grid>

</ToggleButton>

Observe que em todos controles criados acima usamos propriedade x:Name que funciona como uma identificao para seu controle. Criando sua aplicao Silverlight Agora que j tivemos uma breve introduo de alguns controles Silverlight vamos criar um Player em Silverlight. Usando o Expression Blend 3 vamos iniciar um novo projeto Silverlight e com o nome de PlayerSilverlight.

Codificando.net e-magazine

Figura 5: Novo Projeto.

www.codificando.net

Fev/ Mar - 2010

46

Conhea e construa sua primeira aplicao em Silverlight

e-magazine

Na aba Projects clicando com o boto direito do mouse vamos adicionar um novo folder chamado Images. Crie outro folder com o nome de Videos.

Agora iremos definir nossas linhas e colunas. Para esse nosso layout definimos trs linhas e uma coluna. Na primeira linha iremos colocar o texto com o ttulo de nossa aplicao, na segunda iremos exibir nosso video e na terceira os controles de nosso player.
<Grid x:Name="LayoutRoot"> <Grid.RowDefinitions> <RowDefinition Height="30"/> <RowDefinition Height="*"/> <RowDefinition Height="230"/> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> </Grid>

Figura 6: Add New Folder.

Agora selecione o Grid e v at a aba Properties vamos dar um acabamento em nosso Grid. Selecione a opo Gradiente brush e escolha a gradiente que mais lhe agradar.

Figura 7: Folder Images.

Vamos adicionar as imagens a serem usadas em nossa aplicao em nosso folder Images.

Codificando.net e-magazine

Figura 8: Figuras play e pause.

Selecionei duas imagens, play e pause. Na pasta Videos adicione um video, neste exemplo vou usar o sample.wmv que j vem na biblioteca de videos do Windows.

Figura 9: Gradiente brush.

www.codificando.net

Fev/ Mar - 2010

47

Conhea e construa sua primeira aplicao em Silverlight

e-magazine

Figura 10: Grid com efeito.

Figura 11: MediaElement.

Agora um controle do tipo TextBlock.


<TextBlock " x:Name="Titulo" HorizontalAlignment="Center" Foreground="White Text="Silverlight Player" FontSize="20" Grid.Row="0" Grid.Column="0"> </TextBlock>

Vamos criar nossos botes adicionando nossa imagens.


<StackPanel VerticalAlignment="Top" Grid.Row="2" Orientation="Horizontal" HorizontalAlignment="Center"> < ToggleButton x:Name="play" > <Image Source="Images/play.png" Height="50" Width="50"></Image> </ ToggleButton > < ToggleButton x:Name="pause" > <Image Source="Images/pause.png" Height="50" Width="50"></Image> </ ToggleButton > </StackPanel>

Veja que possvel ajustar vrias propriedades desse controle como cor e tipo da fonte e posicionamento do layout. Agora o controle principal de nossa aplicao adicione um MediaElement e vamos chama-lo de video.Coloque-o dentro de um Canvas,nesse momente tambem podemos definir posio e o tamanho da tela que nosso video sera exibido.
<Canvas VerticalAlignment="Top" Width="800" Height="500" Background="Black" Grid.Row="1"> <MediaElement x:Name="video" Width="800" Height="500" Grid.Row="1" Source="/Videos/sample.wmv" > </MediaElement> </Canvas>

Codificando.net e-magazine

Figura 12: Botes com imagens.

Com o Layout definido vamos implementar as funcionalidades. Vamos at o MainPage.cs No construtor da classe vamos instanciar dois eventos de nossos botes:

play.Click pause.Click
Fev/ Mar - 2010

www.codificando.net

48

Conhea e construa sua primeira aplicao em Silverlight

e-magazine

Isso uma pequena amostra apenas para despertar seu interesse e aprofundar-se cada vez mais e assim descobrir tudo o que o Silverlight oferece. Para saber mais: Site oficial: http://www.silverlight.net/ Hospedagem gratuita para sua aplicao Silverlight (4gb): http:// silverlight.live.com/ Blog Ren de Paula (User Experience Evangelist Microsoft): http://blogs.msdn.com/ renedepaula/
Figura 11: MainPage.cs.

Vamos dar um Build em nossa aplicao e ver o resultado no Browser.

Comunidades Silverlight-Codificando: http://comunidade.codificando.net/ group/silverlight Comunidades Silverlight-Desenvolvendo Para Web: http:// www.desenvolvendoparaweb.net/group/ silverlight Comunidades Silverlight-Silverlightbrasi: http://silverlightbrasil.ning.com/ Anderson Castro
Graduado em Analise e Desenvolvimento de Software atua no mercado de tecnologia a mais de trs anos com foco na plataforma .Net, desenvolvedor em C# Windows Forms e Asp.net. Alm disso, scio da Ronnin Software, empresa de desenvolvimento integrante do BizSpark da Microsoft e trabalha em um grande clube na cidade de So Paulo. Atualmente aprofundando seus conhecimentos em WPF, WCF e Silverlight. Siga-me: @andersonCastro Escrevo e participo atualmente nas seguintes comunidades e blogs: www.codificando.net WWW.blog.ronnin.com.br www.desenvolvendoparaweb.net www.silverlightbrasil.ning.com

Codificando.net e-magazine

Figura 12: Player Funcionando.

Voc pode pausar e continuar o vdeo a qualquer momento. O poder do silverlight vai muito mais alm do que pudemos acompanhar aqui.

www.codificando.net

Fev/ Mar - 2010

49

e-magazine

SQL Reporting Service 2005 Parte IV


Por: Caio Azevedo

Ol pessoal, hoje veremos a grande revoluo no mundo dos relatrios, que so os remote mode, comearemos apresentar a arquitetura desse modelo de relatrios, bem como suas principais caractersticas e o processo de criao. Lembrando que todos os cdigos aqui implementados esto disponveis no site da nossa comunidade, http://comunidade.codificando.net/ e no meu blog http:// caiodotnet.blogspot.com/, bom divertimento. Parte 4 remote mode arquitetura, caractersticas e criao Os relatrios do modelo Remote Mode so baseados em ambiente web, sendo disponibilizados como uma aplicao asp.net qualquer, hospedados (e dependentes), no Intenet Information Server. So considerados remotos, porque so acessados pelos clientes via protocolo HTTP, e todo seu processamento feito em um ambiente dedicado. Arquitetura Nesse modelo de relatrios, o processamento dos relatrios dividido entre diversos provedores de servios, como exibido na figura 3.1. Ao cliente (Windows e Web application, bem como qualquer outro que interprete SOAP), cabe apenas exibir os relatrios devidamente formata-

dos atravs do nosso j conhecido controle ReportViewer.

Figura 3.1 macro arquitetura remote mode.

Quando falamos da arquitetura do reporting services, temos os seguintes componentes principais:

RS Engine, cuja principal funo gerar os relatrios RS Configuration Database, ou catlogo, que funciona como um repositrio centralizado dos metadados necessrios para o servio de relatrios. Report Manager, aplicao web para gerenciamento do catalogo de relatrios, datasources, segurana, schedules e cache.

Codificando.net e-magazine

Analisando detalhadamente a arquitetu-

www.codificando.net

Fev / Mar - 2010

50

SQL Reporting Service 2005 Parte IV

e-magazine

ra do reporting services, apresentaremos seus componentes atravs do processamento de um relatrio, como apresentado no infogrfico da figura 3.2.

sa (5) para carga do datasource do relatrio, e combinando o contedo do dataset gerado com as informaes de layout gerado um relatrio em um formato intermedirio (6), o que significa ganhos de performance, uma vez que esse formato pode ser reaproveitado no caso de exportao do relatrio em outros formatos que no o da renderizao, processo esse que executado para atender a requisio inicial do usurio (7). Esse formato intermedirio tambm pode ser armazenado no repositrio temporrio do RS no caso de configuraes de cache. Caractersticas

Figura 3.2 processamento dos relatrios.

Os relatrios remote mode caracterizam-se especialmente por:


Inicialmente temos a solicitao dos usurios (1) via HTTP ou SOAP, essa solicitao interceptada pelo IIS (componentes HTTP Handler ou RS Web Service), que em seguida a envia para o elemento (2) Report Processor que analisa a requisio, e atravs de (3) consultas ao catlogo do RS (banco de dados ReportServer e ReportServerTempDB), tem-se as definies e metadados do relatrio. Nesse instante o Report Processor valida s informaes de acesso ao relatrio. Se as permisses forem concedidas temos o processamento dos relatrios divididos em trs estgios: consulta, execuo e renderizao, respectivamente passos 5, 6 e 7 da figura 3.2. Um relatrio uma vez publicado (arquivo RDL), gerado um assembly .net que armazenado no catlogo do RS, e sendo sua primeira execuo, o RS carrega e executa esse assembly, que atravs do componente Data Extensions (4) feita a pesqui-

Modelo de segurana de aplicaes web .net Interatividade com links, Document Map Exporta para vrios formatos [csv, excell, pdv, html] Filtros, ordenao, agrupamento e funes de agregao Formatao rica e inteligente, com imagens, fontes e cores Liberdade para interatividade com o usurio final Suporta cdigo customizado e assemblies externos Disponibiliza os relatrios, sob demanda ou por entrega

Codificando.net e-magazine
|

Seus elementos fundamentais correlacionam-se conforme a figura 3.3:

www.codificando.net

Fev / Mar - 2010

51

SQL Reporting Service 2005 Parte IV

e-magazine

Ao contrrio dos relatrios Local Mode, aqui temos um projeto especfico para os relatrios e outro(s) para o(s) cliente(s). Nesse primeiro momento nos concentraremos na criao, deploy e consumo dos relatrios. Utilizamos o SQL Server Business Intelligence Development Studio, e criamos um novo projeto com o template Report Server Project figura 3.5.
Figura 3.3 correlao dos elementos.

Processo de criao A partir dessa sesso comearemos a implementar alguns relatrios exemplo, para tal utilizaremos o mesmo banco de dados utilizado nos relatrios local mode vide figura 2.3. Antes de iniciar a criao dos relatrios necessrio nos certificarmos que todos os servios estejam operacionais para tal convm verificar as ferramentas: Reporting Services Configuration Manager, onde podemos chegar as configuraes do servio, do diretrio virtual, web services, dos bancos de dados do RS, servios de email, integrao com SharePoint, etc, alm do aplicativo web Report Manager, acessvel por padro no endereo http://<servidor>/ Reports, onde <servidor> corresponde ao nome ou endereo IP, da estao no qual o reporting services se encontra, se for na sua estao de trabalho localhost, tambm funciona.

Figura 3.5 criando soluo de relatrios.

Elementos de uma aplicao de relatrios Basicamente uma aplicao de relatrios composta dos seguintes elementos: DataSource, que corresponde conexo com a fonte de dados do relatrio. atravs do datasource que podemos acessar os diversos repositrios de dados seja ele um banco de dados SQL, documentos XML, elementos de BI do SQL via Analisys Services, Oracle ou quaisquer outras fontes compatveis com ODBC e OLE DB. Podemos ter vrios objetos datasources em nosso projeto, um para cada relatrio, ou um nico compartilhado por todos os rela-

Codificando.net e-magazine

Figura 3.4 RS Configuration Manager.

www.codificando.net

Fev / Mar - 2010

52

SQL Reporting Service 2005 Parte IV

e-magazine

trios. Reports so efetivamente os elementos que iremos trabalhar. Ao contrrio dos relatrios, Local Mode, durante sua implementao necessrio criar os conjuntos de dados (DataSets) que sero utilizados e que aqui faz parte da soluo (por isso, para cada arquivo .rdl dos relatrios temos um correspondente .data), dessa forma a interface de desenvolvimento de relatrios nessa modalidade oferece alguns recursos de criao dos dataset, um tab para formatao do Layout do relatrio e finalmente uma opo de Preview para visualizarmos o relatrio ainda no ambiente de desenvolvimento. A figura 3.6 abaixo apresenta nosso ambiente de desenvolvimento destacando seus principais elementos.

repositrio de dados. Em nossos exemplos usaremos um nico datasource compartilhado.

Figura 3.7 criando shared data source.

Configuraes das propriedades do projeto Aqui, configuraremos o destino dos relatrios e dos datasources. Especificando dentro do diretrio virtual do report Server, a pasta na qual nossos relatrios sero hospedados propriedade TargetReportFolder.

Codificando.net e-magazine

Figura 3.6 ambiente de desenvolvimento dos relatrios. Figura 3.8 - propriedades do projeto.

O processo de criao, para qualquer relatrio segue basicamente os seguintes passos: Criao do(s) objetos datasource Aqui criaremos os objetos de conexo ao

Criao do(s) dataset(s) do relatrio Nesse modelo de relatrios, o(s) conjunto(s) de registro(s) so criados dentro da prpria estrutura dos relatrios, no sendo necess-

www.codificando.net

Fev / Mar - 2010

53

SQL Reporting Service 2005 Parte IV

e-magazine

rio criar objetos DataSets (estruturas de dados utilizados nos local modes). Atravs da Tab Data (Elementos de uma Aplicao de Relatrios, figura 3.6) criamos nosso conjunto de registros especificando suas propriedades, com destaque para o tipo do comando (texto ou stored procedure), o data source utilizado, a instruo SQL ou nome da procedure. No menos funcional, so as especificaes de parmetros e ocasionalmente filtros. A figura 3.9 ilustra a criao dos datasets de um relatrio.

quando da criao de um novo relatrio. As imagens 3.10 at 3.13 demonstram algumas das principais funcionalidades do Report Wizard.

Figura 3.10 report wizard.

Figura 3.9 - criao do dataset.

Formatao Os recursos de formatao do layout dos relatrios Remote Mode, so exatamente iguais aos que dispomos no Local Mode. Os elementos da ToolBox esto todos nossa disposio, bem como as opes de formatao, formatao condicional, os tipos de relatrios tabular, chart e relacional, esto todos aqui. Uma grande funcionalidade aqui presente so os wizards disponveis, no s para formatao, como para todo processo de criao do relatrio. O wizard chamado

Figura 3.11 report wizard.

Codificando.net e-magazine

Figura 3.12 report wizard.

www.codificando.net

Fev / Mar - 2010

54

SQL Reporting Service 2005 Parte IV

e-magazine

isso ai pessoal, no prximo capitulo veremos como consumir nossos relatrios em nossos aplicativos, alm de apresentarmos outros exemplos de relatrios com funcionalidades incrveis, at l. Caio Azevedo
Graduado em Cincia da Computao, Engenharia Civil e louco por cincias exatas em especial fsica e matemtica. Coordenador da Clula Microsoft da Magna Sistema e Arquiteto Microsoft, palestrante, tecnocolunista e instrutor da treinando .net. MCP, MCAD, MCSD, MCTS e MCPD. E fantico pela srie star wars may the force be with you. Blog: http://caiodotnet.blogspot.com/

Figura 3.13 report wizard.

Parametrizao Os relatrios possuem um mecanismo de parametrizao, onde possvel passar informaes a partir do cliente para o relatrio em tempo de execuo. A figura 3.14 ilustra a janela Report Parameters para criao dos parmetros de um relatrio, onde, para acessar, basta clicar com o boto direito fora das sesses do relatrio. Os parmetros nessa modalidade de relatrios tm uma funcionalidade a mais, que nos relatrios local mode, que a capacidade de especificar os valores possveis para os parmetros multivalorados e seus respectivos Default Values a partir de DataSets como mostrado na figura 3.14 .

Codificando.net e-magazine

Figura 3.14 - parmetros.

www.codificando.net

Fev / Mar - 2010

55

e-magazine

Direto do tnel do tempo ... Exceptions! - Voc ainda vai ter uma
Por: Emerson Facunte

Salve, salve DotNetianos! Voc j ouviu falar em Exception? Exception representa uma condio excepcional, um comportamento inesperado ou condio de erro, interrompendo o fluxo normal das instrues durante a execuo de um programa. O .Net oferece um mecanismo robusto para tratamento de excees. Na realidade tratar excees o mesmo que tratar erros com classe, elegncia e sofisticao. O .Net trata os erros como objetos que encapsulam informaes necessrias para resolv-los. Esse mecanismo conhecido como SEH (Structured Exception Handling). Esse poder provm da biblioteca System.Exception. Vejamos os membros do objeto Exception (figura 1):

Propriedade HelpLink

Descritivo Retorna uma URL apontando para um documento HELP com o descritivo do erro em detalhes Descritivo do erro Nome do objeto ou aplicao que gerou o erro Apresenta a seqncia de chamadas que dispararam o erro Apresenta excees aninhadas

Message Source

StackTrace

InnerException

Figura 1 - Membros do objeto Exception.

Estrutura

Codificando.net e-magazine

Vejamos a estrutura bsica para tratamento de excees em C# (listagem 1).


using System; namespace MSDNBrasil { class MainClass { public static void Main(string[] args) { try { // Cdigo a ser executado } catch (TipoExceo1 e)

www.codificando.net

Fev / Mar - 2010

56

Direto do tnel do tempo... Exceptions! - Voc ainda vai ter uma

e-magazine

{ // tratamento da exceo1 } catch (TipoExceo2 e) { // tratamento da exceo2 } catch (Exception e) // erro genrico { // tratamento genrico }

// Gerando exceo baseada numa classe

Public class eIdadeInvalida: Exception {} ... try { ... } catch { Throw new eIdadeInvalida() }
Listagem 2 - Gerando suas prprias excees.

finally { // Este bloco de cdigo sempre ser executado, havendo ou no exceo! } } } }


Listagem 1 - estrutura bsica para tratamento de excees.

Exemplos Vejamos alguns exemplos prticos em C#:


Exemplo 1 Simples exceo

Em nosso primeiro exemplo foraremos um erro de diviso por zero (listagem 3).
using System; namespace MSDNBrasil { class MainClass { public static void Main(string[] args) { try { // Cdigo int x = 5; int y = 0; int z = x/y; Console.WriteLine(z); // esta linha no ser executada } catch (System.Exception e) {
// Apresenta o erro

Quando uma exceo for gerada, apenas um bloco catch executado, desviando o fluxo para o bloco finally (se este existir). Digamos que uma exceo do tipo 1 gerada, ento apenas o bloco catch (TipoExceo2 e) executado, alm do finally. Gerando suas prprias excees Voc tambm poder gerar suas prprias excees utilizando o comando throw. Vejamos a sintaxe (listagem 2):
// Gerando uma exceo simples

Codificando.net e-magazine

Throw New Exception(Erro! Idade inferior a 18 anos)

Console.WriteLine(e.Message);

www.codificando.net

Fev / Mar - 2010

57

Direto do tnel do tempo... Exceptions! - Voc ainda vai ter uma

e-magazine

} finally {
// Este bloco de cdigo sempre ser executado, havendo ou no exceo!

Console.WriteLine("Ok... Backup realizado");


// esta linha no ser executada se horrio > 13:59:59

Console.WriteLine("Simples, no ?"); } } } }
Listagem 3 - Exemplo 1.

} catch (System.Exception e) {
// Apresenta o erro

Console.WriteLine(e.Message); } finally {
// Este bloco de cdigo sempre ser executado, havendo ou no exceo!

A figura 2 ilustra o primeiro exemplo sendo executado.


Exemplo 2 Criando exceo explcita

Console.WriteLine("Simples, no ?"); } } } }
Listagem 4 - Exemplo 2.

A figura 3 ilustra nosso segundo exemplo em execuo.


Figura 2 - Primeiro exemplo sendo executado.

No segundo exemplo criaremos uma exceo explcita (listagem 4).


using System; namespace MSDNBrasil { class MainClass { public static void Main(string[] args) { try {
// Cdigo
Figura 3 Segundo exemplo sendo executado.

Codificando.net e-magazine

Exemplo 3 Criando novas excees

No terceiro exemplo criaremos nossas prprias excees (Listagem 5).


using System; namespace MSDNBrasil { class MainClass { public class eInvalidTime: Exception {} public class eInvalidDay : Exception {} public static void Main(string[] args) {

int Hora = (System.DateTime.Now.Hour); if (Hora>13) { throw new Exception("Backup no poder ser realizado aps as 13 horas!"); }

www.codificando.net

Fev / Mar - 2010

58

Direto do tnel do tempo... Exceptions! - Voc ainda vai ter uma

e-magazine

try {
// Cdigo

A figura 4 ilustra a aplicao sendo executada no dia 8, s 10:00hs.

int Hora = (System.DateTime.Now.Hour); int Dia = (System.DateTime.Now.Day); if (Dia ==8) { throw new eInvalidDay(); } if (Hora<22) { throw new eInvalidTime(); } Console.WriteLine("Ok... Backup realizado");
// esta linha no ser executada se horrio > 13:59:59

Figura 4 - Excees personalizadas.

Concluso Torne o seu cdigo ainda mais protegido. D qualidade ao seu projeto. Reduza os problemas ocasionados por erros de hardware e intervenes de usurios. As exceptions esto a para ajud-lo! Forte abrao e sucesso a todos! Emerson Facunte
Facunte Senior Solutions Architect da Saraiva.COM, professor de Ciencia da Computao da UNIP, Microsoft MVP desde 2005, publicou 10 livros e mais de 120 artigos. Corredor das multides, gourmand e degustador ocasional de cervejas variadas.

} catch (eInvalidTime) {
// Apresenta o erro para o tipo eInvalidTime

Console.WriteLine("------ erro: InvalidTime"); Console.WriteLine("O backup no poder ser realizado antes das 22:00h "); } catch (eInvalidDay){
// Apresenta o erro para o tipo eInvalidDay

Console.WriteLine("------ erro: InvalidDate"); Console.WriteLine("Execute manualmente o procedimento de backup"); } finally {


// Este bloco de cdigo sempre ser executado, havendo ou no exceo!

Codificando.net e-magazine

Console.WriteLine("Simples, no ?"); } } } }
Listagem 5 - Exemplo 3.

www.codificando.net

Fev / Mar - 2010

59

e-magazine

Windows Forms Criando um Splash Screen


Por: Fernanda Sallai

Todos j vimos um Splash Screen em diversas aplicaes. Ah? O que isso? Calma pessoal... Splash Screen uma tela de inicializao, geralmente exibida enquanto est sendo carregada a aplicao. Vamos comear ?! Aplicao A parte de criar um projeto no ser abordada neste artigo. Neste exemplo usarei uma aplicao Windows Forms e a linguagem C#, mas claro que poder ser utilizado em qualquer tipo de aplicao e linguagem fazendo algumas adaptaes conforme sua escolha. Criaremos o projeto conforme a figura 1.

1.

Renomeie o Form1 para FormPrincipal clicando com o boto direito do mouse em cima do form1.cs, escolha a opo Rename e altere o nome do formulrio.

Splash Screen Neste momento iremos criar o Splash Screen. Adicione um novo formulrio nossa aplicao com o nome de FormSplashScreen.cs. Para adicionar o formulrio clique com o boto direito do mouse em cima do projeto CriandoSplashScreen, escolha a opo add, Windows Forms, nomeie para FormSplashScreen.cs. Veja o formulrio criado conforme figura 2.

Codificando.net e-magazine

Figura 1 Projeto criado.

Figura 2 Formulrio FormSplashScreen.

www.codificando.net

Fev / Mar - 2010

60

Windows Forms Criando um Splash Screen

e-magazine

Altere algumas propriedades do formulrio FormSplashScreen (na aba propriedades do Visual Studio).
PROPRIEDADE FormBorderStyle Size StartPosition BackgroundImage None Width: 412; Height: 194 CenterScreen Imagem que criei. VALOR

Ao executar ser exibido o Splash Screen pelo tempo determinado e logo aps fech-lo ser exibido o formulrio principal.

OBS: A propriedade size e o layout podem ter os valores que desejar. O layout nesse caso foi optado pela criao de uma imagem e o size ficou do tamanho da mesma. Veja como ficou o formulrio FormSplashScreen na figura 3.

Figura 4 Exibindo o Splash Screen.

Figura 5 Exibindo o formulrio principal aps o Splash Screen. Figura 3 Layout do formulrio.

Formulrio: FormPrincipal.cs O cdigo do formulrio principal ficar conforme a listagem 1.

Vou finalizar este artigo agradecendo a todos pelo incentivo. E at o prximo artigo. Fernanda Sallai
(fernanda.sallai@codificando.net) cursa o 4 ano de Sistemas de Informao na FICS Faculdades Integradas Campos Salles, reside em So Paulo SP, atualmente realiza estgio na empresa Pakua IT Systems no desenvolvimento de aplicaes web e escreve periodicamente em seu blog. www.fernandasallai.com

Codificando.net e-magazine

Listagem 1 Cdigo do FormPrincipal.cs.

www.codificando.net

Fev / Mar - 2010

61

e-magazine

Ainda alguma dvida sobre a Plataforma .Net?


Por: Alexandre Tarifa
Em 2002 quando a Microsoft apresentava para os desenvolvedores e empresas a plataforma .Net, algumas aplicaes demos tentavam demonstrar a todos um novo mundo ou uma revoluo em uma plataforma de desenvolvimento totalmente nova e inovadora. Eram demos onde uma famlia visitava um zoolgico e como mgica em dispositivos estranhos, talvez hoje bem parecidos com os Pocket PCs, as informaes do animal daquela jaula aparecia na tela do garoto. Outra demo muito conhecida era de uma pessoa andando de bicicleta caia na rua e quando estava no hospital uma prancheta digital, talvez hoje os Tablet PCs, aparecia todo o receiturio do paciente e finalmente a aplicao de demostrao mais comentada... a da famosa gelareira conectada na internet que consumia um Web Service do super mercado e conforme algo era retirado da geladeira, automaticamente a geladeira fazia o pedido... essa aplicao eu nunca vi, mas j vi muitas pessoas falarem sobre ela... todas essas inovaes hoje so experincias reais, mas que provavelmente aconteceriam independete da plataforma .NET, at porque, so mais inovaes de hardware do que de software... mas naquele momento impressionou muitas pessoas. Aps essa lembraa, alguns anos depois o que realmente a Plataforma .Net evoluiu? O que ela nos oferece de novo? uma plataforma confivel? Sim, a plataforma evoluiu e evolui muito, talvez ningum poderia imaginar o quanto... em pouqussimos anos, a Plataforma .NET realidade e esta presente em corporaes de todos os tamanhos, com uma adoo gigantesca em todo mundo... Mas quais as novidades? Hoje so muitas, temos um leque ou um cardpio cheio de opes... antes de mais nada, a Plataforma .NET hoje base para qualquer desenvolvimento da Microsoft, qualquer novo produto tem a plataforma .NET como plataforma J Vamos l... Silverlight! Uma tremenda tecnologia, que ainda vai evoluir muito e que tem como principal benefcio uma real plataforma de desenvolvimento para aplicaes RIA. WPF, uma plataforma mais do que rica, que pode proporcionar aplicaes com recursos grficos e de usabilidade incrveis. ASP.NET MVC e Web Forms 4.0, uma plataforma completssima que compreende qualquer tipo de aplicao Web. WCF Plataforma de servios que engloba toAbril //Maio-2009 Dez Jan 2009

www.codificando.net

62

e-magazine
das as tecnologias anteriores da Microsoft que no para de evoluir e a soluo completa para plataforma de negcios. XNA Plataforma para desenvolvimento de games para Windows e XBOX... A mais recente... Windows Phone... independente do produto em sim, tem a plataforma .NET por trs, ou seja, algo que nenhum concorrente tem, uma plataforma completssima... Entre muitas outras possibilidades e coisas que provavelmente eu nem imagine que possa aparecer em 1,2, 5 ou 10 anos. Resumindo: a Plataforma .NET sem dvida a mais completa plataforma de desenvolvimento para qualquer tipo de empresa e necessidade, temos um leque absurdamente grande e que no para de evoluir... para que investir em uma tecnologia despadronizada e que para cada tipo de desenvolvimento exige um conhecimento? Invista em .Net e com certeza estara investindo em uma plataforma completa e que no te deixar na mo!

www.codificando.net

Abril //Maio-2009 Dez Jan 2009

63