Produtividade na web com Groovy e Grails

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

Download "Produtividade na web com Groovy e Grails"

Transcrição

1 Produtividade na web com Groovy e Grails

2 Quem somos? Lucas Aquiles ADS / IFPI lucasaquiles@gmail.com lucasaquiles.com.br/blog Fco Marcos ADS / IFPI Colaborador LAPESI fmarcosrocha@gmail.com

3 O Grails Inspiração Convenção ao invés de configuração Ruby on Rails, Django, TurboGears Construído sobre gigantes Java/ JEE Spring Framework Hiberante Reduz a complexidade Produtividade

4 O Grails GORM Baseado no Hiberante Camada de visão GSP (Groovy Server Pages) TagLib dinâmicas e SiteMesh Camada de controle: Baseado no Spring MVC / Spring Web Flow Dependency Injection (DI) Spring Container Internacionalização (i18n)

5

6 Grails - Instalação e Configuração Descompacte o arquivo e configure o GRAILS_HOME Hello Grails grails create-app helloword grais create-controller HelloWord grails- app/controllers/helloword/hellowordcontroller.groovy def helloword = { render meu hello word! }

7 Comandos - Grails Comandos básicos grails create-app AppDemo grails create-domain-class br.edu.ifpi.minhaclass grails create-controller br.edu.ifpi.minhaclass grails create-service br.edu.ifpi.minhaclass grails generate-all // gera as views os controlleres grails schema-export // expora o esquema de tabelas grails console // abre o console do groovy grails clean // limpa aterações grails run-app // roda a aplicação

8 Grails - Estrutura Arquivos de configuração: DataSource.groovy Config.groovy Bootstrap.groovy internacionalização Libs adicionais: ex mysql-connector.jar web.xml

9 DataSource - Grails DataSource - Arquivo de configuração de banco de dados Configurado por padrão com o HSQLDB Um banco de dados leve, usado para testes Possui três ambientes de trabalho Test, Production e Development

10 DataSource - Grails

11 MVC - Grails Modelo Tudo que será usado como Entidade ficá aqui. grails-app/domain/ grails create-domain-class Separar a lógica de negócio do modelo Cada classe de domínio corresponde à uma tabela do banco de dados relacional

12 MVC - Grails Controller: Toda regra de negócio fica no controller. grails-app/controller grails create-controller action: São clousures que irão receber as requisições e fazer alguma coisa def actionquefazalgumacoisa = { render \\o/ }

13 MVC - Grails Controller params: é um map (hash) de parâmetros de uma requisição def actionquepegaoparamseexibe = { } render parametros: ${params} flash: map temporário que armazena objetos da seção, o hash é limpo a cada nova requisição def actionquemostraoflashmessage = { } flash.message = ${params}

14 MVC - Grails Controller render: renderiza uma resposta redirect: redireciona uma ação usando HTTP redirect def actionqueredireciontapraoutraaction = { } redirect(controller:meucontroller, action: outraaction )

15 MVC Grails Controller scaffolding cria a estrura de CRUD para aquele modelo def scaffolding = MinhaClasseDeDominio

16 MVC - Grails Views crails create-view grails-app/views/<domain>/ <% %> ou <%= %> Utilizam a GSP taglib Evita misturar código de programação com linguagem de marcação Semelhando ao JSP def show = { [book:book.get(params.id)]} <%= book.title %>

17 MVC - Grails Views Loops <g:each in= ${livros} > <p>título: ${it.titulo}</p> </g:each> <g:each in= ${livros} var= livro > <p>título: ${livro.titulo}</p> </g:each>

18 MVC - Grails Views Condições <g:if test= ${nome == 'tr00'} > Hello, ${tr00} </g:if> <g:else> --- faz alguma coisa </g:else> <g:elseif test= 2 % 2 == 0 > faz outra coisa </g:elseif>

19 Service - Grails Services grails create-service grails-app/services/ Centraliza a regra de negócio Compartilha a mesma regra com classes de domínio que possuam essa lógica Injetado automaticamente no controller pelo Spring

20 Service - Grails Services Transactions transactional = true Essencial para manter a integridade do banco de dados via ACID; Atomicidade A terefa foi completa ou não Consistência - o banco de dados deve permanecer consistente antes e depois de uma operação Isolação uma transação está isolada das outras operações Durabilidade desde que a transação esteja feita, isso garante que a transação não possa ser desfeita

21 Scaffolding - Grails Scaffolding Permite criar rapidamente interfaces de CRUD para classes de domínio que estejam definidas Ótimo para prototipação

22 Scaffolding - Grails Scaffolding dinâmico: def scaffolding = MyDomainClass Scaffolding estático grails genreate-views: gera as views para uma classe de domínio específica grails generate-controller: cria o controlador para uma classe de domínio específica grails generate-all: cria os controlers + views ex: grails generate-all br.edu.ifpi.beans.aluno

23 MVC - Grails GORM Hibernate por baixo dos panos Permite fazer o mapeamento objeto / relacional do modelo orientado a objetos com o banco de dados relacional Cada classe de domínio representa uma tabela do banco de dados Uma instância representa uma linha da tabela Cada atributo da classe representa uma coluna da tabela

24 MVC - Grails Enquanto isso no hibernate... Criar uma classe, anotar a classe com a implementação do JPA, mapea a classe no arquivo de configuração, cria uma fabrica de sessões, cria um Dao, e por fim instancia um objeto da classe e persiste.

25 TUDO ISSO?

26 GORM - Grails Com o GORM do grails grails create-domain-class Usuario grails console def usuario = new User(login: tr00,password: tr00 ) usuario.save() Não precisa extender de ninguém, não precisa de annotations. grande semelhança com o ActiveRecord

27 GORM - Grails Métodos do GORM save() list() delete() get(object o) Buscadores dinâmicos

28 GORM - Grails Buscadores dinâmicos FindBy* Usuario.findByUsernameAndPassword( mock, mocklogin ) FindAllBy* Usuario.findAllByGroup(Group.get(1)) FindWhere, findallwhere Usuario.findWhere([ "username": "mock", login: "mocklogin"]) HQL Hibernate Query Language User.find( from User where login = :login and senha = :senha, [ mock, mocklogin ]) Parâmetros: max, sort, order

29 ORM - Grails Comparadores Between User.findByDateCreatedBetween(today-10, today) Like User.findByBioLike('%tr00%') NotEqual Album.findByTitleNotEqual('titulo de teste') IsNull User.findByGroupIsNull() IsNotNull User.findByGroupIsNotNull()

30 GORM - Grails Usando Criteria do Hibernate Uma das mais poderosos de de busca get: retorna uma instancia da query list: retorna uma lista de instancias count: retorna um total de resultados como um inteiro da query def c = DomainClass.createCriteria() def result = c.list{ eq('nome','tr00' }

31 GORM - Grails Relacionamentos Permite 4 tipos de relacionamentos One-to-one, One-to-Many, Many-to-One e Many-to-Many OneToMany Player hasone club HasMany - club hasmany players Métodos dinâmicos Club.addToPlayers(new Player()) Club.removeFromPlayers(Player.get(1L)) BelongsTo Player belongsto clube

32 i18n - Grails Internacionalização i18n grails-app/i18n/ Permite exibir mensagens no idioma de preferência do usuário Os arquivos.properties

33 Testes - Grails Testes Sempre que uma um controller, service ou classe domínio é criada, é criada uma classe de teste de integração correspondente Usa o Junit e o Canoo por baixo dos panos Permite fazer: Testes unitários Testes de integração Testes funcionais A aplicação vai trabalhar como esperado A classe de testes extendem de GroovyTestCase Permite o uso de assert*, setup e teardown

34 Tests - Grails Testes Teste de Integração!= teste Unitário Testes unitários no grails são criados com o comando: grails create-unit-test tests/unit/ nos testes unitários os métodos dinâmicos como save, findby* não estão disponíveis O grails faz isso pra ajudar você a diferenciar testes unitários e de integração testes unitários se preucupam em testar apenas uma parte do código e não o problema como um todo

35 Testes - Grails mas como testar sem os métodos dinâmicos?

36 Testes - Grails Testes Aí entram em cena o MockFor* e o StubFor*

37 Aplicação de exemplo - Grails Querist Aplicação de perguntas e respostas onde um usuário envia perguntas e outros usuários enviam as respostas. Uma resposta pode receber votos, a resposta mais votada é tída como a mais confiável Regras: Um usuário tem muitas perguntas e mutias respostas Uma pergunta tem um usuário ( quem perguntou ) e várias respostas Uma resposta pertence a uma pergunta e possui vários usuários ( quem respondu )

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

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

Grails 2.1.0 e as novidades

Grails 2.1.0 e as novidades _capa Grails 2.1.0 e as novidades Novidades na versão 2.1.0. 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

Leia mais

Introdução. Entendendo os Controles. Definindo um controle. Introdução MOCKDOMAIN() Testando uma classe de domínio mockdomain

Introdução. Entendendo os Controles. Definindo um controle. Introdução MOCKDOMAIN() Testando uma classe de domínio mockdomain Testando uma classe de domínio mockdomain void testduracaominima() { mockdomain(musica) def musica = new Musica(duracao: 0) assertfalse 'Validacao deve falhar', musica.validate() MOCKDOMAIN() assertequals

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

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

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

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

Projeto Arquitetural do IEmbedded

Projeto Arquitetural do IEmbedded Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática Departamento de Sistemas e Computação Disciplina: Projeto I Professora: Francilene Garcia Equipe: Carolina Nogueira de

Leia mais

Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate

Uma 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 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

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO

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

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

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

JavaServer Faces. Parte 2

JavaServer Faces. Parte 2 JavaServer Faces Parte 2 Recapitulando Aplicações web são aplicações que executam em um servidor Recebem requisições de usuários Retornam respostas ao usuário Browsers só entendem e exibem html O servidor

Leia mais

WebWork 2. João Carlos Pinheiro. jcpinheiro@cefet-ma.br

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

Struts 2 : Projeto e Programação Editora: Ciência Moderna Autor: Antunes Budi Kurniawan Número de páginas: 600

Struts 2 : Projeto e Programação Editora: Ciência Moderna Autor: Antunes Budi Kurniawan Número de páginas: 600 Objetivo Com enfoque totalmente prático permite que programadores Java possam ampliar seus conhecimentos no mundo Web na criação de sistemas profissionais. Utilizar os modelos de programação com Servlets,

Leia mais

Centro Universitário Metodista Benne1 Rio de Janeiro, Dezembro de 2009. Rafael Polo e Sabrina Arêas

Centro Universitário Metodista Benne1 Rio de Janeiro, Dezembro de 2009. Rafael Polo e Sabrina Arêas Centro Universitário Metodista Benne1 Rio de Janeiro, Dezembro de 2009 Rafael Polo e Sabrina Arêas Contexto 60 s - Primeiros sistemas de informação corporativos. 70 s Desenvolvimento e comercialização

Leia mais

ruirossi@ruirossi.pro.br

ruirossi@ruirossi.pro.br Persistência Com JPA & Hibernate Rui Rossi dos Santos ruirossi@ruirossi.pro.br Mediador: Rui Rossi dos Santos Slide 1 Mapeamento Objeto-Relacional Contexto: Linguagem de programação orientada a objetos

Leia mais

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro

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

Tecnologias Web. Padrões de Projeto - Camada de Apresentação

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

Mini-curso de CakePHP

Mini-curso de CakePHP Mini-curso de CakePHP Apresentação Daniel Golgher - formado em Tecnologia em Processamento de Dados e bacharel em Sistema de Informação pela UNA. Pós graduado em Engenharia de Software pela UFMG. Desenvolve

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

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

PROJETO PEDAGÓGICO DE CURSOS

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

Leia mais

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração

Ambiente 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 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

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

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA RESUMO DE AULA CRIAÇÃO E MANIPULAÇÃO DO BANCO DE DADOS

Leia mais

Sumário. Parte I Introdução 21. 1 Introdução 15 1.1 O Rails é ágil... 17 1.2 Explorando o conteúdo... 18 1.3 Agradecimentos... 19

Sumário. Parte I Introdução 21. 1 Introdução 15 1.1 O Rails é ágil... 17 1.2 Explorando o conteúdo... 18 1.3 Agradecimentos... 19 Sumário 1 Introdução 15 1.1 O Rails é ágil.......................................................... 17 1.2 Explorando o conteúdo................................................... 18 1.3 Agradecimentos........................................................

Leia mais

2 echo "PHP e outros.";

2 echo PHP e outros.; PHP (Hypertext Preprocessor) Antes de qualquer coisa, precisamos entender o que é o PHP: O PHP(Hypertext Preprocessor) é uma linguagem interpretada gratuita, usada originalmente apenas para o desenvolvimento

Leia mais

Documento de Projeto de Sistema

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

Persistência de Dados em Java com JPA e Toplink

Persistência de Dados em Java com JPA e Toplink Persistência de Dados em Java com JPA e Toplink Vinicius Teixeira Dallacqua Curso de Tecnologia em Sistemas para Internet Instituto Federal de Educação, Ciência e Tecnologia - IFTO AE 310 Sul, Avenida

Leia mais

Java para WEB com Hibernate e Struts 2. Duração 52 horas/aula. Objetvo

Java para WEB com Hibernate e Struts 2. Duração 52 horas/aula. Objetvo Objetvo O curso visa explorar a geração de conteúdo dinâmico para páginas WEB através de recursos da linguagem Java que são a base da plataforma Java Entreprise Editon (Java EE), e mostrar os frameworks

Leia mais

Módulo 5 JPATransaction Camadas Turma Turma TurmaBC .business @BusinessController TurmaBC TurmaBC TurmaBC

Módulo 5 JPATransaction Camadas Turma Turma TurmaBC .business @BusinessController TurmaBC TurmaBC TurmaBC Módulo 5 No módulo anterior adaptamos nosso projeto para persistir as informações no banco de dados utilizando as facilidades da extensão demoiselle-jpa. Experimentamos o controle transacional do Framework

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

Criando Frameworks Inteligentes com PHP. Uma abordagem prática: vantagens, aplicações e procedimentos.

Criando Frameworks Inteligentes com PHP. Uma abordagem prática: vantagens, aplicações e procedimentos. Criando Frameworks Inteligentes com PHP Uma abordagem prática: vantagens, aplicações e procedimentos. Apresentação Equipes ao redor do mundo utilizam diferentes padrões de projeto, de acordo com suas necessidades

Leia mais

ASP.NET MVC em Ação. Jeffrey Palermo Ben Scheirman Jimmy Bogard. Novatec. Prefácio de Phil Haack

ASP.NET MVC em Ação. Jeffrey Palermo Ben Scheirman Jimmy Bogard. Novatec. Prefácio de Phil Haack ASP.NET MVC em Ação Jeffrey Palermo Ben Scheirman Jimmy Bogard Prefácio de Phil Haack Novatec Sumário Prólogo...11 Prefácio...13 Agradecimentos...17 Sobre este livro...20 Sobre os autores...26 Sobre a

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

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

TRBOnet MDC Console. Manual de Operação

TRBOnet MDC Console. Manual de Operação TRBOnet MDC Console Manual de Operação Versão 1.8 ÍNDICE NEOCOM Ltd 1. VISÃO GERAL DA CONSOLE...3 2. TELA DE RÁDIO...4 2.1 COMANDOS AVANÇADOS...5 2.2 BARRA DE FERRAMENTAS...5 3. TELA DE LOCALIZAÇÃO GPS...6

Leia mais

Nos Trilhos com RAILS. Sylvestre Mergulhão

Nos Trilhos com RAILS. Sylvestre Mergulhão Nos Trilhos com RAILS Sylvestre Mergulhão Necessidades Desenvolver para a web Desenvolver para a web de forma organizada Desenvolver para a web de forma fácil de manter Desenvolver para a web de forma

Leia mais

Computação II Orientação a Objetos

Computação II Orientação a Objetos Computação II Orientação a Objetos Fabio Mascarenhas - 2014.1 http://www.dcc.ufrj.br/~fabiom/java Android Android é um sistema operacional para dispositivos móveis Kernel Linux, drivers e bibliotecas do

Leia mais

Luiz Arão Araújo Carvalho Bacharel em Ciência da Computação Desenvolvedor RedeSat-TO maximusmano@gmail.com http://www.maxonrails.wordpress.

Luiz Arão Araújo Carvalho Bacharel em Ciência da Computação Desenvolvedor RedeSat-TO maximusmano@gmail.com http://www.maxonrails.wordpress. Parte II Luiz Arão Araújo Carvalho Bacharel em Ciência da Computação Desenvolvedor RedeSat-TO maximusmano@gmail.com http://www.maxonrails.wordpress.com Rails - Instalação Windows gem install rails Plataformas

Leia mais

No Fedora, instalamos os pacotes "mysql" e "mysql-server", usando o yum:

No Fedora, instalamos os pacotes mysql e mysql-server, usando o yum: Instalando o MySQL O MySQL é um banco de dados extremamente versátil, usado para os mais diversos fins. Você pode acessar o banco de dados a partir de um script em PHP, através de um aplicativo desenvolvido

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

II Semana de Tecnologia da Informação. Rails Framework

II Semana de Tecnologia da Informação. Rails Framework II Semana de Tecnologia da Informação Rails Framework Rails Instalação Ruby versão 1.8.7 Linux: ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p174.tar.gz ou apt-get install ruby (Debian/Ubuntu) Windows:

Leia mais

Programação Web Aula 10 - Testes, Javascript, Ajax

Programação Web Aula 10 - Testes, Javascript, Ajax Programação Web Aula 10 - Testes, Javascript, Ajax Bruno Müller Junior Departamento de Informática UFPR 28 de Abril de 2014 1 Ambientes de Execução 2 Testes Um exemplo Acrescentando Validação Validação

Leia mais

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE

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

Curso de Aprendizado Industrial Desenvolvedor WEB

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

Acessando um Banco de Dados

Acessando um Banco de Dados Acessando um Banco de Dados Introdução Agora que você já está craque em JSP e já instalou seu servidor, vamos direto para a parte prática! Neste tutorial vamos aprender a acessar um banco de dados. Para

Leia mais

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

Programação Web Aula 8 - Rails (Introdução)

Programação Web Aula 8 - Rails (Introdução) Programação Web Aula 8 - Rails (Introdução) Departamento de Informática UFPR 7 de Abril de 2014 1 Rails Básico Mágica Princípios Características Criando uma aplicação Levantando o Servidor Examinando o

Leia mais

Universidade da Beira Interior

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

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Curso: Engenharia de Software Arquitetura de Software Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 9 Mapeamento em JPA Introdução O mapeamento objeto-relacional

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

Sistemas para internet e software livre

Sistemas para internet e software livre Sistemas para internet e software livre Metodologia de modelagem de aplicações WEB Image: FreeDigitalPhotos.net Domínio: Elementos de aplicação WEB Páginas Web Scripts Formulários Applets e ActiveX Motivação

Leia mais

2 a Lista de Exercícios

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

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 10 Persistência de Dados

Leia mais

Principais Comandos SQL Usados no MySql

Principais Comandos SQL Usados no MySql Principais Comandos SQL Usados no MySql O que é um SGBD? Um Sistema Gerenciador de Banco de Dados (como no Brasil) ou Sistema Gestor de Base de Dados (SGBD) é o conjunto de programas de computador (softwares)

Leia mais

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Conteú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 mais

BEM-VINDOS AO CURSO DE ORIENTADO A OBJETOS

BEM-VINDOS AO CURSO DE ORIENTADO A OBJETOS 21/11/2013 PET Sistemas de Informação Faculdade de Computação Universidade Federal de Uberlândia 1 BEM-VINDOS AO CURSO DE ORIENTADO A OBJETOS Leonardo Pimentel Ferreira Higor Ernandes Ramos Silva 21/11/2013

Leia mais

Programação Web com PHP. Prof. Wylliams Barbosa Santos wylliamss@gmail.com Optativa IV Projetos de Sistemas Web

Programação Web com PHP. Prof. Wylliams Barbosa Santos wylliamss@gmail.com Optativa IV Projetos de Sistemas Web Programação Web com PHP Prof. Wylliams Barbosa Santos wylliamss@gmail.com Optativa IV Projetos de Sistemas Web Agenda O que é PHP? O que da pra fazer com PHP? Como a web funciona? Onde, quando e por que

Leia mais

Programando em PHP. Conceitos Básicos

Programando em PHP. Conceitos Básicos Programando em PHP www.guilhermepontes.eti.br lgapontes@gmail.com Conceitos Básicos Todo o escopo deste estudo estará voltado para a criação de sites com o uso dos diversos recursos de programação web

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

Padrão J2EE Data Access Object (DAO)

Padrão J2EE Data Access Object (DAO) Introdução CRUD DAO Exemplo Padrão J2EE Data Access Object (DAO) Prof. Enzo Seraphim Motivação para usar Componentes precisam acessar e armazenar informações em armazenamento persistente As APIs de armazenamento

Leia mais

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas: Álgebra Relacional Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída operação (REL 1 ) REL 2 operação (REL 1,REL 2 ) REL 3 Operações básicas: seleção projeção

Leia mais

Entendendo como funciona o NAT

Entendendo como funciona o NAT Entendendo como funciona o NAT Vamos inicialmente entender exatamente qual a função do NAT e em que situações ele é indicado. O NAT surgiu como uma alternativa real para o problema de falta de endereços

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 à Engenharia da Computação. Banco de Dados Professor Machado

Introdução à Engenharia da Computação. Banco de Dados Professor Machado Introdução à Engenharia da Computação Banco de Dados Professor Machado 1 Sistemas isolados Produção Vendas Compras Banco de Dados Produtos... Banco de Dados Produtos... Banco de Dados Produtos... Desvantagens:

Leia mais

Arquitetura de uma Webapp

Arquitetura de uma Webapp Arquitetura de uma Webapp Arquitetura J2EE Containers e componentes MVC: introdução Frederico Costa Guedes Pereira 2006 fredguedespereira@gmail.com Plataforma J2EE World Wide Web e a Economia da Informação

Leia mais

Kassius Vargas Prestes

Kassius Vargas Prestes Kassius Vargas Prestes Agenda 1. Introdução Web Services 2. XML, SOAP 3. Apache Tomcat 4. Axis 5. Instalação Tomcat e Axis 6. Criação de um Web Service 7. Criação de um cliente Baixar http://www.inf.ufrgs.br/~kvprestes/webservices/

Leia mais

J550 Segurança e Controle de erros

J550 Segurança e Controle de erros J550 Segurança e Controle de erros Helder da Rocha (helder@acm.org) www.argonavis.com.br 1 Assuntos abordados Este módulo trata de dois assuntos Como mapear erros HTTP e exceções Java a servlets ou páginas

Leia mais

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

Satélite. Manual de instalação e configuração. CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br

Satélite. Manual de instalação e configuração. CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br Satélite Manual de instalação e configuração CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br Índice Índice 1.Informações gerais 1.1.Sobre este manual 1.2.Visão geral do sistema 1.3.História

Leia mais

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

Introdução à Banco de Dados. Nathalia Sautchuk Patrício Introdução à Banco de Dados Nathalia Sautchuk Patrício Histórico Início da computação: dados guardados em arquivos de texto Problemas nesse modelo: redundância não-controlada de dados aplicações devem

Leia mais

Google Drive. Passos. Configurando o Google Drive

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

Aula 4. Objetivos. Conteúdo dinâmico na internet.

Aula 4. Objetivos. Conteúdo dinâmico na internet. Aula 4 Objetivos Conteúdo dinâmico na internet. Para uma solicitação da Web mais simples, um navegador solicita um documento HTML e o servidor Web encontra o arquivo correspondente e devolve. Se o documento

Leia mais

Aula 2 - Revisão de JPA (Java Persistence API)

Aula 2 - Revisão de JPA (Java Persistence API) Aula 2 - Revisão de JPA (Java Persistence API) Professor: Ricardo Luis dos Santos IFSUL 2015 Tabela para Revisão Assunto (JPA) Interesse? 1 Vantagens e Desvantagens 4 2 Principais Conceitos 7 3 Anotações

Leia mais

DESENVOLVIMENTO DE SOFTWARE. Introdução ao Visual Studio VB.Net. Programação Estruturada. Prof. Celso Candido ADS / REDES / ENGENHARIA

DESENVOLVIMENTO DE SOFTWARE. Introdução ao Visual Studio VB.Net. Programação Estruturada. Prof. Celso Candido ADS / REDES / ENGENHARIA Introdução ao Visual Studio VB.Net Programação Estruturada 1 Nesse momento inicial não iremos programar em VB.Net, usando o Visual Studio, mas conhecer alguns comandos e variáveis usadas em uma linguagem

Leia mais

Prevayler. Perola. André Luís Sales de Moraes Juliana Keiko Yamaguchi Tatiana Yuka Takaki

Prevayler. Perola. André Luís Sales de Moraes Juliana Keiko Yamaguchi Tatiana Yuka Takaki Prevayler Perola André Luís Sales de Moraes Juliana Keiko Yamaguchi Tatiana Yuka Takaki Prevayler Prevayler é a implementação em Java do conceito de Prevalência. É um framework que prega uma JVM invulnerável

Leia mais

ADOBE FLASH PLAYER 10.3 Gerenciador de configurações locais

ADOBE FLASH PLAYER 10.3 Gerenciador de configurações locais ADOBE FLASH PLAYER 10.3 Gerenciador de configurações locais PRERELEASE 03/07/2011 Avisos legais Avisos legais Para consultar avisos legais, acesse o site http://help.adobe.com/pt_br/legalnotices/index.html.

Leia mais

Front-End Uso da Linguagem Turbo Delphi para Acesso ao Banco de Dados Mysql

Front-End Uso da Linguagem Turbo Delphi para Acesso ao Banco de Dados Mysql Universidade Federal de Mato Grosso-UFMT Sistemas de Informação Laboratório de Programação Visual Prof. Clóvis Júnior Front-End Uso da Linguagem Turbo Delphi para Acesso ao Banco de Dados Mysql Estrutura

Leia mais

Java II. Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com

Java II. Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Java II Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Servlets Servlet Aplicação Java que é executada no servidor que estende a capacidade do servidor Web Alternativa Java para os scripts CGI Gerenciado

Leia mais

TUTORIAL SPRING SECURITY PROGRAMAÇÃO COM FRAMEWORKS Responsáveis: Ana Luíza Cruvinel, Maikon Franczak e Wendel Borges

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

Tutorial Básico. Instalando e testando o Ruby on Rails no Windows

Tutorial Básico. Instalando e testando o Ruby on Rails no Windows Tutorial Básico Instalando e testando o Ruby on Rails no Windows Ana Luiza Dias Organização do Tutorial: Passos para a instalação...pág 2 Passos para a criação de um projeto rails...pág 3 Passos para acompanhar

Leia mais

Banco de Dados. Aula 1 - Prof. Bruno Moreno 16/08/2011

Banco de Dados. Aula 1 - Prof. Bruno Moreno 16/08/2011 Banco de Dados Aula 1 - Prof. Bruno Moreno 16/08/2011 Roteiro Apresentação do professor e disciplina Definição de Banco de Dados Sistema de BD vs Tradicional Principais características de BD Natureza autodescritiva

Leia mais

Disciplina de Banco de Dados Parte V

Disciplina de Banco de Dados Parte V Disciplina de Banco de Dados Parte V Prof. Elisa Maria Pivetta CAFW - UFSM Modelo de Dado Relacional O Modelo Relacional O Modelo ER é independente do SGDB portanto, deve ser o primeiro modelo gerado após

Leia mais

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL Prof. MSc. Hugo Souza Iniciando nossas aulas sobre

Leia mais

EJB ainda tem vez no Java EE 6? Fernando Lozano Consultor 4Linux lozano@4linux.com.br

EJB ainda tem vez no Java EE 6? Fernando Lozano Consultor 4Linux lozano@4linux.com.br EJB ainda tem vez no Java EE 6? Fernando Lozano Consultor 4Linux lozano@4linux.com.br Você Gosta do EJB? O EJB esteve por muito tempo na berlinda do mundo Java É pesado... É complicado... Código muito

Leia mais

Universidade Federal Rural de Pernambuco. Bacharelado em Sistemas de Informação. Disciplina: Análise e Projeto de Sistemas de Informação

Universidade Federal Rural de Pernambuco. Bacharelado em Sistemas de Informação. Disciplina: Análise e Projeto de Sistemas de Informação Universidade Federal Rural de Pernambuco Bacharelado em Sistemas de Informação Disciplina: Análise e Projeto de Sistemas de Informação Docente: Rodrigo Aluna: Thays Melo de Moraes Diagramas do Projeto

Leia mais

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Basedos na Web Capítulo 12 Agenda Arquitetura Processos Comunicação Nomeação Sincronização Consistência e Replicação Introdução

Leia mais

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) Sumário. Java 2 Enterprise Edition. J2EE (Java 2 Enterprise Edition)

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) Sumário. Java 2 Enterprise Edition. J2EE (Java 2 Enterprise Edition) Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) J2EE () Sumário Introdução J2EE () APIs J2EE Web Container: Servlets e JSP Padrão XML 2 J2EE é Uma especificação para servidores

Leia mais

Finalizando o Pedido (Tarefa G) Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br)

Finalizando o Pedido (Tarefa G) Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br) Finalizando o Pedido (Tarefa G) Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br) Feedback do Cliente Com os itens no carrinho é hora de permitir a finalização da venda Operação conhecida como "Check Out"

Leia mais

Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate

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

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido Arquitetura Roteiro Arquitetura Tipos de Arquitetura Centralizado Descentralizado Hibrido Questionário 2 Arquitetura Figura 1: Planta baixa de uma casa 3 Arquitetura Engenharia de Software A arquitetura

Leia mais

Conteúdo Programático de PHP

Conteúdo Programático de PHP Conteúdo Programático de PHP 1 Por que PHP? No mercado atual existem diversas tecnologias especializadas na integração de banco de dados com a WEB, sendo o PHP a linguagem que mais se desenvolve, tendo

Leia mais

Introdução ao Modelos de Duas Camadas Cliente Servidor

Introdução ao Modelos de Duas Camadas Cliente Servidor Introdução ao Modelos de Duas Camadas Cliente Servidor Desenvolvimento de Sistemas Cliente Servidor Prof. Esp. MBA Heuber G. F. Lima Aula 1 Ciclo de Vida Clássico Aonde estamos? Page 2 Análise O que fizemos

Leia mais