JHeat: framework para geração de aplicações
|
|
- Wagner Estrada Sintra
- 8 Há anos
- Visualizações:
Transcrição
1 CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DO PIAUÍ CURSO DE SISTEMAS DE INFORMAÇÃO JHeat: framework para geração de aplicações Mário Sérgio Coelho Marroquim Teresina, outubro de 2006.
2 2 CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DO PIAUÍ CURSO DE SISTEMAS DE INFORMAÇÃO JHeat: framework para geração de aplicações Mário Sérgio Coelho Marroquim Monografia desenvolvida durante a disciplina de Trabalho de Conclusão de Curso e apresentada ao Curso de Sistemas de Informação do Centro Federal de Educação Tecnológica do Piauí, como pré-requisito para a obtenção do título de Tecnólogo em Sistemas de Informação. Orientador: Prof. Erick Baptista Passos Teresina, outubro de 2006.
3 3 Homens convictos são prisioneiros Nietzsche
4 4 Dedico este trabalho a todas as pessoas que contribuíram em maior ou menor grau não apenas com essa realização minha, mas, principalmente, com quem eu sou.
5 5 AGRADECIMENTOS Em primeiro lugar, agradeço à minha família cujo apoio me fortalece a cada dia. Aos professores Erick Passos, Adalton Sena e Ney Paranaguá pelas incontáveis vezes que me corrigiram e me orientaram na melhor maneira de realizar esse trabalho. Aos meus amigos, colegas e demais professores que de alguma forma contribuíram para o meu crescimento.
6 6 SUMÁRIO LISTA DE FIGURAS LISTA DE ABREVIATURAS E SIGLAS RESUMO ABSTRACT INTRODUÇÃO O PADRÃO PARA APLICAÇÕES J2EE O PADRÃO MVC O VASTO USO DE FRAMEWORKS QUAL É O PROBLEMA? GERAÇÃO DE CÓDIGO ATUALMENTE O JHEAT ARQUITETURA CAMADA DE MODELO CAMADA DE VISÃO CAMADA DE CONTROLE UTILIZAÇÃO CADASTROS FLUXOS SEQUÊNCIAIS COMPLEXOS FUNCIONAMENTO DA GERAÇÃO O ARQUIVO PRINCIPAL DE CONFIGURAÇÃO CONCLUSÃO REFERÊNCIAS ANEXO A LISTA DE GERADORES DE APLICAÇÕES ANEXO B LISTA DE FRAMEWORKS CITADOS ANEXO C CÓDIGO-FONTE DA APLICAÇÃO DE EXEMPLO... 37
7 7 LISTA DE FIGURAS Figura 1 arquitetura MVC...13 Figura 2 esquema da geração da camada de visão...19 Figura 3 organização de telas para CRUD...20 Figura 4 trecho da classe Usuario...21 Figura 5 trecho do mapeamento JHeat para a classe Usuario...22 Figura 6 listagem gerada para a classe Usuario...22 Figura 7 tela de cadastro/alteração gerada para a classe Usuario...23 Figura 8 tela de detalhes gerada para a classe Usuario...23 Figura 9 subdivisão de um fluxo em passos...24 Figura 10 trecho do mapeamento JHeat para o fluxo de alteração de senha...25 Figura 11 tela do fluxo de alteração de senha...26 Figura 12 configurações gerais da aplicação...27 Figura 13 tela de login gerada pelo JHeat...28 Figura 14 tela inicial com as abas (sections)...28 Figura 15 esquema geral de arquitetura do JHeat e do processo de geração...29 Figura 16 estrutura de pastas para um projeto que usa JHeat...29
8 8 LISTA DE ABREVIATURAS E SIGLAS J2EE XML HTML JSP CSS AJAX MVC SQL PDF CSV MDA UML CRUD API Java 2 Enterprise Edition extensible Markup Language HyperText Markup Language Java Server Pages Cascading Style Sheets Asynchronous Javascript And XML Model-View-Controller Structured Query Language Portable Document File Comma-separated Values Model Driven Architecture Unified Modeling Language Create, Retrieve, Update and Delete Application Programming Interface
9 9 RESUMO O desenvolvimento de aplicações em Java para o ambiente web (J2EE) pode envolver a utilização de diversos frameworks e gerenciamento de seus inúmeros arquivos de configuração. Além disso, vários trechos de código acabam se repetindo em muitos projetos. Geralmente são relacionados à construção de interface gráfica (páginas HTML, JSP, arquivos CSS e JavaScript) e a requisitos não-funcionais como autenticação, validação de dados, controle do fluxo de páginas, gerenciamento de layouts e geração de LOG's, entre outros. A geração de código veio para acelerar o desenvolvimento dessas aplicações, com ferramentas que geram esse código burocrático, evitando o desgaste de se gerenciar o uso de vários frameworks bem como a repetição da codificação dos requisitos acima citados. Atualmente, boa parte dos geradores de aplicações para o ambiente web são pagos e pouco eficientes, pois carecem de recursos avançados de customização, entre outros problemas, citados ao longo do trabalho. Essa monografia descreve o desenvolvimento e funcionamento do JHeat: um framework, de código 100% livre, para geração de aplicações comerciais escaláveis, fáceis de manter e customizáveis. O propósito é gerar aplicações completas utilizando os melhores frameworks de código aberto existentes como o Hibernate, Struts, DisplayTags, DWR, Ajax Tags, CeWolf e JfreeChart, retirando do programador preocupações com a configuração dessas ferramentas e com a criação e manutenção desse código burocrático e repetitivo. Palavras-chave: Java, J2EE, framework, geração de código, XML, JHeat.
10 10 ABSTRACT The development of Java web applications (J2EE) can involve using diverse frameworks and the management of their configuration files. Besides, there is a repetition of many code stretches in several projects. Generally they are related to the graphical interface construction (HTML pages, JSP, CSS files and Javascript) and non-functional requirements such as authentication, data validation, control of the page flows, layout management and generation of LOG's, among others. Code generation came to speed up the development of these applications, with tools that generate this "burocratic" code, avoids stressful management of using several frameworks as well as the repetition of the requirements codification above cited. Currently, mainly generators of web applications are paid and ineffective, because there is a need for advanced resources of customization, among other problems. This paper describes the development and functioning of the JHeat: an opensource framework that generates scalable, easy to maintain and customizable commercial applications. The purpose is to generate complete applications using the best opensource frameworks like Hibernate, Struts, DisplayTags, DWR, Ajax Tags, CeWolf and JfreeChart, removing from the programmer concerns with the configuration of these tools and with the creation and maintenance of this burocratic and repetitive code. Keywords: Java, J2EE, framework, code generation, XML, JHeat.
11 11 1 INTRODUÇÃO Mesmo com vasta utilização de padrões de projeto e de variados frameworks, existe uma parcela considerável de código que acaba sendo repetida em cada projeto. Isso acontece freqüentemente em módulos ligados à lógica de autenticação, construção de interfaces gráficas, controle de fluxo, tratamento de erros e manutenção de registros de auditoria. De certo modo, a maioria dessas funcionalidades, cujo código é implementado sempre de forma similar, representa um conjunto de requisitos não-funcionais desses projetos. É o chamado "código burocrático". Em grande parte, são funcionalidades que não são esperadas (ou até mesmo conhecidas) pelo usuário final e que, por representarem requisitos comuns a muitos sistemas, exigem dos desenvolvedores um trabalho repetitivo que tende a gerar muitos erros, como veremos ao longo desta monografia. O fato é que a codificação dessas funcionalidades em vários projetos, além do gerenciamento de diversos frameworks e seus arquivos de configuração, pode se tornar uma tarefa cansativa, repetitiva e falível, prejudicando o ciclo de desenvolvimento com muitas linhas de código que não agregam nenhuma lógica de negócio a esses sistemas. O principal objetivo dos frameworks de geração de código é eliminar essa grande etapa de desenvolvimento de código burocrático, gerando, a partir de configurações feitas pelo desenvolvedor, parte do código em algumas camadas da aplicação [1]. Esse trabalho tem como objetivo demonstrar o desenvolvimento e uso de um novo framework de geração de aplicações para a web em Java, o JHeat, e como o desenvolvimento de aplicações para a plataforma J2EE pode ser elevado a novos patamares de produtividade e confiabilidade através da geração de código. Ao longo do texto serão apresentados conceitos básicos sobre as tecnologias envolvidas no desenvolvimento web em Java, as ferramentas para geração de código existentes e detalhes sobre o framework JHeat, seguidos pela conclusão.
12 12 2 O PADRÃO PARA APLICAÇÕES J2EE 2.1 O PADRÃO MVC Com o intuito de se obter uma boa organização interna e, conseqüentemente, facilidade de manutenção nas aplicações, foram criados diversos padrões para separar o seu código em camadas. Essa prática produz código menos complexo e melhor de se entender, facilitando seu desenvolvimento e manutenção [2] [3] [5]. O principal padrão é o MVC (Model-View- Controller) que define três camadas básicas para uma aplicação [2] [3] [4] [5]: Model Camada de modelo onde são implementados todas as regras de negócio e o acesso à base de dados; View Camada de visão, responsável pela interface gráfica das aplicações. No ambiente web isso significa todas as páginas, figuras, arquivos JavaScript, CSS, etc; Controller Camada intermediária que interliga as outras duas, processando as requisições do usuário (na camada de visão) para a camada de negócio. É constituída, no caso da arquitetura J2EE, de classes Java chamadas de servlets. Boa parte dos requisitos não-funcionais está nessa camada. Ex.: controle de fluxo de páginas, autenticação e controle de acesso, entre outros. Esse padrão é uma das soluções encontradas pelos desenvolvedores para promover o desacoplamento entre partes específicas de uma aplicação [2] [3] [5]. Isso significa controle centralizado dos recursos utilizados, como conexão com o banco de dados, e diminuição de código duplicado. Com o padrão MVC, o designer de interfaces gráficas pode trabalhar normalmente com CSS, JavaScript ou Flash, sem se preocupar com lógica de negócio e conexão com a base de dados, preocupações relevantes apenas para os desenvolvedores que cuidam da camada de modelo, como analistas. Essa é a chamada separação de interesses. Assim, torna-se fácil modificar uma aplicação, pois as funcionalidades estão organizadas em camadas bem definidas, facilitando processos de depuração. Veja a arquitetura MVC na figura 1:
13 13 Chamada de métodos Model Contém a lógica de negócio e controla a conexão com o banco de dados Chamada de métodos View Provê a visualização do modelo Envia as requisições do usuário para o Controller Composto de Páginas JSP, arquivos CSS, JavaScript, etc Chamada de métodos Requisições do usuário Controller Define o comportamento da aplicação Processa e valida as requisições do usuário Figura 1: arquitetura MVC 2.2 O VASTO USO DE FRAMEWORKS É improvável que uma aplicação de médio ou grande porte não utilize alguns frameworks. Afinal, eles apresentam muitas soluções para problemas comuns a vários projetos. Geralmente na camada de modelo são utilizados frameworks para persistência de dados, como o Hibernate, a fim de facilitar o desenvolvimento, retirando do programador preocupações com comandos SQL e mapeamento de atributos das classes para atributos na base de dados. O seu uso, ou de similares, elimina uma boa parte do tempo de desenvolvimento [6]. Já na camada de controle podem ser utilizados diversos frameworks MVC como o Struts, WebWork ou Spring MVC. Essas ferramentas encapsulam funcionalidades comuns a vários projetos como autenticação, controle de fluxo de páginas e validação das entradas do usuário (dados de formulários, por exemplo), entre outras. O uso correto desses frameworks ajuda o desenvolvedor a programar correto com código seguindo a arquitetura MVC sem, por exemplo, misturar comandos SQL com código HTML [5]. Na camada de visão muitos componentes gráficos podem ser renderizados dinamicamente com o uso de alguns frameworks. As DisplayTags geram tabelas dinâmicas (a partir de dados fornecidos pelo desenvolvedor) com links para paginação de resultados, exportação dos dados em PDF, Excel ou CSV, além de ordenação automática por qualquer coluna da tabela. Podem-se usar as CeWolf Tags, que utilizam outro framework, o JfreeChart, para construir gráficos de todas as formas e cores em tempo de execução.
14 14 É cada vez mais comum uso da tecnologia Ajax para gerar interfaces gráficas ricas e usáveis na web [7]. Serviços como o Gmail, del.icio.us e Flickr utilizam muito o poder desse novo conceito, levando a Internet a novos padrões de usabilidade. Para se utilizar todas essas novidades é necessário o uso de alguns frameworks como DWR, Dojo, Rico, AjaxTags ou Script.aculo.us [7]. 2.3 QUAL É O PROBLEMA? Como visto, para se criar uma aplicação robusta, escalável e com as tecnologias mais novas, é necessário o conhecimento desses diversos frameworks, além do gerenciamento de suas configurações. Isso é necessário, pois não é saudável e produtivo reinventar a roda, codificando funcionalidades que já estão implementas em alguma dessas ferramentas [5]. Paralelamente, é necessário muito trabalho do desenvolvedor para criar seus Servlets para pesquisas, cadastros, relatórios, autenticação, etc. Também é necessário esforço na criação de layouts CSS, arquivos JavaScript, páginas JSP e seus mapeamentos (para fins de redirecionamentos das requisições do usuário) utilizando ferramentas como o Tiles, por exemplo. Todo esse trabalho se repete em cada projeto de software e representa um processo repetitivo, falível e pouco testável. E mais: não existem ferramentas de testes automatizados realmente boas e fáceis de usar para as camadas de visão e controle, ao contrário da camada de modelo, que conta com a ajuda de ferramentas consolidadas como JUnit e TestNG, por exemplo. Assim, o desenvolvimento de aplicações robustas para a plataforma J2EE pode levar ao uso de diversas ferramentas e repetição de muito código burocrático, tornando essas aplicações bem mais complexas e difíceis de manter, justamente nas camadas menos testáveis da arquitetura MVC.
15 15 3 GERAÇÃO DE CÓDIGO ATUALMENTE Infelizmente, a maioria das ferramentas de geração de código para Java gera apenas classes na camada de negócio e não uma aplicação completa, deixando muito a desejar. Esses frameworks se baseiam na construção da aplicação através de conceitos relacionados a MDA, onde as definições para a geração são feitas em modelos gráficos, similares aos modelos UML [1] [8]. Como exemplos podem-se citar o Constructor, iqgen e algumas ferramentas CASE [8]. A lista completa está em anexo. Paralelamente, existem ferramentas que geram interfaces gráficas de qualidade para aplicações desktop em Java. Elas se baseiam em configurações definidas em arquivos XML. São exemplos o SwiXML e o Thinlet. Muitos geradores produzem programas completos para a plataforma web. Existem ferramentas baseadas em MDA, como AndroMDA e o OptimalJ. Essas ferramentas possuem configurações feitas pelo usuário final em uma interface gráfica ou em arquivos XML para realizar a geração de toda a aplicação web. OpenXava e o JSenna também fazem parte desse último grupo. Outro conjunto de geradores, extremamente elegantes e simples, está surgindo com o crescimento da linguagem Ruby. Ruby-on-rails e Streamlined são exemplos. Ambos são frameworks cuja principal característica é aproveitar a idéia do uso de convenções ao invés de arquivos de configuração. Sua configuração é baseada no esquema da base de dados. Como exemplo, uma tabela chamada user é transformada em uma classe User e esta classe é usada na geração de uma listagem com telas para inclusão, alteração e deleção de registros [9]. O uso de convenções é interessante, pois evita o uso exagerado de XML para configuração, facilitando o desenvolvimento e diminuindo a complexidade das aplicações finais. Percebe-se que muitas dessas ferramentas geram a aplicação por completo, fato que facilita o trabalho com o desenvolvimento e paralelamente prejudica a testabilidade do software final, pois este, depois de gerado, torna-se uma caixa-preta, inviolável. A lógica de negócio, que deveria ser implementada na camada de modelo, acaba por não existir, pois não pode ser gerada automaticamente. A conseqüência disto é que os programas inteiramente
16 16 gerados são, na maioria dos casos, pobres em funcionalidade e pouco complexos, contemplando apenas a funcionalidades básicas, ou CRUD. Pior: como as aplicações geradas, em grande parte, só possuem as funcionalidades básicas, os desenvolvedores são obrigados a alterar o código gerado para adicionar requisitos mais complexos. Ou seja, voltam a desenvolver código burocrático e a conseqüência direta é a queda da produtividade. Assim, com boa parte dessas ferramentas ocorre um ganho de produtividade apenas no início do desenvolvimento.
17 17 4 O JHEAT O JHeat é um framework para a geração automática de aplicações web. Foi desenvolvido como solução alternativa para aos problemas supracitados e segue a mesma ideologia de um outro conjunto de geradores poderosos, como o J2EE Spider, e-gen e GreenBox [10] [11] [12]. A idéia básica por trás desses frameworks é deixar a lógica de negócio para quem melhor pode fazê-la e testá-la, o programador. O código referente às camadas de visão e controle é puramente burocrático e repetitivo, podendo ser gerado automaticamente. No caso do JHeat, a aplicação final é gerada a partir do código do modelo de negócios (camada model do padrão MVC), configurações em arquivos XML e templates JSP. A ferramenta foi criada durante o desenvolvimento do sistema de gestão do plano de saúde IAPEP Saúde, para o IAPEP (Instituto de Assistência a Previdências do Estado do Piauí). O sistema foi entregue em três meses, dentro do prazo, e está em funcionamento desde abril de O JHeat também foi utilizado para criar outros dois sistemas para os planos de saúde: Proteção e Recife Saúde. 4.1 ARQUITETURA Para gerar aplicações robustas e complexas, com muitos requisitos não-funcionais, como segurança, usabilidade e desempenho, o JHeat utiliza cerca de 14 frameworks incluindo Hibernate, Struts, DisplayTags, DWR, Ajax Tags, CeWolf e JfreeChart, Apache Commons, IText, Ant, entre outros. Sem o uso do gerador, o desenvolvedor teria que lidar diretamente com todos esses frameworks e repetiria esse trabalho em cada novo projeto, uma vez que essas ferramentas são necessárias para lidar elegantemente com a complexidade desses sistemas. O JHeat se encarrega de configurar esses componentes e encapsula seu funcionamento, facilitando o trabalho do desenvolvedor e diminuindo drasticamente a complexidade da aplicação final. O JHeat não gera uma aplicação por completo, somente as camadas de controle e visão. A camada de modelo deve ser totalmente desenvolvida pelo
18 18 programador, fato que confere ao framework grande flexibilidade e grande manutenibilidade, uma vez que essa camada pode ser corrigida e incrementada a qualquer momento, gerando-se novamente a aplicação. O JHeat, portanto, é composto de um gerador para a camada de visão e outro para a configuração da camada de controle, além de um framework controlador genérico. A seguir, segue um maior detalhamento da estrutura interna de cada camada gerada e frameworks utilizados CAMADA DE MODELO O modelo é uma das camadas mais importantes de uma aplicação, pois é nele que são codificados quase todos os requisitos e regras de negócio [3]. É nessa camada que o acesso às bases de dados deve ser implementado [6]. Esse último fato acrescenta muita complexidade ao seu desenvolvimento sendo muitas vezes necessário o uso de alguns frameworks como Spring, Hibernate, Toplink e outros para auxilio nas configurações e na codificação das funcionalidades que envolvam acesso às bases de dados. O Hibernate provê diversas facilidades na comunicação entre o código Java contido no modelo e a base de dados [6]. Por ser uma das ferramentas mais utilizadas pelos desenvolvedores, é obrigatório o seu uso na camada de modelo de uma aplicação gerada pelo JHeat, que utiliza essa ferramenta internamente para realizar as operações com a base de dados. Essa é uma das únicas regras a serem observadas para que a aplicação possa ser gerada corretamente com JHeat CAMADA DE VISÃO A camada de visão das aplicações geradas é constituída de arquivos JSP que são baseados em arquivos de template, que utilizam diversas tags customizadas, como as DisplayTags, para paginação, exibição e filtragem de listagens variadas. Conta também com componentes visuais baseados em Ajax e para criação de gráficos, as CeWolf Tags. Os arquivos de template são páginas JSP com todas as definições de layout, cujo conteúdo dinâmico (listagens, campos para pesquisa ou formulário de inclusão/alteração) está representado através de chaves literais. A geração das inúmeras páginas ocorre com a cópia do arquivo de template para cada mapeamento do JHeat (visto com mais detalhes a seguir) e substituição das chaves, de acordo com cada mapeamento. Exemplo: em uma aplicação com mapeamentos para uma classe Usuario e uma
19 19 Cliente, um mesmo arquivo de template de listagem é utilizado para gerar as páginas de listagens para as duas entidades. Nas duas cópias feitas, as chaves são substituídas pelas propriedades mapeadas para cada classe nos arquivos XML. Veja, na figura 2, um esquema que melhor representa a geração da camada de visão. Listagem da classe A Listagem da classe B Template JSP p / listagem Conjunto de chaves para serem substituídas por conteúdo dinâmico 3 2 JHeat Gerador da camada de visão 1 Mapeamento XML da classe A Mapeamento XML da classe B Ordem dos passos da geração da camada de visão Figura 2: esquema da geração da camada de visão Esse é um dos principais mecanismos que conferem ao framework uma grande extensibilidade. Se o desenvolvedor quiser alterar a aparência da aplicação, basta mudar o arquivo de template (existem vários templates para cada área da aplicação gerada, discutidos mais adiante) e gerar novamente a aplicação CAMADA DE CONTROLE O Struts foi o framework MVC escolhido para ser utilizado internamente na camada de controle gerada pelo JHeat. Ele ajuda a simplificar processos de autenticação, redirecionamento, mapeamento de páginas e internacionalização de conteúdo [5]. Foi escolhido por ser um dos mais completos, além de bastante testado e bem documentado. [5] O JHeat possui um conjunto de classes para a camada de controle que utilizam a API de reflexão do Java para realizar inúmeras operações genericamente, de forma que se adaptem a quaisquer classes e atributos mapeados nos arquivos de configuração em XML. Assim, esses servlets genéricos cuidam de operações como controle de acesso, redirecionamento de páginas e controle de transações com a base de dados.
20 UTILIZAÇÃO Para utilizar o framework é necessário entender que a geração das telas foi criada e dividida de acordo com um conjunto de padrões de exibição de conteúdo e funcionalidades. Esses padrões de telas serão detalhados a seguir CADASTROS São telas que agrupam operações simples, CRUD, para cadastro, pesquisa e alteração de registros na base de dados. Foram criadas páginas-padrão para listagem, cadastro/alteração e detalhes das entidades. Para melhor exemplificar, veja a figura abaixo, que mostra também os relacionamentos (links) entre essas páginas. Listagem Pesquisa 1 Cadastro/Alteração Campos Listagem Botões 2 Detalhes Campos 3 Ordem de apresentação das telas Figura 3: organização de telas para CRUD Para exemplificar melhor, serão mostrados trechos de código de uma aplicação para demonstração (o código completo encontra-se em anexo). O primeiro trecho de código referese à classe Usuario do sistema. Veja na figura 4:
21 21 Figura 4: trecho da classe Usuario Logo em seguida, na figura 5, está o mapeamento do JHeat para esta classe.
22 22 Figura 5: trecho do mapeamento JHeat para a classe Usuario Agora as telas finais para listagem, cadastro e detalhamento, geradas a partir dos arquivos de templates. Figura 6: listagem gerada para a classe Usuario
23 23 Figura 7: tela de cadastro/alteração gerada para a classe Usuario Figura 8: tela de detalhes gerada para a classe Usuario FLUXOS SEQUÊNCIAIS COMPLEXOS São operações que geralmente são divididas em vários passos e ocupam várias páginas para serem concluídas [13]. Exemplo: a compra de um produto, que engloba a pesquisa de um item, o cadastro do comprador e a finalização da venda. Cada passo depende de outro e essa dependência é representada através de parâmetros vindos de passos anteriores. No JHeat, cada passo é mapeado para um método de uma classe. Tal método recebe os parâmetros da tela, realiza algum processamento e retorna algum tipo de informação, que será utilizada no próximo passo. Portanto, para que um fluxo seja mapeado é necessária uma classe cujos métodos se referenciam a cada passo e recebem os parâmetros do passo anterior como argumento, de
24 24 modo que possam executar alguma operação. Veja na figura 9 um esquema mostrando como um fluxo se subdivide em vários passos (páginas) para completar uma tarefa qualquer. Classe para o fluxo Método 01 Método 02 Método 03 Fluxo (transação longa) Passo 01 Passo 02 Passo 03 Página 01 Página 02 Página 03 Figura 9: subdivisão de um fluxo em passos gerada. Veja, como exemplo, trechos de um fluxo para alteração da senha do usuário e a tela
25 25 Figura 10: trecho do mapeamento JHeat para o fluxo de alteração de senha
26 26 Figura 11: tela do fluxo de alteração de senha 4.3 FUNCIONAMENTO DA GERAÇÃO Para que a geração da aplicação aconteça é necessário, que a camada de modelo esteja implementada utilizando-se o Hibernate como ferramenta de mapeamento objeto-relacional e corretamente mapeada no JHeat. Também são necessários os arquivos JSP de template (a distribuição do framework, disponível para download, contém um conjunto de templates para exemplo). Cada template é constituído por um conjunto de arquivos JSP cujo conteúdo possui definições de layout e um conjunto de chaves literais que serão substituídas por conteúdo configurado nos arquivos XML, no momento da geração. Essas configurações em XML são utilizadas para gerar tanto as páginas como as configurações do Struts. Os controladores genéricos baseados em reflexão realizam operações com classes, de acordo com os mapeamentos. Exemplo: um cadastro de usuário é feito pelo servlet de cadastro que lê as configurações no mapeamento do JHeat e sabe quais atributos preencher e qual classe salvar. O mesmo servlet pode ser usado em quaisquer outros cadastros, pois, em tempo de execução, sabe a qual mapeamento se refere o determinado cadastro e localiza, nas configurações em XML, dados para realizar essa e outras operações O ARQUIVO PRINCIPAL DE CONFIGURAÇÃO Cada entidade deve possuir seu mapeamento assim como os diversos fluxos. Paralelamente, existem configurações gerais, como login e controle de acesso, que precisam
27 27 ser definidas em um local separado. De mesma análoga ao Hibernate, cujo arquivo principal de configuração é o hibernate.cfg.xml, o JHeat conta com o arquivo jhive.cfg.xml para definir as configurações gerais da aplicação e incluir todos os mapeamentos referentes aos cadastros e fluxos. Veja na figura 12 um exemplo do arquivo e logo em seguida, na figura 13, a tela de login gerada pelo framework: Figura 12: configurações gerais da aplicação
28 28 Figura 13: tela de login gerada pelo JHeat Figura 14: tela inicial, com as abas (sections) Todos os elementos section, declarados no arquivo de configuração, são utilizados para gerar abas para navegação na tela final, como mostra a figura 14. Cada cadastro pertence a apenas uma section (veja um exemplo na figura 5), assim como os fluxos (veja um exemplo na figura 10). No último bloco do arquivo jhive.cfg.xml são definidos quais tipos de usuários podem acessar determinadas sections. O método para autenticação, chamado no exemplo de getroles(), deve retornar uma lista de grupos/tipos a que o usuário pertence. Esses dados são usados para o controle de acessso, definido no final do arquivo como mostra a figura 12. A seguir um esquema geral da arquitetura interna do framework bem como do processo de geração.
29 29 Modelo 1 JHeat A aplicação final usa o JHeat para executar as operações na base de dados Configurações em XML 2 Gerador do Controle Gerador da Visão 4 View da aplicação final 3 Aplicação Final Templates JSP Passos para a geração da aplicação final Figura 15: esquema geral da arquitetura do JHeat e do processo de geração Em seguida, na figura 16, está a estrutura de pastas para a aplicação de exemplo: Pasta para código-fonte da camada de modelo Pasta para as configurações XML do JHeat Pasta para o arquivo de construção ANT* Pasta para os templates JSP* Pasta para as bibliotecas* Pasta para a aplicação gerada * Arquivos fornecidos junto com o JHeat Figura 16: estrutura de pastas para um projeto que use o JHeat
30 30 5 CONCLUSÃO O JHeat surgiu com a idéia de não ser um gerador fullstack (que gera toda a aplicação). Ele cria aplicações robustas e escalávéis através da geração das camadas de visão e controle. A camada de modelo não pode ser gerada, pois é nela que são codificados todos os requisitos funcionais e regras de negócio. Deve, portanto, ser criada pelo desenvolvedor. Esse fato confere ao framework grande escalabilidade e manutenibilidade já que todas as funcionalidades não estão sob o controle do framework e, portanto, não ficam limitadas pelas estratégias de geração da ferramenta. O gerador constrói toda a interface gráfica (camada de visão) e a camada de controle, para prover meios de acesso às funcionalidades codificadas na camada de modelo. O uso de templates JSP facilitou muito a customização das telas da aplicação e evitou um dos principais problemas da geração de código: quando é necessário alterar uma página específica, o arquivo gerado é alterado, impedindo que a aplicação toda possa ser gerada novamente, levando a situações que podem provocar erros e queda de produtividade. Com o JHeat, quando se quer alterar algum elemento na interface gráfica, alteram-se somente os templates e arquivos XML de configuração. Nunca se altera o código gerado. Assim, pode-se gerar a aplicação quantas vezes for necessário, sem que haja perda da produtividade. É a chamada geração incremental [10]. Atualmente novos padrões como Convension Over Configuration regem o modelo de configuração de frameworks como Ruby-on-rails e sua extensão, o Streamlined [9]. Na época em que o JHeat foi criado, esses conceitos ainda não estavam tão difundidos como hoje, portanto, no JHeat as configurações são todas feitas em arquivos XML de forma declarativa. Em versões futuras o JHeat também irá utilizar convenções de alguma forma. Isso minimizará o trabalho para configuração da ferramenta e facilitará a sua adoção. Em suma, a geração de código, ou mesmo de aplicações, realmente aumenta a produtividade no desenvolvimento de software [1]. O framework mostrou-se extremamente estável, rápido e escalável. Evita a repetição de código e conhecimento sobre o uso dos vários frameworks envolvidos. A ferramenta é livre e está sendo disponibilizada para toda a
DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS
DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS Emanuel M. Godoy 1, Ricardo Ribeiro Rufino 1 1 Universidade Paranaense (Unipar) Paranavaí PR Brasil godoymanel@gmail.com,
Leia maisAmbiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro
Desenvolvimento em PHP usando Frameworks Elton Luís Minetto Agenda Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro Ambiente Web É o ambiente
Leia maisABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE
ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE Amarildo Aparecido Ferreira Junior 1, Ricardo Ribeiro Rufino 1 ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil aapfjr@gmail.com
Leia maisAmbiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração
Desenvolvimento em PHP usando Frameworks Elton Luís Minetto Agenda Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração Ambiente Web É o ambiente formado
Leia maisDESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES
DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES Alexandre Egleilton Araújo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil araujo.ale01@gmail.com, jaime@unipar.br Resumo.
Leia maisArquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC
Arquitetura de Aplicações JSP/Web Padrão Arquitetural MVC Arquitetura de Aplicações JSP/Web Ao projetar uma aplicação Web, é importante considerála como sendo formada por três componentes lógicos: camada
Leia mais02 - Usando o SiteMaster - Informações importantes
01 - Apresentação do SiteMaster - News Edition O SiteMaster foi desenvolvido para ser um sistema simples de gerenciamento de notícias, instalado em seu próprio computador e com configuração simplificada,
Leia maisAplicativo web para definição do modelo lógico no projeto de banco de dados relacional
Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional Juarez Bachmann Orientador: Alexander Roberto Valdameri Roteiro Introdução Objetivos Fundamentação teórica Desenvolvimento
Leia maisWebWork 2. João Carlos Pinheiro. jcpinheiro@cefet-ma.br
WebWork 2 João Carlos Pinheiro jcpinheiro@cefet-ma.br Versão: 0.5 Última Atualização: Agosto/2005 1 Agenda Introdução WebWork 2 & XWork Actions Views Interceptadores Validação Inversão de Controle (IoC)
Leia maisSCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello mello@icmc.usp.br
SCE-557 Técnicas de Programação para WEB Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello mello@icmc.usp.br 1 Cronograma Fundamentos sobre servidores e clientes Linguagens Server e Client side
Leia maisOrientação a Objetos
1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou
Leia maisPROGRAMAÇÃO SERVIDOR PADRÕES MVC E DAO EM SISTEMAS WEB. Prof. Dr. Daniel Caetano 2012-1
PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB PADRÕES MVC E DAO Prof. Dr. Daniel Caetano 2012-1 Objetivos Compreender o conceito de Padrões de Projeto Compreender o Padrão MVC Conhecer o princípio de alguns dos
Leia maisSISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl
SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE Aluno: Roberto Reinert Orientador: Everaldo A. Grahl Roteiro de apresentação Introdução Objetivos Fundamentação Teórica Workflow Processo
Leia maisCURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011
CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011 O curso foi especialmente planejado para os profissionais que desejam trabalhar com desenvolvimento de sistemas seguindo o paradigma
Leia mais4 O Workflow e a Máquina de Regras
4 O Workflow e a Máquina de Regras O objetivo do workflow e da máquina de regras é definir um conjunto de passos e regras configuráveis. Ao longo de sua execução, um usuário consegue simplificar o seu
Leia maisgerenciamento de portais e websites corporativos interface simples e amigável, ágil e funcional não dependendo mais de um profissional especializado
O NetPublisher é um sistema de gerenciamento de portais e websites corporativos (intranets ou extranets), apropriado para pequenas, médias e grandes empresas. O conteúdo do website pode ser atualizado
Leia maisWebApps em Java com uso de Frameworks
WebApps em Java com uso de Frameworks Fred Lopes Índice O que são frameworks? Arquitetura em camadas Arquitetura de sistemas WEB (WebApps) Listagem resumida de frameworks Java Hibernate O que são frameworks?
Leia maisDOCUMENTAÇÃO DO FRAMEWORK - versão 2.0
DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0 Índice 1 - Objetivo 2 - Descrição do ambiente 2.1. Tecnologias utilizadas 2.2. Estrutura de pastas 2.3. Bibliotecas já incluídas 3 - Características gerais 4 - Criando
Leia maisDesenvolvimento de aplicação web com framework JavaServer Faces e Hibernate
Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate Tiago Peres Souza 1, Jaime Willian Dias 1,2 ¹Universidade paranaense (Unipar) Paranavaí PR Brasil tiagop_ti@hotmail.com 2 Universidade
Leia mais3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio
32 3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio Este capítulo apresenta o framework orientado a aspectos para monitoramento e análise de processos de negócio
Leia maisConteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo
Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 02810 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 2. Processo de Software 3. Gerência de
Leia mais5 Detalhes da Implementação
Detalhes da Implementação 101 5 Detalhes da Implementação Neste capítulo descreveremos detalhes da implementação do Explorator que foi desenvolvido usando o paradigma MVC 45 e o paradigma de CoC 46 (Convention
Leia maisUse a Cabeça! FREEMAN, Eric e Elisabeth. HTML com CSS e XHTML BASHMAN, Brian / SIERRA Kathy / BATES, Bert. Servlets & JSP
Use a Cabeça! FREEMAN, Eric e Elisabeth. HTML com CSS e XHTML BASHMAN, Brian / SIERRA Kathy / BATES, Bert. Servlets & JSP Software cliente: browser e outros Protocolo HTTP Infraestrutura de transporte
Leia maisUniversidade da Beira Interior
Universidade da Beira Interior Relatório Apresentação Java Server Pages Adolfo Peixinho nº4067 Nuno Reis nº 3955 Índice O que é uma aplicação Web?... 3 Tecnologia Java EE... 4 Ciclo de Vida de uma Aplicação
Leia maisCurso de Java. Acesso a banco de dados através do Hibernate. Todos os direitos reservados Klais
Curso de Java Acesso a banco de dados através do Hibernate Todos os direitos reservados Klais Motivação Java é uma linguagem orientada a objetos: Numa aplicação, o uso de objetos é um recurso importante
Leia maisProgramação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza
Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões Prof. MSc. Hugo Souza Se você precisar manter informações sobre seus usuários enquanto eles navegam pelo seu site, ou até quando eles saem
Leia maisO CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE
O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE Renan Leme Nazário, Ricardo Rufino Universidade Paranaense (Unipar) Paranavaí PR - Brasil renazariorln@gmail.com, ricardo@unipar.br Resumo. Este artigo
Leia maisGuia de Fatores de Qualidade de OO e Java
Qualiti Software Processes Guia de Fatores de Qualidade de OO e Java Versã o 1.0 Este documento só pode ser utilizado para fins educacionais, no Centro de Informática da Universidade Federal de Pernambuco.
Leia maisComo já foi muito bem detalhado no Capítulo IV, o jcompany Developer Suite pode ser
A1Criando um módulo de negócio Capítulo 27 Aplicação dividida em módulos - Introdução Como já foi muito bem detalhado no Capítulo IV, o jcompany Developer Suite pode ser compreendido como uma solução de
Leia maisFERRAMENTA WEB PARA MODELAGEM LÓGICA EM PROJETOS DE BANCOS DE DADOS RELACIONAIS
FERRAMENTA WEB PARA MODELAGEM LÓGICA EM PROJETOS DE BANCOS DE DADOS RELACIONAIS PAULO ALBERTO BUGMANN ORIENTADOR: ALEXANDER ROBERTO VALDAMERI Roteiro Introdução Objetivos Fundamentação teórica Desenvolvimento
Leia maisAula 03 - Projeto Java Web
Aula 03 - Projeto Java Web Para criação de um projeto java web, vá em File/New. Escolha o projeto: Em seguida, na caixa Categorias selecione Java Web. Feito isso, na caixa à direita selecione Aplicação
Leia maisPersistência de dados com JPA. Hélder Antero Amaral Nunes haanunes@gmail.com
Persistência de dados com JPA Hélder Antero Amaral Nunes haanunes@gmail.com O que é persistência? A persistência de dados é o fato de pegar um dado e torná-lo persistente, ou seja, salvar em algum banco
Leia maisUma Abordagem sobre Mapeamento Objeto Relacional com Hibernate
Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate Luis Gustavo Zandarim Soares 1, Késsia Rita da Costa Marchi 1 1 Universidade Paranaense (Unipar) Paraná PR Brasil luisgustavo@live.co.uk,
Leia maisDesenvolvimento Web com Framework Demoiselle versão 1.0
Desenvolvimento Web com Framework Demoiselle versão 1.0 Módulo 07: Outros Componentes Autor: Rodrigo Hjort Serpro / Coordenação Estratégica de Tecnologia / Curitiba www.frameworkdemoiselle.org.br Modificado
Leia maisDocumento de Arquitetura
Documento de Arquitetura A2MEPonto - SISTEMA DE PONTO ELETRÔNICO A2MEPonto - SISTEMA DE PONTO ELETRÔNICO #1 Pág. 1 de 11 HISTÓRICO DE REVISÕES Data Versão Descrição Autor 28/10/2010 1 Elaboração do documento
Leia maisSISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS
SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS Pablo dos Santos Alves Alexander Roberto Valdameri - Orientador Roteiro da apresentação Introdução Objetivos Motivação Revisão bibliográfica
Leia maisANEXO 11. Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação.
ANEXO 11 O MATRIZ Para o desenvolvimento de sites, objeto deste edital, a empresa contratada obrigatoriamente utilizará o framework MATRIZ desenvolvido pela PROCERGS e disponibilizado no início do trabalho.
Leia maisManual de usuário. do sistema multicálculo CotakWeb
Manual de usuário do sistema multicálculo CotakWeb Belo Horizonte 01 de setembro de 2010 1 Sumário 1. CANAIS DE ATENDIMENTO... 3 2. DOWNLOAD DO APLICATIVO... 3 3. LOGIN... 3 4. CONFIGURAÇÃO... 4 4.1. PARÂMETROS
Leia maisMVC e Camadas - Fragmental Bliki
1 de 5 20-03-2012 18:32 MVC e Camadas From Fragmental Bliki Conteúdo 1 Introdução 2 Camadas: Separação Entre Componentes 3 MVC: Interação Entre Componentes 4 Conclusão 5 Referências Introdução A Arquitetura
Leia maisSISTEMA DE GERENCIAMENTO DE PROJETOS - REDMINE MANUAL DE USO
SISTEMA DE GERENCIAMENTO DE PROJETOS - REDMINE MANUAL DE USO AGOSTO DE 2013 SUMÁRIO STI/UFF - Sistema de Gerenciamento de Projetos do PDI SUMÁRIO... 2 1 Introdução... 3 1.1 O que é e qual a finalidade
Leia maisFigura 1 - Arquitetura multi-camadas do SIE
Um estudo sobre os aspectos de desenvolvimento e distribuição do SIE Fernando Pires Barbosa¹, Equipe Técnica do SIE¹ ¹Centro de Processamento de Dados, Universidade Federal de Santa Maria fernando.barbosa@cpd.ufsm.br
Leia maisUSANDO O IZCODE PARA GERAR SOFTWARE RAPIDAMENTE
USANDO O IZCODE PARA GERAR SOFTWARE RAPIDAMENTE SUMÁRIO usando o izcode... 1 para gerar software rapidamente... 1 introdução... 2 o que é o izcode?... 2 Como funciona o izcode?... 2 os tipos diferentes
Leia maisTUTORIAL DO ALUNO. Olá, bem vindo à plataforma de cursos a distância da Uniapae!!!
TUTORIAL DO ALUNO Olá, bem vindo à plataforma de cursos a distância da Uniapae!!! O Moodle é a plataforma de ensino a distância utilizada pela Uniapae sendo a unidade de ensino para rápida capacitação
Leia maisCurso de Aprendizado Industrial Desenvolvedor WEB
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos II Professor: Cheli dos S. Mendes da Costa Servidor de Aplicações WEB Tomcat Servidor Tomcat Foi desenvolvido
Leia maisTópicos de Ambiente Web. Modulo 2 Processo de desenvolvimento de um site Professora: Sheila Cáceres
Tópicos de Ambiente Web Modulo 2 Processo de desenvolvimento de um site Professora: Sheila Cáceres Roteiro Motivação Desenvolvimento de um site Etapas no desenvolvimento de software (software:site) Analise
Leia maisPalavras-chave: i3geo, gvsig, Mapserver, integração, plugin. Contato: edmar.moretti@terra.com.br ou edmar.moretti@gmail.com
III Jornada Latinoamericana e do Caribe do gvsig Artigo: Integração do software i3geo com o gvsig Autor: Edmar Moretti Resumo: O i3geo é um software para a criação de mapas interativos para internet qu
Leia maisMAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO
MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO UTILIZANDO O HIBERNATE Rafael Laurino GUERRA, Dra. Luciana Aparecida Martinez ZAINA Faculdade de Tecnologia de Indaiatuba FATEC-ID 1 RESUMO Este artigo apresenta
Leia maisPRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB)
RELATÓRIO DE ENTREGA DO PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB) PARA A ELABORAÇÃO DOS PLANOS MUNICIPAIS DE GESTÃO INTEGRADA DE RESÍDUOS SÓLIDOS PMGIRS PARA OS MUNICÍPIOS DE NOVO HORIZONTE, JUPIÁ, GALVÃO,
Leia maisINTRODUÇÃO 12. DOCUMENTAÇÃO INTRODUÇÃO INTRODUÇÃO
INTRODUÇÃO 12. DOCUMENTAÇÃO Na plataforma Java SE 7, há cerca de 4000 classes e interfaces disponíveis para utilizarmos em nossas aplicações Podemos visualizar a documentação dessas classes e interfaces
Leia maisConstrutor de sites SoftPixel GUIA RÁPIDO - 1 -
GUIA RÁPIDO - 1 - Sumário Introdução...3 Por que utilizar o Construtor de Sites?...3 Vantagens do Construtor de Sites...3 Conceitos básicos...3 Configuração básica do site...5 Definindo o layout/template
Leia maisGoogle Drive. Passos. Configurando o Google Drive
Google Drive um sistema de armazenagem de arquivos ligado à sua conta Google e acessível via Internet, desta forma você pode acessar seus arquivos a partir de qualquer dispositivo que tenha acesso à Internet.
Leia maisDocumento de Projeto de Sistema
Documento de Projeto de Sistema 1 IFES / Serra Projeto: Gerenciador de Pelada - Oasis Registro de Alterações: Versão Responsável Data Alterações 0.1 Eduardo Rigamonte, Geann Valfré, João Paulo Miranda,
Leia maisProgramação de Computadores - I. Profª Beatriz Profº Israel
Programação de Computadores - I Profª Beatriz Profº Israel As 52 Palavras Reservadas O que são palavras reservadas São palavras que já existem na linguagem Java, e tem sua função já definida. NÃO podem
Leia maisEtc & Tal. Volume 2 - Número 1 - Abril 2009 SBC HORIZONTES 44
Armazenando Dados em Aplicações Java Parte 2 de 3: Apresentando as opções Hua Lin Chang Costa, hualin@cos.ufrj.br, COPPE/UFRJ. Leonardo Gresta Paulino Murta, leomurta@ic.uff.br, IC/UFF. Vanessa Braganholo,
Leia maisJava. Marcio de Carvalho Victorino www.dominandoti.eng.br
Java Marcio de Carvalho Victorino www.dominandoti.eng.br 3. Considere as instruções Java abaixo: int cont1 = 3; int cont2 = 2; int cont3 = 1; cont1 += cont3++; cont1 -= --cont2; cont3 = cont2++; Após a
Leia maisUnidade 8: Padrão MVC e DAO Prof. Daniel Caetano
Programação Servidor para Sistemas Web 1 Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano Objetivo: Apresentar a teoria por trás dos padrões na construção de aplicações Web. INTRODUÇÃO Nas aulas anteriores
Leia maisResumo: Perguntas a fazer ao elaborar um projeto arquitetural
Resumo: Perguntas a fazer ao elaborar um projeto arquitetural Sobre entidades externas ao sistema Quais sistemas externos devem ser acessados? Como serão acessados? Há integração com o legado a ser feita?
Leia maisParte I. Demoiselle Mail
Parte I. Demoiselle Mail Para o envio e recebimento de e-s em aplicativos Java, a solução mais natural é usar a API JavaMail [http:// www.oracle.com/technetwork/java/java/index.html]. Ela provê um framework
Leia maisFrameworks - Grails. Aécio Costa
Aécio Costa Abstração que une códigos comuns entre vários projetos de software provendo uma funcionalidade genérica. Framework é um conjunto de classes que colaboram para realizar uma responsabilidade
Leia maisEngenharia de Software III
Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,
Leia maisManual Q-Acadêmico 2.0 Módulo Web - Aluno
Manual Q-Acadêmico 2.0 Módulo Web - Aluno Índice 1 Acessando o sistema via internet...3 2 Funcionalidades...6 2.1 Horário Individual...7 2.2 Calendário Acadêmico...8 2.3 Biblioteca...9 2.3.1 Consultar
Leia mais1. Introdução pág.3 2. Apresentação do sistema Joomla! pág.4 3. Acessando a administração do site pág.4 4. Artigos 4.1. Criando um Artigo 4.2.
1. Introdução pág.3 2. Apresentação do sistema Joomla! pág.4 3. Acessando a administração do site pág.4 4. Artigos 4.1. Criando um Artigo 4.2. Editando um Artigo 4.3. Excluindo um Artigo 4.4. Publicar
Leia maisDiferenças da versão 6.3 para a 6.4
Release Notes Diferenças da versão 6.3 para a 6.4 Melhorias Comuns ao Sistema Help O Help Online foi remodelado e agora é possível acessar os manuais de cada módulo diretamente do sistema. Mapeamento de
Leia maisCurso - Padrões de Projeto Módulo 5: Model-View- Controller
Curso - Padrões de Projeto Módulo 5: Model-View- Controller Vítor E. Silva Souza vitorsouza@gmail.com http://www.javablogs.com.br/page/engenho http://esjug.dev.java.net Sobre o Instrutor Formação: Java:
Leia maisCONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS
MINISTÉRIO DO DESENVOLVIMENTO AGRÁRIO SUBSECRETARIA DE PLANEJAMENTO, ORÇAMENTO E ADMINISTRAÇÃO COORDENAÇÃO-GERAL DE MODERNIZAÇÃO E INFORMÁTICA CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS MANUAL
Leia maisDesenvolvendo Websites com PHP
Desenvolvendo Websites com PHP Aprenda a criar Websites dinâmicos e interativos com PHP e bancos de dados Juliano Niederauer 19 Capítulo 1 O que é o PHP? O PHP é uma das linguagens mais utilizadas na Web.
Leia maisProgramação de Computadores - I. Profª Beatriz Profº Israel
Programação de Computadores - I Profª Beatriz Profº Israel Ambiente de Desenvolvimento Orientação a Objetos É uma técnica de desenvolvimento de softwares que consiste em representar os elementos do mundo
Leia maisTutorial Plone 4. Manutenção de Sites. Universidade Federal de São Carlos Departamento de Sistemas Web Todos os direitos reservados
Tutorial Plone 4 Manutenção de Sites Universidade Federal de São Carlos Departamento de Sistemas Web Todos os direitos reservados Sumário Introdução 1 Como fazer a autenticação do usuário 1.1 Através do
Leia maisDesenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA
Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA RESUMO Ricardo Della Libera Marzochi A introdução ao Service Component Architecture (SCA) diz respeito ao estudo dos principais fundamentos
Leia maisHIBERNATE EM APLICAÇÃO JAVA WEB
HIBERNATE EM APLICAÇÃO JAVA WEB Raul Victtor Barbosa Claudino¹, Ricardo Ribeiro Rufino¹ ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil victtor.claudino@gmail.com, ricardo@unipar.br Resumo: Este
Leia maisUM ESTUDO SOBRE ARQUITETURA PARA DESENVOLVIMENTO DE SOFTWARE WEB UTILIZANDO NOVAS TECNOLOGIAS
UM ESTUDO SOBRE ARQUITETURA PARA DESENVOLVIMENTO DE SOFTWARE WEB UTILIZANDO NOVAS TECNOLOGIAS Edi Carlos Siniciato ¹, William Magalhães¹ ¹ Universidade Paranaense (Unipar) Paranavaí PR Brasil edysiniciato@gmail.com,
Leia maisSISTEMA TYR DIAGRAMAS DE CLASSE E SEQUÊNCIA Empresa: Academia Universitária
SISTEMA TYR DIAGRAMAS DE CLASSE E SEQUÊNCIA Empresa: Academia Universitária Cascavel Novembro de 2009 Pedro Patitucci Finamore Daniel Bordignon Cassanelli Marco Antonio da Rosa DIAGRAMAS DE CLASSE E SEQUÊNCIA
Leia maisJSF e PrimeFaces. Professor: Ricardo Luis dos Santos IFSUL Campus Sapucaia do Sul
JSF e PrimeFaces Professor: Ricardo Luis dos Santos IFSUL 2015 Agenda Introdução Desenvolvimento Web Java Server Faces Exercício 2 Introdução Ao longo dos anos diversas linguagens de programação foram
Leia maisCURSO DESENVOLVEDOR JAVA Edição 2009
CURSO DESENVOLVEDOR JAVA Edição 2009 O curso foi especialmente planejado para os profissionais que desejam trabalhar com desenvolvimento de sistemas seguindo o paradigma Orientado a Objetos e com o uso
Leia maisDocumento de Análise e Projeto VideoSystem
Documento de Análise e Projeto VideoSystem Versão Data Versão Descrição Autor 20/10/2009 1.0 21/10/2009 1.0 05/11/2009 1.1 Definição inicial do documento de análise e projeto Revisão do documento
Leia maisTecnologias Web. Padrões de Projeto - Camada de Apresentação
Tecnologias Web Padrões de Projeto - Camada de Apresentação Cristiano Lehrer, M.Sc. Padrões da Camada de Apresentação (1/2) Intercepting Filter Viabiliza pré e pós processamento de requisições. Front Controller
Leia maisTUTORIAL SPRING SECURITY PROGRAMAÇÃO COM FRAMEWORKS Responsáveis: Ana Luíza Cruvinel, Maikon Franczak e Wendel Borges
Versão 1.0 TUTORIAL SPRING SECURITY PROGRAMAÇÃO COM FRAMEWORKS Responsáveis: Ana Luíza Cruvinel, Maikon Franczak e Wendel Borges Data: 01/12/2014 SUMÁRIO 1. INTRODUÇÃO... 2 2. O QUE É SPRING SECURITY?...
Leia maisJ2EE. Exemplo completo Utilização Servlet. Instrutor HEngholmJr
J2EE Exemplo completo Utilização Servlet Instrutor HEngholmJr Page 1 of 9 AT09 Exemplo complete Utilização Servlet Version 1.1 December 5, 2014 Indice 1. BASEADO NOS EXEMPLOS DE CÓDIGO DESTA APOSTILA,
Leia maisEXPRESSO LIVRE 3º Encontro Técnico de Desenvolvedores
EXPRESSO LIVRE 3º Encontro Técnico de Desenvolvedores Outubro 2008 Sumário de Informações do Documento Tipo do Documento: Ata Título do Documento: Expresso Livre 3º Encontro Técnico de Desenvolvedores
Leia maisTRANSMISSOR ECF. Sistema de transmissão de arquivos Nota Fiscal Paulista. Manual de Utilização
TRANSMISSOR ECF Sistema de transmissão de arquivos Nota Fiscal Paulista Manual de Utilização 1. Histórico de alterações Data Versão Alteração 04/12/2012 1 Criação do documento 28/02/2013 2 Revisão 2. Proposta
Leia maisApesar de existirem diversas implementações de MVC, em linhas gerais, o fluxo funciona geralmente da seguinte forma:
1 Introdução A utilização de frameworks como base para a construção de aplicativos tem sido adotada pelos desenvolvedores com três objetivos básicos. Primeiramente para adotar um padrão de projeto que
Leia maisCURSO DESENVOLVEDOR JAVA Edição Intensiva de Férias
CURSO DESENVOLVEDOR JAVA Edição Intensiva de Férias O curso foi especialmente planejado para os profissionais que desejam trabalhar com desenvolvimento de sistemas seguindo o paradigma Orientado a Objetos
Leia maisMANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento. Toledo PR. Versão 2.0 - Atualização 26/01/2009 Depto de TI - FASUL Página 1
MANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento Toledo PR Página 1 INDICE 1. O QUE É O SORE...3 2. COMO ACESSAR O SORE... 4 2.1. Obtendo um Usuário e Senha... 4 2.2. Acessando o SORE pelo
Leia maisAutor: Ricardo Francisco Minzé Júnior - ricardominze@yahoo.com.br Desenvolvendo aplicações em camadas com PHP 5.
Desenvolvendo aplicações em camadas com PHP 5. Talvez a primeira vista você ache estranha a palavra Camada em programação, mas o que vem a ser Camada? Segundo o dicionário: Camada 1 - Qualquer matéria
Leia maisEstudo Dirigido - Parte 1
Linguagem Java para Web - JSP Professora Lucélia Estudo Dirigido - Parte 1 Na primeira parte deste tutorial, vamos receber os dados de um formulário e verificar se os dados foram ou não preenchidos. Se
Leia mais2 a Lista de Exercícios
Projeto de Sistemas 2011/2 2 a Lista de Exercícios (1) Um importante aspecto do projeto da camada de Lógica de Negócio (LN) diz respeito à organização das classes e distribuição de responsabilidades entre
Leia maisCURSO DESENVOLVEDOR JAVA Edição 2010
CURSO DESENVOLVEDOR JAVA Edição 2010 O curso foi especialmente planejado para os profissionais que desejam trabalhar com desenvolvimento de sistemas seguindo o paradigma Orientado a Objetos e com o uso
Leia maisManual de Utilização do Zimbra
Manual de Utilização do Zimbra Compatível com os principais navegadores web (Firefox, Chrome e Internet Explorer) o Zimbra Webmail é uma suíte completa de ferramentas para gerir e-mails, calendário, tarefas
Leia maisManual Captura S_Line
Sumário 1. Introdução... 2 2. Configuração Inicial... 2 2.1. Requisitos... 2 2.2. Downloads... 2 2.3. Instalação/Abrir... 3 3. Sistema... 4 3.1. Abrir Usuário... 4 3.2. Nova Senha... 4 3.3. Propriedades
Leia maisFerramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl
Ferramenta de apoio a gerência de configuração de software Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl Roteiro de apresentação Introdução Objetivos Fundamentação Teórica Gerência de Configuração
Leia maisManual do Visualizador NF e KEY BEST
Manual do Visualizador NF e KEY BEST Versão 1.0 Maio/2011 INDICE SOBRE O VISUALIZADOR...................................................... 02 RISCOS POSSÍVEIS PARA O EMITENTE DA NOTA FISCAL ELETRÔNICA.................
Leia maisTECNOLOGIAS E FRAMEWORKS PARA O DESENVOLMENTO DE INTERFACES WEB
TECNOLOGIAS E FRAMEWORKS PARA O DESENVOLMENTO DE INTERFACES WEB Marcelo Rodrigo da Silva Ribeiro 1, Ricardo Ribeiro Rufino 1 1 Universidade Paranaense (Unipar) Paranavaí PR Brasil marcelo.rodrigo@live.com,
Leia maisPadrão Arquitetura em Camadas
Padrão Arquitetura em Camadas Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Definição Estimula a organização
Leia maisScriptlets e Formulários
2 Scriptlets e Formulários Prof. Autor: Daniel Morais dos Reis e-tec Brasil Programação Avançada Para Web Página1 Meta Permitir ao aluno aprender a criar um novo projeto Java para web no Netbeans IDE,
Leia maisCursos de Magento. 2013 Gugliotti Consulting
Cursos de Magento F U N D A M E N T O S D E M A G E N T O C O M M E R C E C U R S O E M V Í D E O - A U L A S M Ó D U L O 2 F T O 2 Fundamentos de Magento Commerce Módulo 2 Aula 1 Configuração da plataforma
Leia mais!" # # # $ %!" " & ' ( 2
!"# # #$ %!" "& ' ( 2 ) *+, - 3 . / 4 !" 0( # "!#. %! $""! # " #.- $ 111.&( ( 5 # # 0. " % * $(, 2 % $.& " 6 # #$ %% Modelo (Encapsula o estado da aplicação) Implementado como JavaBeans Responde a consulta
Leia mais