Grails e as novidades

Tamanho: px
Começar a partir da página:

Download "Grails 2.1.0 e as novidades"

Transcrição

1 _capa Grails e as novidades Novidades na versão Neste artigo vamos aprender e conhecer sobre o framework Grails. Vamos desenvolver uma aplicação para web de forma ágil, aprender sobre as convenções e as novidades introduzidas a partir da versão 2.0, e entender como funciona os plugins que facilitam muito a inclusão de novas funcionalidades e muito mais. Carlos Eduardo Zanco Batistão twitter.com/cezbatistao é bacharel em Análise de Sistemas pela PUC-Campinas/SP e pós-graduado em Desenvolvimento de Software para Web pela UFSCar/SP, trabalha com desenvolvimento web com Java há mais de 9 anos e atualmente trabalha como arquiteto e líder técnico utilizando Grails e Java, possui a certificação SCJP 5.0. Grails é um framework/plataforma open source para desenvolvimento de aplicações web através da linguagem de programação Groovy (uma linguagem de programação dinâmica orientada a objetos desenvolvida para a plataforma Java) que utiliza o paradigma de coding by convention, que essencialmente significa que o desenvolvedor precisa definir apenas aspectos não convencionais da aplicação, e o principal objetivo do Grails é ser um framework de alta produtividade para a plataforma Java, para isso ele utiliza tecnologias consagradas e consideradas maduras no mundo Java, tais como Hibernate, Spring e Tomcat. Grails isola do desenvolvedor detalhes complexos de configurações, persistência de dados e camada de apresentação. Foi inicialmente chamado de Groovy on Rails até ser renomeado para Grails, após um pedido do fundador do projeto Ruby on Rails, David Heinemeier Hansson. A versão 2.0 foi 21 \

2 lançada no dia 15/12/2011, contando várias novidades e mudanças, e recentemente foi lançada a versão Pelo roadmap do site oficial está programado três grandes realeases, sendo que dois foram no ano de 2012 e a versão 3.0 do framework prometida para 2013 (http://grails.org/roadmap). Instalando ao Grails Primeiramente devemos ter o JDK instalado, a partir da versão 2.0 será necessária a versão 1.6 do java. Certifique-se de que a variável de ambiente JAVA_HOME está corretamente configurada. Depois vamos baixar à versão mais atual do Grails no site oficial do framework (http://grails.org/download). No momento em que escrevo este artigo a versão mais atual é a Depois de baixar descompacte em uma pasta de sua preferência. No meu caso eu coloquei em /usu/dev/grails e configurei a variável de ambiente GRAiLS_HOME. Além disso, adicionei na variável de ambiente PATH. Para validarmos a instalação basta executar o seguinte comando no prompt. grails -version E devemos ter o resultado parecido conforme a figura 1. Figura 1. Prompt mostrando a versão do Grails instalada. Colocando a mão na massa Agora vamos começar realmente o que interessa. Vamos desenvolver uma aplicação Grails para manter dados de contato telefônico, a aplicação é bem simples, mas o objetivo é mostrar o quanto é rápido o desenvolvimento de uma aplicação web e mostrar principalmente as facilidades que o Grails proporciona. Para começarmos, primeiro precisamos criar o projeto, para isso no seu diretório de workspace basta executar o seguinte comando: grails create-app AgendaGrails Quando executar o comando você terá a confirmação da criação da nossa aplicação. Depois de criado o projeto AgendaGrails vamos configurar ele para abrir na ide. No meu caso estou utilizando o intellij, mas o projeto pode ser importado nas principais ides existentes. Com isso podemos observar pela figura 2 a estrutura de diretório que o Grails define. Agora vamos entender o que cada pasta nos oferece. grails-app: contém o que realmente interessa, ou seja, a sua aplicação. 99% das classes que você venha a criar para a mesma deverão estar contidas em um dos subdiretórios presentes nesta entrada. grails-app/conf: armazena arquivos de configuração da sua aplicação, como, por exemplo, acesso a banco de dados e a configuração do Spring ou Hibernate. grails-app/controllers: todas as suas classes de controle serão incluídas neste diretório. grails-app/domain: as classes de domínio de sua aplicação (aquelas que serão persistidas no banco de dados e contém sua lógica de negócio). grails-app/i18n: recursos de internacionalização para a sua aplicação. grails-app/services: armazena os serviços de sua aplicação. O que vem a ser um serviço? Podemos utilizar um serviço para encapsularmos a lógica de negócio quando ela não se aplica a nenhum dos nossos domínios e (por favor, não as inclua (nem um pedacinho!) nos controladores). As classes de serviço são gerenciadas pelo Spring. grails-app/taglib: armazena todas as tags customizadas criadas usando o Grails (mais sobre isto em um post futuro, onde você ficará boquiaberto com a facilidade que Grails nos traz nesta tarefa). grails-app/utils: neste diretório serão armazenadas classes utilitárias para sua aplicação, como, por exemplo, codecs de strings e classes utilizadas por alguns plugins oferecidos para o Grails. grails-app/views: contém todos os arquivos GSP responsáveis por renderizar as páginas utilizadas pela sua aplicação. Cada classe de domínio possui um diretório equivalente dentro deste diretório. Suponha, por exemplo, que exista uma classe de domínio chamada Livro. Seguindo as convenções do Grails, deverá existir também (caso esta classe venha a necessitar de uma camada de visualização) um diretório chamado grails-app/views/livro. lib: neste diretório deverão ser incluídos todos os arquivos.jar referentes a bibliotecas terceirizadas que você queira utilizar, como, por exemplo, drivers JDBC, bibliotecas para geração de PDF e, principalmente, seu código legado, caso seja necessário reaproveitá-lo. scripts: caso seja necessária a criação de novos scripts para facilitar o desenvolvimento da sua aplicação, os mesmos deverão ser incluídos neste diretório. Todos os scripts usados pelo Grails são desenvolvidos usando GANT (Groovy Ant), que consiste em uma camada de abstração para o Ant feita em Groovy. src: no diretório src você pode armazenar código-fonte a ser reaproveitado por sua aplicação. / 22

3 Normalmente, consiste em código-fonte legado que não se encaixa facilmente na estrutura de diretórios propostos pelo Grails. Dentro deste diretório há dois outros: groovy e java, onde é possível armazenar código-fonte das duas linguagens. test: armazena todos os seus testes unitários, funcionais e de integração. web-app: o conteúdo estático de sua aplicação, como, por exemplo, arquivos html, imagens, css etc. Com isso podemos acessar a url indicada no prompt, no caso basta coloca-lá no seu browser favorito e podemos verificar como está a nossa aplicação, conforme a figura 3. Agora com isso vamos criar nosso primeiro domínio, que será a entidade Contato. Ao criar classes de domínio no Grails utilizamos o GORM (Grails Object Relational Mapping) sem precisarmos utilizar arquivos de configurações ou anotações nas nossas entidade de domínio. Para isso dentro da pasta do projeto, $WORKSPACE/AgendaGrails, basta executar o seguinte comando. grails create-domain-class br.com.mundoj. Contato Depois de receber a confirmação de que o domínio foi criado podemos verificar como ele ficou conforme a Listagem 1. Listagem 1. Código gerado pelo Grails na criação de um Domain. class Contato { Figura 2. Estrutura de diretórios do Grails. Agora vamos rodar a aplicação! isso mesmo apenas com o projeto criado já podemos subir a aplicação. Toda a configuração de infraestrutura da aplicação já vêm pronta para subir e gravar registros no banco de dados. Para isso agora execute o seguinte comando dentro da pasta do projeto: grails run-app Com isso veremos uma mensagem com a url para acessarmos a aplicação. Até agora ainda não tivemos que fazer nenhuma programação. Vamos fazer isso dentro do nosso domínio. Primeiramente vamos adicionar os campos que precisamos para manter um contato, vamos alterar conforme a Listagem 2, podemos notar que não foram implementados os métodos getters e setters na classe de domínio, isso não é preciso pelo fato da linguagem Groovy os adicionar dina micamente, mas caso precisemos modificar os métodos getters e setters, apenas criamos os métodos conforme a notação de JavaBeans que o Groovy começa a chamar automaticamente os métodos criados! Listagem 2. Adicionando atributos na classe Contato e implementação de constraints. class Contato { String primeironome String sobrenome String endereco Figura 3. Página inicial da aplicação AgendaGrails. 23 \

4 String complemento String bairro String cep primeironome nullable: false, blank: false sobrenome nullable: false, blank: false endereco nullable: false, blank: false complemento nullable: true bairro nullable: false, blank: false cep nullable: false Conforme a Listagem 2, a closure constraints serve para colocarmos nossas validações nos parâmetros definidos no domínio, podemos fazer vários tipos de validações que já existem no Grails. Na parte de referências está a url para verificar as constraints já existentes e também como criar a sua própria constraint. Agora vamos criar nosso próximo domínio onde vamos armazenar os números dos contatos. Para criarmos vamos utilizar um novo recurso adicionado no grails 2.0 e que está presente no grails 2.1. No prompt dentro da pasta do projeto, $WORKSPACE/ AgendaGrails, vamos executar apenas o comando grails, com isso será executado o console comand do Grails, que conta com o recurso de autocomple de comandos, conforme podemos ver na figura 4. Depois de escrever o comando create- e apertar a tecla TAB é exibido todos os comandos existentes no Grails que comecem com create- Depois executamos o comando para criar o domain class Telefone: Listagem 3. Classe Telefone depois de alterada, incluindo os parâmetros. class Telefone { String numero TipoTelefone tipo numero nullable: false, blank: false tipo nullable: false, blank: false Listagem 4. Enum TipoTelefone. public enum TipoTelefone { RESIDENCIAL, COMERCIAL, CELULAR Para fecharmos os nossos domínios precisamos apenas criar o relacionamento entre eles. Conforme a Listagem 5 que altera o domínio Contato e a Listagem 6 que altera o domínio Telefone. Listagem 5. Classe Contato com o parâmetro para hasmany para o relacionamento um-para-muitos. Figura 4. Console comand do grails com autocomplete. grails create-domain-class br.com.mundoj.contato Depois vamos alterar o nosso domínio conforme Listagem 3. Podemos notar que criamos um enum com o nome TipoTelefone, podemos verificar nosso enum na Listagem 5. Nosso enum é para identificarmos o tipo do telefone. Todo tipo de objeto que não será persistido no banco de dados deve ser criado fora da pasta domain do Grails. Então vamos criar o nosso enum dentro do diretório src/groovy, conforme Listagem 4. class Contato { String primeironome String sobrenome String endereco String complemento String bairro String cep static hasmany = [telefones: Telefone] static mapping ={ telefones cascade: all,delete-orphan primeironome nullable: false, blank: false sobrenome nullable: false, blank: false endereco nullable: false, blank: false complemento nullable: true bairro nullable: false, blank: false cep nullable: false / 24

5 Listagem 6. Classe Telefone com o parâmetro belongsto para o relacionamento um-para-muitos. class Telefone { String numero TipoTelefone tipo static belongsto = [contato: Contato] numero nullable: false, blank: false tipo nullable: false, blank: false No domínio Contato adicionamos um novo atributo, estático, com o nome hasmany sendo um atributo do tipo Map onde a key será o nome da lista de muitos no relacionamento e o value é o tipo do atributo do relacionamento definido, neste caso [telefones: Telefone].Com isso, teremos um atributo List que terá o nome telefones e o tipo será da classe Telefone. Podemos notar que a notação de Map do Groovy que a linguagem proporciona muita produtividade. Podemos notar também o atributo static mapping na classe Contato, nela podemos colocar propriedades de mapeamento do hibernate, no nosso caso dizemos que o relacionamento com telefones foi configurado à propriedade cascade para all e delete-orphan para inclusão, alteração e remoção automática do nosso domínio Contato. Para mais detalhes nas referências está a url sobre mapeamento e com as principais propridades que podem ser configuradas. Já na classe Telefone colocamos um novo atributo, também estático, com o nome belongsto que é a mesma lógica que o hasmany, mas sendo o relacionamento um, com isso no Map [contato: Contato] é criado um atributo com o nome contato da classe Contato. Agora vamos configurar nosso controle de versionamento do nosso banco de dados. Primeiramente vamos alterar o arquivo Datasource.groovy para utilizarmos o banco de dados MySQL 5.5. Vamos alterar a configuração de acesso ao banco de dados conforme a Listagem 7. Listagem 7. Alteração do arquivo DataSource.groovy para conexão com banco de dados MySQL. datasource { driverclassname = com.mysql.jdbc.driver username = grails password = url = jdbc:mysql://localhost:3306/agenda Agora vamos adicionar a dependência do driver de banco de dados MySQL para podermos conectarmos no banco. Para isso vamos abrir o arquivo BuildConfig.groovy e dentro da clousure dependencies vamos adicionar o seguinte trecho de código: runtime mysql:mysql-connector-java: Este arquivo é uma DSL para definirmos as dependências de bibliotecas e também de plugins. Estas configurações ficam definidas na clousure plugins do mesmo arquivo. Podemos ver que alguns plugins já vêm instalados por default, como, por exemplo, Hibernate, JQuery, Resources, Tomcat, Database-Migrations e Cache. Para gerarmos os arquivos de changelog, arquivos que contêm as alterações do banco de dados, primeiramente temos que executar o seguinte comando dentro da pasta do projeto, $WORKSPACE/Agenda- Grails. grails dbm-create-changelog Com isso, geramos o arquivo changelog.groovy que irá armazenar a sequência de scripts de criação e alterações do banco de dados da aplicação, depois disso podemos executar o comando: grails prod dbm-generate-gorm-changelog --add changelog-1.0.groovy Agora teremos as criações das tabelas Contato e Telefone. Podemos ver conforme a figura 5 que mostra o prompt depois de executar o comando e a pasta que foi criada dentro da nossa aplicação (grailsapp/migrations) onde será armazenado os arquivos de alteração de banco de dados. Figura 5. Comando para geração do database-migrations da aplicação e a visualização na pasta grails-app/migrations dos arquivos gerados. Podemos verificar a Listagem 8 com o código do arquivo changelog.groovy, que armazena a sequência em que serão gerados os changelogs das tabelas da aplicação e no arquivo changelog-1.0.groovy podemos verificar as alterações que serão realizadas ao arquivo ser aplicado pelo migrations. Listagem 8. Arquivo changelog.groovy com a sequência de arquivos migrations que será executado. 25 \

6 databasechangelog = { changeset(author: cezbatistao (generated), id: changelog ) { // TODO add changes and preconditions here include file: changelog-1.0.groovy Para nossa aplicação utilizar o migrations e criar nossos objetos do banco de dados, definidos nos arquivos de changelog, devemos alterar no arquivo de configuração do grails, o Config.groovy que se encontra na pasta grails-app/conf. Para isso basta adicionar o trecho da Listagem 9 no arquivo Config.groovy. Listagem 9. Configuração para toda vez que subir a aplicação seja atualizado o changelog das tabelas, caso seja necessário. grails.plugin.databasemigration.updateonstart = true grails.plugin.databasemigration.updateonstartfilenames = [ changelog.groovy ] Agora vamos demonstrar como o migrations atualiza o changelog para adicionar um novo domain. Para isso vamos criar o domínio Cidade e vamos fazer um relacionamento unidirecional com o domínio Contato. Para isso vamos executar o seguinte comando: grails create-domain-class br.com.mundoj.cidade E depois vamos alterar o domínio Cidade conforme Listagem 10. Listagem 10. Alteração do domain Cidade com os atributos e constraints. class Cidade { String nome nome nullable: false, blank: false Agora vamos alterar nosso domínio Contato incluindo o relacionamento unidirecional com o domínio Cidade. Para isso vamos adicionar no domínio Contato o seguinte trecho de código. static belongsto = [cidade: Cidade] Adicionamos apenas o belongsto para termos um relacionamento um-para-um. Agora vamos executar o comando para atualizamos o changelog: grails dbm-generate-gorm-changelog --add criacao_ tabela_cidade_relacionamentos.groovy Com isso será criado o arquivo criacao_tabela_ cidade_relacionamentos.groovy com as instruções de criação da nova tabela Cidade e o relacionamento com a tabela Contato. Agora vamos realizar os testes para garantir nossos relacionamentos, validações e também a exibição das informações dos nossos domínios. Vamos abrir a classe ContatoTests.groovy e vamos implementar nosso primeiro teste, conforme Listagem 11. Listagem 11. Código com a implementação do teste para o método tostring. import class ContatoTests { void testtostring() { def contato = new Contato(primeiroNome: Carlos E Z, sobrenome: Batistão ) assertequals Batistão, Carlos E Z, contato.tostring() Podemos verificar que estamos esperando uma situação ao chamarmos o método tostring do nosso domínio Contato, ao executarmos o seguinte teste com o comando dentro da pasta do projeto, $WORKSPACE/ AgendaGrails: grails test-app br.com.mundoj.contatotests Como não implementamos ainda o método tostring do domínio Contato, vamos receber uma mensagem de erro parecida com a figura 6. Podemos verificar também um relatório gerado pelo Grails com mais detalhes, para isso basta abrir o arquivo index. html que se encontra na pasta $WORKSPACE/ AgendaGrails/target/test-reports/html/. Agora no domínio Contato vamos adicionar o seguinte trecho de código: public String tostring() { $sobrenome, $primeironome Depois podemos executar novamente o teste e verificar que ele irá passar. Este é um teste unitário. No grails existem dois tipos de teste, unit e integration, eles ficam dentro da pasta test. Para executarmos todos os testes da aplicação basta executar o comando. / 26

7 grails test-app minified de javascript. Para saber mais sobre o plugin Resource, veja a parte de referências do artigo. Podemos notar que o arquivo de resource da nossa aplicação, ApplicationResources.groovy, foi alterado conforme Listagem 12. Listagem 12. Arquivo ApplicationResources.groovy com a configuração dos módulos de JavaScript. Figura 6. Imagem com o teste falhando. Camada de apresentação O Grails é um framework MVC também, o que significa que tem modelos, visualizações e controles para separar as responsabilidades. Os controllers podem facilmente ordenar os requests, entregar respostas, e delegá-las para visualizações que são as views. Views são as páginas, nossa camada de apresentação, no grails utilizamos arquivos com extensão GSP(- Groovy Server Page) que são semelhantes aos JSP(Java Server Page), contendo as taglibs para manipularmos os nossos objetos nos GSPs. Agora vamos para uma das grandes vantagens do Grails, o Scaffolding, graças a um comando toda a camada de apresentação é gerada, isto inclui tanto os Controllers quanto as Views, para isso basta executar o seguinte comando dentro da pasta do projeto, $WOR- KSPACE/AgendaGrails: grails generate-all br.com.mundoj.agenda.cidade E dentro da pasta grails-app/controllers será criada a classe CidadeController, e no diretório grailsapp/views é criada uma pasta com o nome do domain, no nosso será cidade e dentro dela 4 GSPs que são de create(criação), edit(edição), list(lista) e show(detalhe) do domain Cidade. Vamos também executar o comando: grails generate-all br.com.mundoj.agenda.contato Para geramos a camada de apresentação do domínio Contato, não será preciso gerar a camada de apresentação do domínio Telefone, pois ele será incluído através do próprio domínio Contato. Não vou entrar no mérito do desenvolvimento das pá ==ginas e nem nos plugins utilizados. Existem as referências no final do artigo, mas vou enfatizar apenas algumas alterações que foram adicionadas no Grails a partir da versão 2.0. Primeiramente foi que o JQuery é o plugin default de biblioteca JavaScript e o Resource plugin vêm instalado por default, este último com a possibilidade de criar módulos de JavaScripts, agrupamento de módulos JS e também a modules = { application { resource url: js/application.js editable { resource url: js/jquery.editable js meiomask { resource url: js/jquery.meio.mask.js Utilizamos aqui dois plugins do jquery, um para adicionar a funcionalidade de editable e outro para adicionar máscara nos campos. Aqui foram criados testes dos controllers para garantir os comportamentos, não irei mencionar aqui, mas deixarei como tarefa de casa o leitor verificar os testes que foram criados. Existem comentários que ajudam na explicação e finalidade nos testes. DBConsole Como último recurso que vamos abordar aqui é a adição de um Console para Banco de Dados. Para acessarmos esta funcionalidade, temos que subir a aplicação, utilizando o comando: grails run-app E acessar a seguinte url: AgendaGrails/dbconsole e com isso veremos a seguinte tela, conforme figura 7. Figura 7. Tela para se conectar no banco da aplicação. Aqui informamos os dados para se conectar no banco de dados da aplicação. Caso você tenha alguma dificuldade dos valores para serem preenchidos bas- 27 \

8 ta abrir o arquivo DataSource.groovy que lá contém todos os dados para preencher os campos desta tela. Ao se conectar no banco será algo parecido com a figura 8.Podemos ver que ele também conta com o recurso de autocomplete dos nomes das tabelas e dos campos das tabelas. Figura 8. Tela com as tabela da aplicação e o autocomplete ao preencher as queries. E por último, na figura 9, podemos ver como os resultados do select são exibidos. que já interessa: na linha 20, conforme trecho da Listagem 13. Listagem 13. Trecho de código exemplificando a nova clousure where para executarmos query no Grails. def query = Contato.where { primeironome =~ paramprimeironome?.tolowercase() && telefones.size() >= numerostelefones && cidade.id in cidades def results = query.list() if (results) { results = results.sort{it.id Podemos verificar que estamos chamando uma clousure where do nosso domain Contato, esta é uma nova forma de escrevermos queries no Grails a partir da versão 2.0, com ela fica muito mais fácil e fluente a escrita da query, como podemos observar na Listagem 13. Dentro da pasta grails-app/views/relatorio estão as views que foram criadas para gerar o relatório. Podemos verificar na figura 10 como ficou a funcionalidade do Relatório. Foram feitas também algumas alterações no CSS da aplicação, para isso foi alterada a classe de estilo main.css dentro da pasta $WORKS- PACE/AgendaGrails/web-app/css. Figura 9. Tela o select executado. Finalizando o exemplo Por último vamos criar um relatório simples, mas vamos mostrar uma nova maneira de se fazer uma query no Grails e também como instalar um plugin. Para isso vamos ter que criar um Controller, aqui vamos ter que criar ele, pois não vamos ter um domain relatório e com isso vamos ter que criar tanto o nosso Controller quanto as nossas Views. Para criar um controller basta executar o seguinte comando dentro da pasta do projeto, $WORKSPACE/AgendaGrails: grails create-controller br.com.mundoj.agenda.relatorio Não precisamos informar o sufixo na nossa classe, neste caso a palavra Controller, pois o próprio Grails fará isso para nós, com isso foi gerada a classe RelatorioController.groovy, aqui vamos ao ponto Figura 10. Tela inicial da funcionalidade de relatório. Para construirmos a tela de detalhe do Relatório foi necessária a instalação de um plugin, neste caso foi utilizado o ModalBox plugin. Com os plugins podemos adicionar novas funcionalidades à nossa aplicação sem muito esforço. Para mais detalhes nas referências está a url para entender mais sobre plugins e sobre o ModalBox plugin.para instalar o plugin é simples, basta executar o seguinte comando dentro da pasta do projeto, $WORKSPACE/AgendaGrails: grails install-plugin modalbox / 28

9 Após executar o comando veremos a confirmação de instalação realizada com sucesso. Podemos verificar no gsp report.gsp que se encontra na pasta $WORKSPACE/AgendaGrails/grails-app/views/relatorio/ como utilizar o plugin modalbox. O trecho de código da Listagem 14 como foi utilizado o plugin. Listagem 14. Trecho de código GSP com a chamada ao plugin modalbox. <modalbox:modalincludes /> <modalbox:createlink controller= Relatorio action= detail id= ${contatoinstance.id title= Detalhe width= 500 > ${fieldvalue(bean: contatoinstance, field: primeironome ) </modalbox:createlink> Primeiro importamos o plugin modalbox com a diretiva <modalbox:modalincludes /> isso fazemos logo depois da tag <body> da página report.gsp, e no link do detalhe do contato adicionamos o código para abrir o modal. Por último alteramos a classe BootStrap.groovy. O papel desta classe no Grails é para podermos incluir alguns dados no sistema e quando subirmos ele as tabelas do nosso domain já terão dados. Você pode verificar na classe BootStrap.groovy que adicionei Cidades e Contatos para podemos navegar pelas telas da aplicação, para isso basta subir a aplicação, executando o comando run-app e vamos navegar entre as páginas da nossa aplicação. Considerações Finais Podemos notar que o framework realmente agiliza o desenvolvimento de uma aplicação para web. O paradigma de programação por convenção tira muito do trabalho de configuração do desenvolvedor, fazendo com que ele realmente foque nas regras de negócios. Como fazermos um mapeamento ORM com o GORM é bem mais simples e fácil. A geração de páginas simples e com pouca alteração de css nos traz muita produtividade. Seu grande suporte de plugin vem crescendo e hoje podemos contar com uma comunidade brasileira que pode nos ajudar com dúvidas e boas práticas (http://www.grailsbrasil.com.br/) Vale a pena verificar mais a fundo a tecnologia, pois por se tratar de rodar em cima da plataforma Java trata-se de um promissor framework para os desenvolvedores. /referências > grails.org (http://grails.org/) > The Grails Framework - Reference Documentation (http://grails.org/doc/2.1.0/) > Constrains existentes no Grails (http://grails.org/ doc/2.0.x/ref/domain%20classes/constraints.html) > Como criar sua própria constraint (http://blog.swwomm. com/2011/02/custom-grails-constraints.html) > Mais detalhes sobre o GORM (Grails ORM) (http://grails. org/doc/2.1.0/guide/gorm.html) > Mais detalhes sobe a nova closure de buscas (http:// grails.org/doc/2,1,0/ref/domain%20classes/where.html) > Como criar detached criterias no Grails (http://grails.org/ doc/2.1.0/guide/single.html#detachedcriteria) > Entendendo como funciona o sistema de plugins do Grails (http://grails.org/doc/2.1.0/guide/plugins.html#12.3 Understanding a Plug-ins Structure) > Sobre o plugin Resources (http://grails.org/plugin/ resources) > Mais sobre o plugin ModalBox (http://grails.org/ ModalBox+Plugin) > grailsbrasil.com.br (http://grailsbrasil.com.br/). > dev/kico (http://www.itexto.net/devkico/) > jquery (http://jquery.com/) > jquery Editable Plugin (http://www.arashkarimzadeh. com/jquery/7-editable-jquery-plugin.html) > jquery Plugin meiomask (http://www.meiocodigo.com/ projects/meiomask/) > Grails Database Migration Plugin (http://grails.org/ plugin/database-migration/) > Grails Resources Plugin (http://grails.org/plugin/ resources) > Livro Grails in Action 29 \

Breve introdução. Uma breve introdução. Simplicidade e Poder. Rápido Dinâmico Robusto

Breve introdução. Uma breve introdução. Simplicidade e Poder. Rápido Dinâmico Robusto Breve introdução Uma breve introdução Rápido Dinâmico Robusto Simplicidade e Poder Linguagem dinâmica Arquitetura Mapeamento Objeto Relacional Convenção DRY YAGNI KISS Groovy MVC Hibernate Sobre configuração

Leia mais

Frameworks - Grails. Aécio Costa

Frameworks - 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 mais

Produtividade na web com Groovy e Grails

Produtividade na web com Groovy e Grails Produtividade na web com Groovy e Grails Quem somos? Lucas Aquiles / @lucas_aquiles ADS / IFPI lucasaquiles@gmail.com lucasaquiles.com.br/blog Fco Marcos / @fcomarcosrocha ADS / IFPI Colaborador LAPESI

Leia mais

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

DOCUMENTAÇÃ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 mais

Desenvolvendo Aplicações Web com NetBeans

Desenvolvendo Aplicações Web com NetBeans Desenvolvendo Aplicações Web com NetBeans Aula 3 Cap. 4 Trabalhando com Banco de Dados Prof.: Marcelo Ferreira Ortega Introdução O trabalho com banco de dados utilizando o NetBeans se desenvolveu ao longo

Leia mais

DESENVOLVIMENTO DE SISTEMAS COM GRAILS + IREPORT

DESENVOLVIMENTO DE SISTEMAS COM GRAILS + IREPORT DESENVOLVIMENTO DE SISTEMAS COM GRAILS + IREPORT Prof. Marcos Vinicius Fidelis Universidade Tecnológica Federal do Paraná Campus Ponta Grossa Universidade Estadual de Ponta Grossa ROTEIRO O Legado Vitórias

Leia mais

BANCO DE DADOS E UMA APLICAÇÃO WEB

BANCO DE DADOS E UMA APLICAÇÃO WEB Universidade Estadual de Maringá BANCO DE DADOS E UMA APLICAÇÃO WEB Alex Moreira Lima - http://din.uem.br/~ra59602 Eduardo Sutil - http://din.uem.br/~ra58703 Henrique Vigando- http://din.uem.br/~ra55761

Leia mais

DWR DIRECTED WEB REMOTING

DWR DIRECTED WEB REMOTING DWR DIRECTED WEB REMOTING Vamos ver nesse artigo um pouco sobre o Frameworks Ajax para Java, o DWR. Vamos ver seus conceitos, utilidades, vantagens, algumas práticas e fazer o passo a passo para baixar,

Leia mais

PHP Profissional. Alexandre Altair de Melo / Mauricio G. F. Nascimento. Editora Novatec

PHP Profissional. Alexandre Altair de Melo / Mauricio G. F. Nascimento. Editora Novatec Introdução Como a idéia deste livro é ir direto ao ponto, vou fazer isso já na introdução. A idéia desse livro não é explicar a teoria e filosofia do PHP, da orientação a objetos, as maravilhas dos design

Leia mais

DESENVOLVIMENTO EM GRAILS COM ABORDAGEM MAPEAMENTO OBJETO RELACIONAL

DESENVOLVIMENTO EM GRAILS COM ABORDAGEM MAPEAMENTO OBJETO RELACIONAL DESENVOLVIMENTO EM GRAILS COM ABORDAGEM MAPEAMENTO OBJETO RELACIONAL Emerson Brito do Nascimento RESUMO: Este trabalho apresenta a desenvolvimento de uma aplicação real de um instituição de ensino superior

Leia mais

PROJETO PEDAGÓGICO DE CURSOS

PROJETO PEDAGÓGICO DE CURSOS 1 de 6 PROJETO PEDAGÓGICO DE CURSOS BURITREINAMENTOS MANAUS-AM NOVEMBRO / 2014 2 de 6 PACOTES DE TREINAMENTOS BURITECH A Buritech desenvolveu um grupo de pacotes de treinamentos, aqui chamados de BuriPacks,

Leia mais

Google Web Toolkit* Clério Damasceno Soares, Daniel da Silva Filgueiras e Fábio Figueiredo da Silva

Google Web Toolkit* Clério Damasceno Soares, Daniel da Silva Filgueiras e Fábio Figueiredo da Silva Google Web Toolkit* Clério Damasceno Soares, Daniel da Silva Filgueiras e Fábio Figueiredo da Silva Universidade Federal de Juiz de Fora UFJF-MG Campo Universitário Bairro Marmelos Juiz de Fora MG Brasil

Leia mais

Desenvolva rapidamente utilizando o frame work CakePHP. Elton Luí s Minetto

Desenvolva rapidamente utilizando o frame work CakePHP. Elton Luí s Minetto Desenvolva rapidamente utilizando o frame work CakePHP Elton Luí s Minetto Agenda Ambiente Web PHP Problemas Frameworks CakePHP Demonstração Ambiente Web É o ambiente formado por algumas tecnologias: Servidor

Leia mais

Este livro é dedicado a minha esposa Edna e a todos os desenvolvedores que fizeram do software livre um meio profissional levado a sério.

Este livro é dedicado a minha esposa Edna e a todos os desenvolvedores que fizeram do software livre um meio profissional levado a sério. EDSON GONÇALVES Este livro é dedicado a minha esposa Edna e a todos os desenvolvedores que fizeram do software livre um meio profissional levado a sério. AGRADECIMENTOS Primeiramente gostaria de agradecer

Leia mais

Aula 9: Fundamentos do JQuery Fonte: Plano de Aula Oficial da Disciplina

Aula 9: Fundamentos do JQuery Fonte: Plano de Aula Oficial da Disciplina Programação para Internet Rica 1 Aula 9: Fundamentos do JQuery Fonte: Plano de Aula Oficial da Disciplina Objetivo: Capacitar o aluno para o trabalho com o framework JQuery. INTRODUÇÃO JQuery é uma biblioteca

Leia mais

Aula 03 - Projeto Java Web

Aula 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 mais

Persistê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 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 mais

ASP.NET 2.0 - Visual Studio 2005 (Whidbey) Ramon Durães

ASP.NET 2.0 - Visual Studio 2005 (Whidbey) Ramon Durães ASP.NET 2.0 - Visual Studio 2005 (Whidbey) Ramon Durães O ASP.NET que é a camada de desenvolvimento de aplicações web da plataforma.net vem agradando em muito os desenvolvedores de todo o mundo desde o

Leia mais

Associação Carioca de Ensino Superior Centro Universitário Carioca

Associação Carioca de Ensino Superior Centro Universitário Carioca Desenvolvimento de Aplicações Web Lista de Exercícios Métodos HTTP 1. No tocante ao protocolo de transferência de hipertexto (HTTP), esse protocolo da categoria "solicitação e resposta" possui três métodos

Leia mais

Persistência de Classes em Tabelas de Banco de Dados

Persistência de Classes em Tabelas de Banco de Dados UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ). 1 Persistência de Classes em Tabelas de Banco de Dados 1) Introdução! Em algumas situações, pode ser necessário preservar os objetos

Leia mais

1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF)

1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF) Sessão Prática II JPA entities e unidades de persistência 1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF) a) Criar um Web Application (JPAsecond) como anteriormente:

Leia mais

CURSO DESENVOLVEDOR JAVA Edição 2009

CURSO 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 mais

Grails. C ada vez mais aplicações corporativas são desenvolvidas ou migradas para a plataforma web.

Grails. C ada vez mais aplicações corporativas são desenvolvidas ou migradas para a plataforma web. a r t i g o Grails Um Caso de Sucesso Agilidade em uma empresa de desenvolvimento para Gestão Hospitalar Desenvolver para a web com agilidade é um grande desafio, até mesmo para empresas já consagradas

Leia mais

Introdução. Tutorial do Xdoclet. Resumo

Introdução. Tutorial do Xdoclet. Resumo Tutorial do Xdoclet Resumo Apresentar a ferramenta XDoclet uma ferramenta utilizada como tarefa (task) do Jakarta Ant que permite executar e criar templates para gerar arquivos, inclusive código Java,

Leia mais

Criação de um novo projeto no Eclipse utilizando Maven

Criação de um novo projeto no Eclipse utilizando Maven 1. Faça o download da versão mais atual do Eclipse IDE for Java EE Developers em https://www.eclipse.org/downloads/. 2. No Eclipse, crie um novo projeto Maven, em File >> New >> Maven Project 3. Marque

Leia mais

CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011

CURSO 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 mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Curso: Sistemas de Informações Arquitetura de Software Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 7 JPA A Persistência com JPA Para configurar o JPA

Leia mais

Guião de Introdução ao Eclipse IDE Índice

Guião de Introdução ao Eclipse IDE Índice Índice 1. Introdução... 2 1.1. O que é um ambiente de desenvolvimento (IDE)?... 2 1.2. Visão geral sobre o Eclipse IDE... 2 2. Iniciar o Eclipse... 3 2.1. Instalação... 3 2.2. Utilizar o Eclipse... 3 3.

Leia mais

Persistindo dados com TopLink no NetBeans

Persistindo dados com TopLink no NetBeans Persistindo dados com TopLink no NetBeans O que é TopLink? O TopLink é uma ferramenta de mapeamento objeto/relacional para Java. Ela transforma os dados tabulares de um banco de dados em um grafo de objetos

Leia mais

5 Detalhes da Implementação

5 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 mais

Groovy & Grails. Arian Pasquali. quarta-feira, 12 de outubro de 11

Groovy & Grails. Arian Pasquali. quarta-feira, 12 de outubro de 11 Groovy & Grails Arian Pasquali Arian Pasquali 24 anos eu Formado em Sistemas de Informação Java, Objective-C, Flex, Groovy SCJP, SCJA, ACE 6 anos de Java Orientação a Objetos Plataforma Multi-plataforma

Leia mais

Entendendo Rails. Fabio Akita Surgeworks Brazil Rails Practice Manager www.akitaonrails.com

Entendendo Rails. Fabio Akita Surgeworks Brazil Rails Practice Manager www.akitaonrails.com Entendendo Rails Fabio Akita Surgeworks Brazil Rails Practice Manager www.akitaonrails.com 37signals Criado por David Heinemeier Hansson, em 2004 Extraído do aplicativo Basecamp Feito em Ruby, em vez de

Leia mais

Características do PHP. Começando a programar

Características do PHP. Começando a programar PHP Introdução Olá pessoal. Desculpe o atraso na publicação da aula. Pude perceber pelas respostas (poucas) ao fórum que a realização da atividade do módulo I foi relativamente tranquila. Assistam ao vídeo

Leia mais

Produto: Webscan Relatório II Programas desenvolvidos, testados e documentados

Produto: Webscan Relatório II Programas desenvolvidos, testados e documentados Produto: Webscan Relatório II Programas desenvolvidos, testados e documentados Sérgio Oliveira Campos Contrato N : 2008/000514 Sumário 1 Introdução 1 2 Bibliotecas Utilizadas 2 2.1 Reconhecimento de Texto

Leia mais

Java e Banco de Dados: JDBC, Hibernate e JPA

Java e Banco de Dados: JDBC, Hibernate e JPA Java e Banco de Dados: JDBC, Hibernate e JPA 1 Objetivos Apresentar de forma progressiva as diversas alternativas de persistência de dados que foram evoluindo na tecnologia Java, desde o JDBC, passando

Leia mais

ANEXO 11. Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação.

ANEXO 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 mais

Trabalhando com conexão ao banco de dados MySQL no Lazarus. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

Trabalhando com conexão ao banco de dados MySQL no Lazarus. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Trabalhando com conexão ao banco de dados MySQL no Lazarus Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Edição 4 O Componente Trabalhando com conexão ao banco de dados MySQL no Lazarus Ano: 03/2011

Leia mais

PROGRAMAÇÃO MANUAL DE INSTRUÇÕES SEJA BEM VINDO VERSÃO 1.4 10/01/2013 UDS SOLUÇÕES DIGITAIS

PROGRAMAÇÃO MANUAL DE INSTRUÇÕES SEJA BEM VINDO VERSÃO 1.4 10/01/2013 UDS SOLUÇÕES DIGITAIS VERSÃO 1.4 10/01/2013 UDS SOLUÇÕES DIGITAIS PROGRAMAÇÃO MANUAL DE INSTRUÇÕES Instruções, métodos e recomendações para desenvolvimento de sistemas na UDS. 1 Sumário Apresentação... 3 Estrutura de pastas:...

Leia mais

Desenvolvimento Web. Saymon Yury C. Silva Analista de Sistemas. http://www.saymonyury.com.br

Desenvolvimento Web. Saymon Yury C. Silva Analista de Sistemas. http://www.saymonyury.com.br Desenvolvimento Web Saymon Yury C. Silva Analista de Sistemas http://www.saymonyury.com.br Vantagens Informação em qualquer hora e lugar; Rápidos resultados; Portabilidade absoluta; Manutenção facilitada

Leia mais

Classes de Entidades Persistentes JDB

Classes de Entidades Persistentes JDB Classes de Entidades Persistentes JDB Brasil, Natal-RN, 07 de setembro de 2011 Welbson Siqueira Costa www.jdbframework.com Nota de Retificação: em 11/12/2011 a Listagem 3 desse tutorial sofreu uma pequena

Leia mais

www.coldfusionbrasil.com.br

www.coldfusionbrasil.com.br www.coldfusionbrasil.com.br 2000 1 O que é Cold Fusion? 3 Arquitetura Cold Fusion 3 Cold Fusion Markup Language (CFML) 4 O que devo saber para programar em CFML? 4 HTML 4 Desenho de Banco de Dados Relacionais

Leia mais

www.coldfusionbrasil.com.br

www.coldfusionbrasil.com.br www.coldfusionbrasil.com.br 2000 PASSANDO VARIÁVEIS ATRAVÉS DE FORM E URL 3 ALTERA.CFM 3 FORMALTERA.CFM 4 ALTERA.CFM 4 FORMALTERA.CFM 4 CRIANDO E MANIPULANDO VARIÁVEIS COM CFSET 4 VALORES ESTÁTICOS 5 PARÂMETROS

Leia mais

GUIA RÁPIDO DE UTILIZAÇÃO DO APLICATIVO RDB2LOD

GUIA RÁPIDO DE UTILIZAÇÃO DO APLICATIVO RDB2LOD GUIA RÁPIDO DE UTILIZAÇÃO DO APLICATIVO RDB2LOD Em sua versão inicial, o aplicativo RDB2LOD foi desenvolvido para instalação e execução em ambiente de máquina virtual Java, e oferece suporte aos SGBDs

Leia mais

Mini-Tutorial. Como criar relatórios Java para Web com JasperReports e ireport por Roberto J. Furutani 20/07/2005 www.furutani.eti.

Mini-Tutorial. Como criar relatórios Java para Web com JasperReports e ireport por Roberto J. Furutani 20/07/2005 www.furutani.eti. Mini-Tutorial Como criar relatórios Java para Web com JasperReports e ireport por Roberto J. Furutani 20/07/2005 www.furutani.eti.br 1. Introdução O objetivo deste trabalho é mostrar de forma prática como

Leia mais

Parte I. Demoiselle Mail

Parte 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 mais

Análise comparativa de produtividade entre Groovy e Java, aplicado no desenvolvimento web

Análise comparativa de produtividade entre Groovy e Java, aplicado no desenvolvimento web Análise comparativa de produtividade entre Groovy e Java, aplicado no desenvolvimento web Vandir Fernando Rezende Orientado por Marcel Hugo Roteiro Introdução Objetivos Fundamentação Teórica Desenvolvimento

Leia mais

Desenvolvendo Websites com PHP

Desenvolvendo 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 mais

CURSO DESENVOLVEDOR JAVA Edição Intensiva de Férias

CURSO 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 mais

Testes de Software. Anne Caroline O. Rocha TesterCertified BSTQB NTI UFPB. Anne Caroline O. Rocha Tester Certified BSTQB NTI UFPB

Testes de Software. Anne Caroline O. Rocha TesterCertified BSTQB NTI UFPB. Anne Caroline O. Rocha Tester Certified BSTQB NTI UFPB Testes de Software 1 AULA 04 FERRAMENTAS DE AUTOMAÇÃO DE TESTES FUNCIONAIS Anne Caroline O. Rocha TesterCertified BSTQB NTI UFPB Conteúdo Programático Aula 04 Automação de testes funcionais Ferramentas

Leia mais

Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas Prof. Felippe Scheidt IFPR Campus Foz do Iguaçu 2014/2

Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas Prof. Felippe Scheidt IFPR Campus Foz do Iguaçu 2014/2 Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas Prof. Felippe Scheidt IFPR Campus Foz do Iguaçu 2014/2 Objetivo. O objetivo da disciplina é conhecer os princípios da programação de

Leia mais

Programação WEB. Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br docente.ifrn.edu.br/andrealmeida. Aula III Introdução PHP

Programação WEB. Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br docente.ifrn.edu.br/andrealmeida. Aula III Introdução PHP Programação WEB Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br docente.ifrn.edu.br/andrealmeida Aula III Introdução PHP Introdução PHP PHP=Hypertext Pre-Processor Linguagem de script open

Leia mais

Ambientação JAVA. Versão 0.1 MICHEL CORDEIRO ANALISTA DE NEGÓCIO (NTI 2014) 1 UNIVERSIDADE CEUMA 08/01/2014

Ambientação JAVA. Versão 0.1 MICHEL CORDEIRO ANALISTA DE NEGÓCIO (NTI 2014) 1 UNIVERSIDADE CEUMA 08/01/2014 UNIVERSIDADE CEUMA Ambientação JAVA Versão 0.1 08/01/2014 Este é um modelo de configuração para desenvolvimento no ambiente Java. MICHEL CORDEIRO ANALISTA DE NEGÓCIO (NTI 2014) 1 Sumário Sumário... 2 1

Leia mais

Integrando Eclipse e Websphere Application Server Community Edition

Integrando Eclipse e Websphere Application Server Community Edition 1 Integrando Eclipse e Websphere Application Server Community Edition Sobre o Autor Carlos Eduardo G. Tosin (carlos@tosin.com.br) é formado em Ciência da Computação pela PUC-PR, pós-graduado em Desenvolvimento

Leia mais

Nome N Série: Ferramentas

Nome N Série: Ferramentas Nome N Série: Ferramentas Competências: Identificar e utilizar técnicas de modelagem de dados; Habilidades: Utilizar ferramentas de apoio ao desenvolvimento de software; Bases Tecnológicas: Metodologias

Leia mais

WEBDESIGN. Professor: Paulo Trentin paulo@paulotrentin.com.br http://www.paulotrentin.com.br Escola CDI de Videira

WEBDESIGN. Professor: Paulo Trentin paulo@paulotrentin.com.br http://www.paulotrentin.com.br Escola CDI de Videira WEBDESIGN Professor: Paulo Trentin paulo@paulotrentin.com.br http://www.paulotrentin.com.br Escola CDI de Videira 1 CDI - Curso de Webdesign - Prof. Paulo Trentin Objetivos para esta aula Debater sobre

Leia mais

Guia de Consulta Rápida. PHP com XML. Juliano Niederauer. Terceira Edição. Novatec

Guia de Consulta Rápida. PHP com XML. Juliano Niederauer. Terceira Edição. Novatec Guia de Consulta Rápida PHP com XML Juliano Niederauer Terceira Edição Novatec Copyright 2002 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida

Leia mais

Parte I. Demoiselle Vaadin

Parte I. Demoiselle Vaadin Parte I. Demoiselle Vaadin O Vaadin é um framework para construção de interfaces web que aplica ideias inovadoras. Apesar de usar o GWT como mecanismo para a exibição de seus componentes, eles tem características

Leia mais

Acesso à Dados ZEOS x Delphi. Professor Anderson

Acesso à Dados ZEOS x Delphi. Professor Anderson Acesso à Dados ZEOS x Delphi Professor Anderson Introdução O ZEOS é uma biblioteca que provê o acesso à uma base de dados em MYSQL. Através dessa Library, podemos realizar operações de manipulação da base

Leia mais

Construindo Aplicações Web com. PHPe MySQL. André Milani. Novatec

Construindo Aplicações Web com. PHPe MySQL. André Milani. Novatec Construindo Aplicações Web com PHPe MySQL André Milani Novatec Capítulo 1 Bem-vindo ao PHP Seja bem-vindo ao PHP! O primeiro capítulo deste livro aborda como obter, instalar e configurar corretamente o

Leia mais

SISTEMA 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 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 mais

BCValidador VALIDAÇÃO DE ARQUIVOS XML RECEBIDOS PELO BANCO CENTRAL DO BRASIL

BCValidador VALIDAÇÃO DE ARQUIVOS XML RECEBIDOS PELO BANCO CENTRAL DO BRASIL BCValidador VALIDAÇÃO DE ARQUIVOS XML RECEBIDOS PELO BANCO CENTRAL DO BRASIL Deinf/Dine4 Versão 1.3 20/05/2013 Histórico de Revisão Data Versão Descrição Autor 06/11/2007 1.0 Elaboração da primeira versão

Leia mais

ZEND F r a m e w o r k

ZEND F r a m e w o r k LOGO ZEND F r a m e w o r k Alexsander Muraro FRAMEWORK O que é? Um framework nada mais é do que uma arquitetura padrão que fornece várias ferramentas comuns a todo tipo de projeto; Utilizam os mais variados

Leia mais

Introdução ao IDE Netbeans (Programação Java)

Introdução ao IDE Netbeans (Programação Java) Universidade Federal do ABC (UFABC) Disciplina: Processamento da Informação (BC-0505) Assunto: Java e Netbeans Introdução ao IDE Netbeans (Programação Java) Conteúdo 1. Introdução... 1 1.1. Programas necessários...

Leia mais

GEPLANES GESTÃO DE PLANEJAMENTO ESTRATÉGICO MANUAL DE INSTALAÇÃO DO GEPLANES EM UM AMBIENTE WINDOWS

GEPLANES GESTÃO DE PLANEJAMENTO ESTRATÉGICO MANUAL DE INSTALAÇÃO DO GEPLANES EM UM AMBIENTE WINDOWS GEPLANES GESTÃO DE PLANEJAMENTO ESTRATÉGICO MANUAL DE INSTALAÇÃO DO GEPLANES EM UM AMBIENTE WINDOWS JANEIRO 2015 1 Sumário 1. Introdução...3 2. Pré-Requisitos...4 2.1. Instalação do Java Development Kit

Leia mais

HIBERNATE EM APLICAÇÃO JAVA WEB

HIBERNATE 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 mais

GUIA DE INSTALAÇÃO. Plataforma Windows. Relatório Técnico Versão 0.1 (201305032030) Leandro Gomes da Silva, Tiago França Melo de Lima

GUIA DE INSTALAÇÃO. Plataforma Windows. Relatório Técnico Versão 0.1 (201305032030) Leandro Gomes da Silva, Tiago França Melo de Lima Laboratório de Engenharia e Desenvolvimento de Sistemas LEDS/UFOP Universidade Federal de Ouro Preto UFOP GUIA DE INSTALAÇÃO Plataforma Windows Relatório Técnico Versão 0.1 (201305032030) Leandro Gomes

Leia mais

Manual de Instalação PIMSConnector em Windows

Manual de Instalação PIMSConnector em Windows Manual de Instalação PIMSConnector em Windows Julho/2015 Sumário 1. Contexto de negócio (Introdução)... 3 2. Pré-requisitos instalação/implantação/utilização... 4 3. JBOSS... 6 3.1. Instalação... 6 3.2.

Leia mais

Exibindo o Catálogo (Tarefa C) Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br)

Exibindo o Catálogo (Tarefa C) Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br) Exibindo o Catálogo (Tarefa C) Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br) Iteração C1: CRIANDO A LISTAGEM DO CATÁLOGO Feedback do Cliente O cliente foi queseonado sobre prioridades Gostaria de ver

Leia mais

Aplicabilidade: visão geral

Aplicabilidade: visão geral CURSO BÁSICO SAXES 2 Aplicabilidade: visão geral BI Comércio Indústria nf-e Serviços Software house Enterprise Business Bus Banco financeiro Instituição Sindicato ERP html Casos 3 6 Customização: importação

Leia mais

FRWTC800 - Desenvolvimento Web com Ruby on Rails

FRWTC800 - Desenvolvimento Web com Ruby on Rails FRWTC800 - Desenvolvimento Web com Ruby on Rails SOBRE A FRAMEWORK A Framework (www.frwtc.com) atua diretamente com profissionais do segmento de tecnologia em busca de capacitação, atualização e certificação,

Leia mais

Tutorial de instalação do Java 7 no Windows 7.

Tutorial de instalação do Java 7 no Windows 7. Tutorial de instalação do Java 7 no Windows 7. Neste tutorial vamos instalar um ambiente de desenvolvimento Java JDK 7 no Windows 7. Quando falamos em ambiente Java, estamos nos referindo ao conjunto de

Leia mais

Scriptlets e Formulários

Scriptlets 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 mais

PLATAFORMA DE DESENVOLVIMENTO PINHÃO PARANÁ MANUAL DE UTILIZAÇÃO DO CVS NO ECLIPSE

PLATAFORMA DE DESENVOLVIMENTO PINHÃO PARANÁ MANUAL DE UTILIZAÇÃO DO CVS NO ECLIPSE PLATAFORMA DE DESENVOLVIMENTO PINHÃO PARANÁ MANUAL DE UTILIZAÇÃO DO CVS NO ECLIPSE Agosto 2007 Sumário de Informações do Documento Tipo do Documento: Manual Título do Documento: MANUAL DE UTILIZAÇÃO DO

Leia mais

4 Desenvolvimento da ferramenta

4 Desenvolvimento da ferramenta direcionados por comportamento 38 4 Desenvolvimento da ferramenta Visando facilitar a tarefa de documentar requisitos funcionais e de gerar testes automáticos em uma única ferramenta para proporcionar

Leia mais

Utilizaremos a última versão estável do Joomla (Versão 2.5.4), lançada em

Utilizaremos a última versão estável do Joomla (Versão 2.5.4), lançada em 5 O Joomla: O Joomla (pronuncia-se djumla ) é um Sistema de gestão de conteúdos (Content Management System - CMS) desenvolvido a partir do CMS Mambo. É desenvolvido em PHP e pode ser executado no servidor

Leia mais

ARQUITETURA SISGRAD. Manual de Utilização. Versão: 2.0. Criação: 05 de julho de 2007 Autor: André Penteado

ARQUITETURA SISGRAD. Manual de Utilização. Versão: 2.0. Criação: 05 de julho de 2007 Autor: André Penteado ARQUITETURA SISGRAD Manual de Utilização Versão: 2.0 Criação: 05 de julho de 2007 Autor: André Penteado Última Revisão: 09 de outubro de 2009 Autor: Alessandro Moraes Controle Acadêmico - Arquitetura SISGRAD

Leia mais

WebApps em Java com uso de Frameworks

WebApps 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 mais

RevISTa: Publicação técnico-científica do IST-Rio. nº 05 Data: Dezembro / 2012 ISSN 2178-5589.

RevISTa: Publicação técnico-científica do IST-Rio. nº 05 Data: Dezembro / 2012 ISSN 2178-5589. Tutorial de Instalação e Uso do Eclipse Alexandre V. S. Lage, Caio de O. Leal, Eduardo A. F. da Silva, Felipe C. C. Trindade, Gutierre da C. Oliveira e Miguel G. P. de Carvalho. INTRODUÇÃO O Eclipse (2012)

Leia mais

TUTORIAL DE INTRODUÇÃO AO CEWOLF

TUTORIAL DE INTRODUÇÃO AO CEWOLF 1 TUTORIAL DE INTRODUÇÃO AO CEWOLF CRIANDO GRÁFICOS COM JSP, CEWOLF/JFREECHART E MYSQL 1. Introdução O Cewolf (http://cewolf.sourceforge.net/) é uma biblioteca que facilita a criação de gráficos dinâmicos

Leia mais

4 O Workflow e a Máquina de Regras

4 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 mais

Manual de Instalação: Agente do OCS Inventory NG

Manual de Instalação: Agente do OCS Inventory NG Manual de Instalação: Agente do OCS Inventory NG Abril 2013 Sumário 1. Agente... 1 2. Onde instalar... 1 3. Etapas da Instalação do Agente... 1 a. Etapa de Instalação do Agente... 1 b. Etapa de Inserção

Leia mais

mhtml:file://d:\utfpr\2009-2\especialização Java\Materiais de Aula\02 - JSF\Estud...

mhtml:file://d:\utfpr\2009-2\especialização Java\Materiais de Aula\02 - JSF\Estud... Página 1 de 7 Precisa de um freelancer, códigosfonte e exemplos Dicas & Truques completos? Contrate Nossa Consultoria Downloads Quem Somos Artigos & Tutoriais Bem-vindo(a) ao meu site. Além de realizar

Leia mais

Introdução Padrões OGC Instalação Configuração Formatos de Saída Aplicação AGENDA

Introdução Padrões OGC Instalação Configuração Formatos de Saída Aplicação AGENDA Introdução ao Introdução Padrões OGC Instalação Configuração Formatos de Saída Aplicação AGENDA INTRODUÇÃO GeoServer GeoTools INTRODUÇÃO GeoServer Servidor de informação geoespacial OGC; Utilizado para

Leia mais

Programação de Computadores - I. Profª Beatriz Profº Israel

Programaçã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 mais

Introdução ao Derby. Version 10.2 Derby Document build: December 11, 2006, 7:16:07 AM (PST)

Introdução ao Derby. Version 10.2 Derby Document build: December 11, 2006, 7:16:07 AM (PST) Introdução ao Derby Version 10.2 Derby Document build: December 11, 2006, 7:16:07 AM (PST) Contents Direitos autorais reservados... 3 Introdução ao Derby...4 Opções de implementação...4 Requisitos do

Leia mais

Introdução ao Javascript

Introdução ao Javascript Programação WEB I Introdução ao Javascript Apresentação da Disciplina,Introdução a linguagem Javascript Objetivos da Disciplina Apresentar os principais conceitos da linguagem Javascript referente à programação

Leia mais

JPA: Persistência padronizada em Java

JPA: Persistência padronizada em Java JPA: Persistência padronizada em Java FLÁVIO HENRIQUE CURTE Bacharel em Engenharia de Computação flaviocurte.java@gmail.com Programação Orientada a Objetos X Banco de Dados Relacionais = Paradigmas diferentes

Leia mais

Material de apoio a aulas de Desenvolvimento Web. Tutorial Java WEB JSP & HTML & CSS & CLASSE & OBJETOS. AAS - www.aas.pro.

Material de apoio a aulas de Desenvolvimento Web. Tutorial Java WEB JSP & HTML & CSS & CLASSE & OBJETOS. AAS - www.aas.pro. Material de apoio a aulas de Desenvolvimento Web Tutorial Java WEB JSP & HTML & CSS & CLASSE & OBJETOS AAS - www.aas.pro.net Março-2012 Este pequeno tutorial tem como objetivo conduzir o programador passo-a-passo

Leia mais

HAT Programação Auditoria Pós. 12.1.x. abril de 2015. Versão: 2.0

HAT Programação Auditoria Pós. 12.1.x. abril de 2015. Versão: 2.0 HAT Programação Auditoria Pós 12.1.x abril de 2015 Versão: 2.0 1 Sumário 1 Introdução... 3 2 Visão do Processo... 3 3 Serviço... 5 4 Dataset... 7 5 Formulário Principal AuditoriaPos... 9 6 Arquitetura

Leia mais

JSF e PrimeFaces. Professor: Ricardo Luis dos Santos IFSUL Campus Sapucaia do Sul

JSF 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 mais

AJAX no GASweb. Mas e afinal, para que usamos o AJAX?

AJAX no GASweb. Mas e afinal, para que usamos o AJAX? Nível - Avançado AJAX no GASweb Por: Pablo Hadler AJAX (Asynchronous Javascript and XML) foi criado com o princípio de ser uma maneira rápida e otimizada de podermos fazer requisições Web, sendo esta totalmente

Leia mais

Guia de instalação para ambiente de Desenvolvimento LINUX

Guia de instalação para ambiente de Desenvolvimento LINUX Guia de instalação para ambiente de Desenvolvimento LINUX Conteúdo deste manual Introdução O guia de instalação... 3 Capítulo 1 Instalando o servidor Web Apache... 4 Teste de instalação do Apache... 9

Leia mais

JDBC Java Database Connectivity

JDBC Java Database Connectivity 5 JDBC Java Database Connectivity Prof. Autor: Daniel Morais dos Reis e-tec Brasil Programação Avançada Para Web Página1 Meta Trabalhar com bancos de dados em aplicações web em JSP através das classes

Leia mais

1- ASP.NET - HTML Server Controls

1- ASP.NET - HTML Server Controls 1- ASP.NET - HTML Server Controls Os controles de servidor - Server Controls - HTML são tags HTML padrão, com exceção de possuirem o atributo : runat="server". Vejamos um código que ilustra isto: O atributo

Leia mais

Dominando Action Script 3

Dominando Action Script 3 Dominando Action Script 3 Segunda Edição (2014) Daniel Schmitz Esse livro está à venda em http://leanpub.com/dominandoactionscript3 Essa versão foi publicada em 2014-05-02 This is a Leanpub book. Leanpub

Leia mais

PHP Conference Brasil

PHP Conference Brasil CakePHP Elton Luís Minetto Agenda O que é o CakePHP Conceitos básicos Requisitos Instalação Configuração Aplicação de exemplo O que é o CakePHP Cake é um framework para PHP que usa padrões de desenvolvimento

Leia mais

JPA Passo a Passo. Henrique Eduardo M. Oliveira henrique@voffice.com.br. Globalcode Open4Education

JPA Passo a Passo. Henrique Eduardo M. Oliveira henrique@voffice.com.br. Globalcode Open4Education JPA Passo a Passo Henrique Eduardo M. Oliveira henrique@voffice.com.br 1 Palestrante Henrique Eduardo M. Oliveira (henrique@voffice.com.br) > Trabalha: Arquiteto JEE / Instrutor Java > Formação: Ciências

Leia mais

Genio desafios. O Genio entre os novos paradigmas da engenharia do software. www.quidgest.com quidgest@quidgest.com

Genio desafios. O Genio entre os novos paradigmas da engenharia do software. www.quidgest.com quidgest@quidgest.com Genio desafios O Genio entre os novos paradigmas da engenharia do software Genio Desafios Linguagem Genio Integração ANSI SQL Sintaxe de referência ao modelo Inferência e validação de tipos Declaração

Leia mais

http://aden.psl.gov.ao/wiki/environmentdevelpt

http://aden.psl.gov.ao/wiki/environmentdevelpt Página 1 de 20 Wiki Histórico Cronograma Ver Código Visualizar Tickets Pesquisa Tags Discussion Blog Desenvolvimento ambiente Eclipse Desenvolvimento existem em muitos ambientes Linux, mas a nossa escolha

Leia mais