Escolar Documentos
Profissional Documentos
Cultura Documentos
Livro Delphi Web Capitulo 1
Livro Delphi Web Capitulo 1
Captulo 1
Introduo
(R)evoluo
(R)evoluo. Amigos, esta a palavra mais falada pelos desenvolvedores Delphi quando fazem o primeiro contato com a verso 7 do produto. Uns dizem evoluo, outros revoluo. Particularmente acho que o Delphi amadureceu de uma forma extraordinria, e que a equipe de negcios do produto conseguiu quebrar algumas barreiras importantes, como a incorporao de um excelente gerador de relatrios, ou melhor, um poderoso conjunto de componentes conhecido por grande parte dos desenvolvedores Delphi: Rave Report. Como o foco principal deste livro o desenvolvimento de aplicaes e-Business, a maior novidade para os Web-Developers o excelente pacote da empresa Atozed. J ouviram falar em IntraWeb? Agora sim temos uma ferramenta RAD de respeito para o desenvolvimento de aplicaes Web. Veja que no quero desprezar a tecnologia existente desde a verso 3 do produto, nem a nova tecnologia WebSnap, introduzida na verso 6. Pelo contrrio, ainda apio fortemente tais tecnologias, mas ganhamos um forte aliado: IntraWeb. Podem ficar tranqilos, teremos um captulo inteiro sobre o nosso mais novo companheiro. Aproveitando o embalo das apresentaes, no prximo tpico veremos todo o potencial do Delphi 7 em todas as suas distribuies, inclusive da novssima Studio Architect.
Novidades do Delphi 7
Primeiramente, irei apresentar as mudanas na nova verso do Delphi e, em seguida, uma tabela comparativa entre as suas distribuies. Nas mensagens de compilao, poderemos obter novas informaes atravs do site da Borland, com um link direto da mensagem. Maior controle sobre os famosos warnings ou advertncias que so geradas. Uma nova seo System para aplicaes CLX, com diversos controles de diretrios e arquivos. Anteriormente tais controles estavam disponveis somente para aplicaes VCL. Novas implementaes da Nevrona, com melhorias no pacote Indy Components, trazendo Indy Intercepts e Indy I/O Handlers, facilitando ainda mais o desenvolvimento de aplicaes para Internet. O poderosssimo IntraWeb, com as sees IW Standard, IW Data, IW Client Side e IW Control. Para quem reclamava do QuickReport, no pode mais chorar. O Delphi 7 traz consigo o poderoso Rave Reports, com superioridade absoluta em relao ao QR. A cada nova verso, a equipe de desenvolvimento melhora o Code Insight. Agora o code completion (uns dos fortes atrativos do Code Insight) est bem mais rpido, e com inteligncia artificial (este por minha conta). Sem sombra de dvidas ficou bem mais esperto e rpido. 1
2 Delphi 7 Internet e Banco de Dados Temos tambm um code completion para cdigo HTML. Voc tambm poder criar seus prprios administradores code completion, atravs da OpenTools. Para quem no dispensa as Watch Lists, ir babar com as melhorias: mltiplas sees para organizar suas watchs (seus vigilantes, observadores) atravs de grupos. Controle completo sobre a viso das watchs. Possibilidade de compilar projetos por grupo atravs do Project Manager. A seo Message View foi dividida em diversas abas para apresentar diferentes tipos de mensagens (Build, Search, e outros). Agora podemos selecionar mltiplos componentes na opo View/Component List. O editor suporta diferentes tipos de linguagem: Pascal, C++, C#, HTML e XML. Possibilidade de visualizar graficamente tabs e espaos no editor de cdigo. Melhorias para o desenvolvedor Web, com a incluso do IntraWeb (perceberam como estou feliz, s falo nele), suporte ao Apache2 (com todas as suas melhorias e recursos) e excluso do desenvolvimento de aplicaes Win-CGI (16 bits). Um novo browser UDDI para WebServices, e tambm novas classes e interfaces para o SOAP. TSoapAttachments, a grande novidade, onde podemos enviar atravs do SOAP, mensagens com anexo, utilizando multipart form. Tipos de definies so registrados automaticamente. Agora temos um evento poderoso: THTTPReqResp, onde podemos monitorar o pacote de mensagens, enquanto as mesmas so transmitidas. Novos drivers para o dbExpress, trazendo Informix SE, Oracle 9i, DB2 7.2, Interbase 6.5, MySQL 3.23.49, MSSQL2000 (uma das grandes novidades). A Borland desaprova o uso dos SQLLinks, e no disponibiliza mais suporte nas prximas verses do Delphi (aps 2002). Ela recomenda a utilizao da tecnologia dbExpress, que sinceramente, vem melhorando a cada verso. Suporte a Windows XP Themes nas verses Professional e Enterprise. A nova unit DBClientActns, com 3 novas classes: TClientDataSetApply, TClientDataSetUndo, TClientDataSetRevert. E os novos componentes dbExpress: TSimpleDataSet para aplicaes simples e de 2-camadas (TSimpleDataSet substitui TSQLClientDataSet). Diversos componentes visuais e de dilogo para CLX. Melhorias na unit Math. Model-Maker. Para quem nunca ouviu falar em UML, sugiro conhecer esta importante especificao. No Delphi 7, a partir da verso Studio Enterprise, temos uma excelente ferramenta especfica para integrao UML-Delphi-UML. E muito mais.
x x x x x x x x x
Para que voc tenha uma idia de qual verso adquirir, a Borland disponibiliza a sua tabela comparativa. Resolvi adapt-la, fazendo breves comentrios, para que voc tenha uma idia mais clara sobre as diferenas de verses. Nesta tabela so apresentadas somente as novidades do produto. Para maiores informaes, sugiro uma visita ao site da Borland Latin Amrica: www.borland.com.br
Introduo 3
Minha opinio Atualmente estamos vivendo uma fase bem madura de desenvolvimento de software. Antigamente tnhamos aqueles fantasmagricos fluxogramas, passando pela modelagem de dados, e agora, trs vivas: UML (Unified Modeling Language, ou Linguagem de Modelagem Unificada). Ao contrrio dos outros mtodos, a UML uma linguagem de modelagem muito usual em empresas fabricantes de software. E o mais incrvel, foi estendida para outros tipos de segmentos, como automveis, hardwares, empresas de energia, enfim, uma grande variedade. O Model Maker facilita muito o trabalho com UML, integrando totalmente as classes e objetos do Delphi em seu editor. Sugiro a todos que se aprofundem no estudo da UML. Alm dos fortes benefcios, est se tornando uma grande exigncia para desenvolvedores, analistas e coordenadores de projetos, alm, claro, dos gerentes.
Minha opinio Quando tive meu primeiro contato com o IntraWeb pensei: essa a grande soluo para o maior problema: prazo. Amigos, sem sombra de dvidas, o IntraWeb otimiza diversas tarefas no desenvolvimento de aplicaes Web. At mesmo quem no entende nada de HTML, JavaScript, desenvolve poderosas aplicaes Web, com uma interface de primeira. Fico feliz em ter o meu sonho realizado, de aumentar em mais de 30% a produtividade de minhas equipes. E o melhor, no requer um grande treinamento. Com o captulo dedicado a esta incrvel ferramenta, tenho certeza de que todos vocs estaro desenvolvendo aplicaes para Internet com extrema facilidade. Outro ponto bastante importante que a Borland fechou diversas parcerias para o seu novo produto, sempre pensando em disponibilizar o que h de melhor no mercado para ns desenvolvedores.
Introduo 5
Minha opinio Amigos, algum lembra do QuickReport? Eu j esqueci, nem sei do que estamos falando! Brincadeiras parte, finalmente ganhamos um gerador de relatrios bastante profissional. A nossa Me-Borland conseguiu quebrar algumas barreiras para que esse sonho fosse realizado, e todos ns ganhamos com isso. O Rave Reports da inovadora e genial empresa Nevrona (a mesma criadora do Indy Componentes) muito estvel e traz diversos recursos que facilitam a vida do desenvolvedor. Sugiro que criem coragem de aprender um novo gerador de relatrios. Digo isso porque ao longo de minha carreira presenciei diversas pessoas e equipes que relutaram em adotar um novo gerador de relatrios, por diversas crenas: Ser que a empresa que produz o software vai manter a compatibilidade? Ser que a empresa no vai quebrar? Acho muito difcil este software! Entre outras...
IDE
A IDE do Delphi 7 (figura 1.1) muito parecida com a verso anterior. Basicamente mudou o seu visual, muito semelhante ao Windows XP. Vamos dar uma rpida olhadinha.
Figura 1.1 IDE Delphi 7 Como este livro est voltado para o desenvolvimento de aplicao para Internet, vamos conhecer algumas novidades. A figura 1.2 ilustra a nova seo de objetos Web Documents. Sua principal funo de auxiliar na criao dos principais tipos de documentos Web.
Figura 1.2 Nova seo Web Documents Outra grande novidade o nosso amigo Intraweb (figuras 1.3, 1.4, 1.5, 1.6 e 1.7) que ganhou um captulo inteiro neste livro.
Introduo 7
Figura 1.7 Paleta IW Control (IntraWeb) Amigos, d pra imaginar o poder do IntraWeb, com mais de 50 componentes nativos, no padro CLX, s para o desenvolvimento de aplicaes Web? Vocs devem estar pensando: nossa, eu nem aprendi tudo o que o Delphi me oferece de recursos e os caras disponibilizam mais poder, mais novidades! Ser que eu vou aprender tudo isso? Eis a questo. Por isso um livro especializado em Internet, focado no desenvolvimento de aplicaes e-Business. E o j consagrado WebSnap? Uma das estrelas da verso 6, ganhou algumas melhorias e as devidas correes dos pequenos bugs. A figura 1.8 ilustra os componentes do WebSnap.
Figura 1.8 Paleta WebSnap E a moda do momento? WebServices na veia. A tecnologia de WebServices j est sendo utilizada, mesmo que timidamente, em diversos setores, e far mais sucesso ainda com as ferramentas que vm surgindo no mercado. A figura 1.9 ilustra a seo de WebServices do Delphi 7, e a figura 1.10, a paleta de componentes.
Introduo 9 Amigos, tivemos uma breve apresentao dos novos recursos do Delphi 7 na rea de desenvolvimento para Web. A seguir teremos uma introduo bastante importante sobre o desenvolvimento de aplicaes e-Business, bem como sobre o Mtodo Facunte.
MEADOS
80 a 90 91 a 94 94 a 97 98 e 99 00 a 01
PLATAFORMA (*)
Unix, IBM, DOS DOS, Windows DOS, Windows Windows, Internet Windows, Linux, Internet, Intranet, Extranet Cross-plataform, objetos distribudos
LINGUAGENS/FERRAMENTAS
Cobol, Dataflex, C, C++, Clipper DataFlex, Clipper, Fox, Visual Basic Clipper, Visual Basic, Delphi Visual Basic, Delphi, ASP, PHP Visual Basic, Delphi, Kylix, ASP, PHP, ColdFusion, Java . NET, Delphi, Kylix, Corba (ORB), Java, SOAP, SNAP (Web Services)
02 tendncias
Como observamos na Tabela 1, o mercado evoluiu muito aps a dcada de 90, tornando confusa a deciso do desenvolvedor na escolha da melhor tecnologia. Para ajudar os desenvolvedores da velha-guarda, bem como os da nova-gerao, foi criado o MTODO FACUNTE (falaremos do mtodo em seguida). Bem, Mtodo parte, falaremos da forte tendncia para esta dcada que, conforme a Tabela 1, o desenvolvimento Cross-Plataform e Objetos Distribudos. Mas o que so estas novas tecnologias? Ser que so novas mesmo? Vamos iniciar pela tendncia Cross-Plataform. Cross-Plataform quer dizer que a aplicao roda em duas ou mais plataformas. Isso excelente, j que estamos num mercado bastante disputado; Windows melhorando, Linux cativando grandes legies de adeptos, e quem sabe o Lindows1 avana no mercado. Agora vamos imaginar nossa aplicao sendo executada em qualquer ambiente operacional. No timo? J pensou em oferecer ao seu cliente um produto Cross-Plataform? Tenho certeza de que aumentaro muito as chances de vender o produto. OK, e os Objetos-Distribudos? Bem, esse o ponto. Vamos imaginar o seguinte cenrio:
1
Aplicao de Controle de Estoque sendo acessada pela LOJA. Faturamento acessando informaes de Vendas.
Lindows Sistema operacional baseado no LINUX, que traz consigo a tecnologia WINE (kernel para execuo de aplicaes baseadas em Win32).
10 Delphi 7 Internet e Banco de Dados Financeiro gerenciando Faturamento e Contas a Pagar. Diretoria gerenciando todo o sistema. Clientes consultando e fechando pedidos atravs da Internet. Setor de compras fechando pedidos com Fornecedores. Compensao automtica de crdito/dbito da Rede Bancria. Vendedores externos fechando negcios com PALM TOPS.
Sem dvida um sistema dos sonhos de qualquer empresrio e desenvolvedor. Agora imagine efetuar uma manuteno no sistema sem interromper as atividades normais (no v pensar em atualizar o sistema as 02:00 da manh, hein?! Isso no tudo). Vamos melhorar o nosso lado? Com a tecnologia de Objetos-Distribudos podemos criar diversas camadas: Camada de Negcios Camada da Aplicao Cliente Camada da Aplicao Servidor Camada Aplicao Servidor-WEB Camada Banco de Dados entre outras Para realizar as tarefas de manuteno no sistema, o desenvolvedor poder alterar apenas a camada que satisfaz a ocasio. Outro fator bastante interessante que as camadas podem e devem ficar em servidores diferentes, especficos para cada camada. Tudo bem Facunte, mas o que a tecnologia de desenvolvimento WEB tem a ver com tudo isso? Isso mesmo: TUDO! Bem, quando nos referimos a Cross-Plataform imaginamos que os nossos clientes pudessem executar a mesma aplicao em diversas plataformas, certo? Ento temos aqui um caso tpico de Cross-Plataform tudo bem, no nvel de Client e no Server eu explico: Desenvolver uma aplicao com a tecnologia WEB utilizando o Delphi, a mesma poderia ser executada num servidor Windows NT e qualquer equipamento (micro-computador, PALM, Celular, etc. acessaria a aplicao, mesmo que o sistema operacional no fosse Win X. Exemplo: Linux, Mac OS, Solaris, celulares com browser baseado em JAVA (esquea WAP por enquanto), PALM com acesso Internet, entre outros. Viram que magnfico? Em resumo, o objetivo deste livro o desenvolvimento de uma Camada Web, uma das grandes tendncias desta dcada.
Mtodo FACUNTE
O Mtodo Facunte foi criado em 2001 inspirado nas necessidades de desenvolvedores iniciantes e dos amigos da velhaguarda que no tinham base formada sobre qual tecnologia adotar. O mtodo consiste num treinamento completo para o desenvolvedor, abrangendo desde as tendncias do mercado, passando por orientaes financeiras de projeto, at o desenvolvimento prtico de uma aplicao, utilizando ferramentas de alta tecnologia e comumente aceitas como padro de mercado. No diagrama a seguir temos a representao grfica do mtodo.
Introduo 11
Sucesso Mtodo Facunte Desenvolvimento Como e Quanto Cobrar do Cliente Definio do Projeto
Devemos esquecer alguns costumes do mtodo tradicional, como por exemplo: Grids; Barras de navegao entre registros; Botes de funes para todos os lados; Sobreposio excessiva de janelas.
Os referidos costumes degradam muito a performance do servidor de aplicaes e de banco de dados, alm de confundir o usurio em alguns aspectos. Outra coisa bastante interessante que a maioria dos desenvolvedores quer trazer para a web uma interface parecida com seu sistema tradicional. Isso pode custar caro, pois exige um esforo grande de desenvolvimento. Para tanto, recomendo um novo conceito de interface, que veremos ao longo do livro. Vejam que isso apenas um exemplo, que na minha opinio deve ser seguido, mas novos conceitos devero ser criados, e at mesmo outros tipos de interfaces existentes no mercado devem ser analisadas. Procure sempre o melhor para o usurio.
cargo desenvolvedor jr desenvolvedor pleno desenvolvedor snior Gerente de projetos arquiteto web consultor
desenvolvedor tradicional R$ 800 a R$ 1200 R$ 1000 a R$ 2000 R$ 2000 a R$ 4000 R$ 2000 a R$ 6000 R$ 20 a R$ 50/hora
desenvolvedor web R$ 1200 a R$ 1800 R$ 1800 a R$ 3500 R$ 3000 a R$ 8000 R$ 4000 a R$ 12000 R$ 6000 a R$ 10000 R$ 40 a R$ 130/hora
TABELA 2 pesquisa salarial realizada nos principais sites de RH (Grupo Catho, AP Info, Canal de Empregos, Manager) A demanda de desenvolvedores web ainda muito pequena, e a oferta de trabalho muito grande, por isso temos esse cenrio. Claro que aqueles que entrarem antes no mercado sero altamente beneficiados. No se assustem com as quebradeiras das empresas pontocom, pois este tipo de trabalho no se restringe a este seguimento. O que estamos mostrando aqui que qualquer empresa pode contratar os servios de um desenvolvedor web, desde a lojinha de autopeas da esquina, at as grandes corporaes.
Introduo 13 Nunca faa leilo comum o seu cliente querer reduzir o valor de sua proposta, apresentando outras de seus concorrentes. Casos absurdos de reduo de 50, 60 e at 70% so comuns. Acredito num valor de reduo mximo de 20% e o ideal em 10%.
Tudo bem, Facunte, mas como definir os custos de um projeto? Minha sugesto a seguinte: Defina seu valor hora, entre R$ 40 e R$ 60 (sessenta reais). Baseado em sua experincia, calcule o tempo necessrio para desenvolver a aplicao, em nmero de horas e multiplique por 2,5. Caso haja a necessidade de outros membros no desenvolvimento do projeto, faa a adequao em nmero de horas e acrescente 20% por membro. Acrescente os impostos. E finito, encaminhe a proposta ao cliente.
Veja um exemplo prtico: Minha estimativa em horas do projeto Tempo necessrio Prazo estimado pelo cliente O prazo fornecido pelo cliente forou-me a Introduzir mais 3 membros na equipe : 500 horas : 500 horas x 2,5 = 1.250 h : 2 meses : 1.250h + 60% = 2.000 h (60% = 20% por membro) : R$ 40,00 : 2.000 x R$ 40,00 = R$ 80.000,00
Repare, o que pesou no valor final do projeto foi o prazo estipulado pelo cliente, seno teramos um valor bem mais atraente, em torno de R$ 45.000,00. Lembre-se de estimar as horas baseadas em sua experincia, e no faam leiles com o seu valor hora. Obviamente numa fbrica de software virou moda este nome so utilizados recursos mais avanados para avaliao de valores.
Costumo dizer que, aps a modelagem de dados, desenvolver fica fcil. Digo isso porque o corao da aplicao a modelagem. Uma boa modelagem igual a uma boa aplicao, j uma razovel modelagem igual a uma semente frutfera de
14 Delphi 7 Internet e Banco de Dados problemas. Com a modelagem em mos, o gerente poder iniciar os trabalhos com cadastros bsicos e design, lembrando que a modelagem de dados deve ser baseada na anlise de negcios. Os testes devero ser iniciados paralelamente ao desenvolvimento dos cadastros bsicos, assim como o ncleo do projeto (caso haja um responsvel por esta rea, seno, somente aps a concluso dos cadastros bsicos). O prximo tpico complementa as dicas sobre gerenciamento de equipes.
MS Project
O Microsoft Project o melhor gerenciador de projetos que conheo. Com ele podemos gerenciar diversas equipes ao mesmo tempo, conseqentemente diversos projetos (mesmo que por equipe), definir metas e analisar grficos de desempenho por fases, projetos e equipes. O projeto compartilhado entre os membros da equipe, facilitando assim o andamento do mesmo, mostrando as deficincias e tambm toda a eficincia da equipe. Recomendo para todos os tamanhos de projeto, e acredito ser indispensvel para grandes projetos.
ERWin
Quem nunca ouviu falar da fantstica ferramenta de modelagem de dados ERWin? Hoje pertence a CA (Computer Associates) que tem investido muito para melhoria da ferramenta. O ERWin gera scripts SQL para a maioria dos bancos de dados comerciais, como Oracle, SQL Server, Interbase, Sybase, DB2, Progress, Informix, entre outros. Para pequenos desenvolvedores no recomendo, devido ao seu alto custo (CA, no fique brava comigo, mas a dura realidade), mas para mdios e grandes indispensvel. A Squadra, empresa 100% nacional, fabricante de uma tima ferramenta de modelagem de dados: Dr Case. Alm do preo bastante atraente, a ferramenta traz consigo timos recursos para o trabalho com os principais bancos de dados (recomendo para quem utiliza diversos tipos de banco de dados). Existem produtos alternativos especficos para Interbase, como o fantstico IB Admin, da SQLLY (www.sqlly.com) com um custo bastante atraente, e com diversos recursos de gerenciamento do Interbase (altamente recomendvel para quem utiliza Interbase).
UML
Para quem quer qualidade total em seus projetos, recomendo o trabalho baseado em UML (Unified Modeling Language, ou Linguagem de Modelagem Unificada). S para ter uma idia, alm das grandes empresas de software, esto adotando UML indstrias automobilsticas (GM, Ford), fabricantes de hardware (Intel, EPSON, HP, Compaq), entre outras. Mas o que UML? E quais as suas vantagens? Em resumo, UML a unificao dos mtodos Booch, OMT e OOSE, padronizando a modelagem de sistemas de software orientados a objetos, entre outras aplicaes. Hoje em dia, a recomendao bsica para desenvolvimento de sistemas a utilizao de todo o poder da orientao a objetos. A UML colabora muito para a organizao e documentao de projetos orientados a objeto. Para entender melhor o UML, recomendo a leitura do livro Desenvolvendo Aplicaes com UML da Brasport. Mas falar de UML sem falar de sua principal ferramenta, realmente um deslize. Ao meu ver, no existe ferramenta melhor que o Rational Rose da empresa Rational (www.rational.com.br). Todas as especificaes da UML so encontradas na ferramenta, alm da integrao com as principais linguagens de desenvolvimento do mercado. E como agora ganhamos o Model Maker, lets go, friends!!!
TeamSource
A Borland disponibiliza uma excelente ferramenta de controle de verses e de trabalho em equipe: a TeamSource. Com esta ferramenta possvel gerenciar inmeras verses do projeto, alm de organizar o desenvolvimento em grupo, permitindo que inmeros desenvolvedores participem do mesmo projeto. Maiores informaes www.borland.com.br
Introduo 15
Anotaes de Dvidas
?
Preciso Revisar
Anotaes Gerais