Sei sulla pagina 1di 75

- Ferramentas de gerência de configuração, desenvolvimento, build,

análise de código, testes e gestão de defeitos


- Frameworks: Hibernate, Spring e Wicket
- Jee6 e servidores de aplicação + Jetty, WebSphere
- Introdução a Concordion, Selenium, JSON e HTML5

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br

W W W. D O M I N A N D OT I .CO M . B R W W W. D O M I N A N D OT I .CO M . B R
Acesse nosso site em
WWW.DOMINANDOTI.COM.BR

Cursos Turmas em Brasília, na sua cidade, e cursos online


Livros Edições publicadas, lançamentos e promoções
Fórum Interação direta entre estudantes e com os professores

Simulados Questões inéditas, ranking de notas e correções em vídeo

Blog Dicas e macetes de estudo, indicações de bibliografia, etc.

Materiais Versões atualizadas de notas de aula e listas de exercícios

Curta o Dominando TI no
e receba nossas dicas sobre concursos!

W W W. D O M I N A N D OT I .CO M . B R
Ferramentas de gerência de configuração,
desenvolvimento, build, análise de código, testes e
gestão de defeitos

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br

W W W. D O M I N A N D OT I .CO M . B R W W W. D O M I N A N D OT I .CO M . B R
Eclipse

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br

W W W. D O M I N A N D OT I .CO M . B R W W W. D O M I N A N D OT I .CO M . B R
Eclipse – Ferramenta de Desenvolvimento

 Plataforma aberta para desenvolvimento de aplicações


 Suporte a diversos sistemas operacionais
 Suporte a linguagens Java, Scala, C/C++, PHP e outras.
 Arquitetura baseada em plugins (padrão OSGI - Equinox)
 GUI baseada na biblioteca SWT.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 5 W W W. D O M I N A N D OT I .CO M . B R


Eclipse – características desenvolvimento Java

 Compilação incremental
 Automatiza diversas refatorações de código
 Ambiente integrado de testes de componente com Junit
 Suporte a múltiplas JREs

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 6 W W W. D O M I N A N D OT I .CO M . B R


Eclipse – principais conceitos

 Workspace
 Local onde os projetos são armazenados

 Workbench
 Área de trabalho. Contém itens como menu, barra de ferramentas, editores e views

 Perspectiva
 Conjunto de funcionalidades para uma tarefa específica. Exemplo: editar código java,
depurar código, acesso a funcionalidade do controle de versões.

 View
 Janelas que mantém editores ou outras formas alternativas de apresentação e
navegação.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 7 W W W. D O M I N A N D OT I .CO M . B R


Terminologia – identificando elementos

Text
editor

Perspective
and
Fast View
(barra)
Outline
view
Resource
Navigator
view

Bookmarks
Properties view
view

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 8 W W W. D O M I N A N D OT I .CO M . B R


Maven

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br

W W W. D O M I N A N D OT I .CO M . B R W W W. D O M I N A N D OT I .CO M . B R
Maven

 Padroniza e simplifica o processo de construção (build) de


um projeto de software.
 trata compilação, distribuição, documentação, gerenciamento de
dependências, gerenciamento de configuração (SCM)

 Convention over Configuration


Item Padrão
Código fonte /src/main/java
Recursos (arquivos conf.) /src/main/resources
Testes /src/test
Código compilado /target/classes

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 10 W W W. D O M I N A N D OT I .CO M . B R


POM – Project Object Model (pom.xml)

 Contém metadados do projeto


<project>
<modelVersion>4.0.0</modelVersion>
<groupId>br.com.dominandoti</groupId>
<artifactId>projetocurso-api</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<dependencies/>
<build/>
</project>

 Super POM
 Todos os POMs herdam de algum outro

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 11 W W W. D O M I N A N D OT I .CO M . B R


Características

 Ciclos de vida
 Sequência de fases que definem a ordem que goals são executados.
 Ciclos de vida: clean, default (build) e site

 Plugins
 Profiles
 Configurações que sobrescrevem comportamentos padrão do Maven.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 12 W W W. D O M I N A N D OT I .CO M . B R


Repositórios

 Trata-se do local onde são armazenados os artefatos (jars,


plugins) utilizados pelo maven.
 Há três tipos: local, central e remoto

remoto

local interno - proxy central


(opcional)
c:\users\mpacote\.m2 http://repo1.maven.org/maven2/

remoto

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 13 W W W. D O M I N A N D OT I .CO M . B R


Gerenciamento de Dependências

 Descoberta de dependências transitivas

Há dependência transitiva entre A e C

Escopo Descrição
compile (default) indica que a dependência está disponível no classpath do
projeto
provided dependência provida pelo JDK ou Container em tempo de execução.
test dependência utilizada apenas por testes (compilação e execução)
runtime Não é necessário para compilação, apenas para execução.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 14 W W W. D O M I N A N D OT I .CO M . B R


Jenkins e Sonar

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br

W W W. D O M I N A N D OT I .CO M . B R W W W. D O M I N A N D OT I .CO M . B R
Jenkins

 Ferramenta de interação contínua


 Open source.
 Escrita em Java (executa em container de servlets)
 Fork do projeto Hudson

 Suporte a diversas ferramentas de controle de versão: CVS,


SVN, Git, Mercurial, ClearCase.
 Se integra com Maven e pode executar scripts ant e scripts.
 Recurso cron-like para agendamento de execução de
tarefas.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 16 W W W. D O M I N A N D OT I .CO M . B R


Sonar

 Plataforma para gerenciamento de qualidade de código


 Esta ferramenta abrange 7 eixos de qualidade de código: arquitetura
e design, duplicidade, testes unitários, complexidade, erros em
potencial, regras de codificação e comentários.
 Baseado em plugins
 Java é a linguagem base, mas há plugins para outras linguagens.
 Permite a configuração de alertas, regras, limites.
 Licença LGPL 3

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 17 W W W. D O M I N A N D OT I .CO M . B R


Ferramentas de análise estática de código:
PMD, CheckStyle e Findbugs

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br

W W W. D O M I N A N D OT I .CO M . B R W W W. D O M I N A N D OT I .CO M . B R
Findbugs

 Detecta bugs potenciais e problemas de desempenho


 Não trata padrões de codificação e formatação de código
 Pode ser utilizado como uma aplicação standalone, plugin do
eclipse ou integrado ao Maven e Sonar.
endereco = cliente.getEndereco();
if ((endereco != null) || (endereco.getCEP() != null)) {
...
}

 Utiliza bytecodes como insumo em vez de código fonte


 Open source
Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 19 W W W. D O M I N A N D OT I .CO M . B R
FindBugs – categorias das regras

 Corretude
Exemplo: loop infinito

 Más práticas
Exemplo: código que lança exceção ou falha ao fechar um arquivo.

 Desempenho
 Corretude de código Multithreaded
 Dodgy (esperto)
 Exemplo: variáveis locais não utilizadas

W W W. D O M I N A N D OT I .CO M . B R
Checkstyle

 Análise estática com foto em padrões e estilo de codificação.


 Exemplo: indentação e espaços em branco, nomes de variáveis,
comentários javadoc,
 Cálculo de métricas de complexidade
 Exemplo: número de linhas por método, nível de aninhamento de loops e
condicionais, linhas, métodos e atributos por classe.
 Boas práticas
 Uso de imports não utilizados, expressões regulares, tratamento de
exceções.
 Não encontra bugs reais.

W W W. D O M I N A N D OT I .CO M . B R
Checkstyle

 Análise estática de código de fonte. Pode identificar


problemas potenciais como:
 dead code : métodos privados, variáveis e parâmetros não utilizados
 Código duplicado: detector de CTRL+C, CTRL+V (manutenibiliade)
 Classes com métrica elevada de complexidade ciclomática.
 Blocos try/catch vazios ou expressões if/while sem corpo.
 Uso de “==” em vez de “.equals()”
 Analisa código fontes das linguagens Java, C, C++, C#, PHP,
Ruby, Fortran, JavaScript

W W W. D O M I N A N D OT I .CO M . B R
Gestão de Defeitos

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br

W W W. D O M I N A N D OT I .CO M . B R W W W. D O M I N A N D OT I .CO M . B R
Mantis

 Ferramenta
Web para
gestão de
defeitos de
software
 open source,
PHP, GPL.
 Issues têm
cores

W W W. D O M I N A N D OT I .CO M . B R
Gerência de Configuração

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br

W W W. D O M I N A N D OT I .CO M . B R W W W. D O M I N A N D OT I .CO M . B R
Gerência de Configuração e controle de versões

 Conjunto de atividades de apoio ao desenvolvimento que


permitem que mudanças sejam absorvidas de maneira
controlada.
 Controle de versão
 Recuperar versões anteriores
 Auditar modificações realizadas (quem, quando e o quê)
 Permitir desenvolvimento em paralelo
 Prevenir conflito entre desenvolvedores

W W W. D O M I N A N D OT I .CO M . B R
Subversion

 Sistema de controle de versões


 Trabalha com qualquer tipo de arquivo (e não apenas códigos –fonte)
 Características
 Histórico de mudanças em arquivos e diretórios
 Controle de acesso
 Registro da data, autor e motivo de uma alteração

W W W. D O M I N A N D OT I .CO M . B R
Subversion – trunk, tags, branches

Repositório
 Branch: linha
Projeto 1 independente
trunk desenvolvimento.
tags
branches
 Tag: label do repositório
Projeto 2 em algum momento do
trunk
tempo.
tags
branches

W W W. D O M I N A N D OT I .CO M . B R
Subversion – revisões

Cada transação
que altera o
repositório incrementa
o número da revisão.
W W W. D O M I N A N D OT I .CO M . B R
Subversion – workflow básico

cliente servidor
checkout

(desenvolvimento e testes)

update
(resolução de conflitos)
commit

W W W. D O M I N A N D OT I .CO M . B R
Frameworks:
Hibernate, Spring e Wicket
Professor Marcelo Pacote – marcelopacote@dominandoti.com.br

W W W. D O M I N A N D OT I .CO M . B R W W W. D O M I N A N D OT I .CO M . B R
Hibernate
Professor Marcelo Pacote – marcelopacote@dominandoti.com.br

W W W. D O M I N A N D OT I .CO M . B R W W W. D O M I N A N D OT I .CO M . B R
Hibernate

 Uma solução não invasiva para persistência de dados em


aplicações Java:
 Não é preciso aderir a padrões de design específicos
(como nas primeiras versões de EJB) para que uma
aplicação tenha os benefícios da persistência.
 Torna fácil adicionar persistência a objetos de aplicações
existentes.
 Uma das mais completas soluções de ORM.
 Open source.

Professor Marcelo Pacote - marcelopacote@dominandoti.com.br 33 W W W. D O M I N A N D OT I .CO M . B R


Hibernate (ORM)

 Object-Relational Mapping ou Mapeamento Objeto-Relacional.


 Existem diversas implementações de ORM.
 Objetivos:
 Preservar as vantagens do paradigma relacional (robustez,
maturidade, facilidade de pesquisa, etc.) para a camada de
persistência.
 Preservar as vantagens do paradigma orientado a objetos (reuso,
modularidade, herança etc.) para a camada de negócio.

Objetos Java Banco de Dados

Professor Marcelo Pacote - marcelopacote@dominandoti.com.br 34 W W W. D O M I N A N D OT I .CO M . B R


Hibernate

 Hibernate x SQL
 Hibernate gera código SQL e automatiza processos
trabalhosos
 HQL, linguagem de recuperação de dados, assemelha-se a
SQL.

Professor Marcelo Pacote - marcelopacote@dominandoti.com.br 35 W W W. D O M I N A N D OT I .CO M . B R


Persistência Orientada a Objetos

 Classes são mapeadas para tabelas.


 Instâncias (objetos) são mapeadas para registros.
Banco de Dados Relacional
Classe Conta
String codigo
String nome
double saldo
conta correntista saldo
1 Gargantua 1370 instância:Conta
2 Pantagruel 3450 codigo="4"
3 Gargamel 800 nome="Morticia"
4 Morticia 8200 saldo=8200

Tabela Conta

Professor Marcelo Pacote - marcelopacote@dominandoti.com.br 36 W W W. D O M I N A N D OT I .CO M . B R


Como mapear herança?

1) Uma tabela por classe concreta


 Dados não normalizados
 Depende de um UNION para consultas na superclasse.
 Ideal para hierarquias horizontais

2) Uma única tabela para toda hierarquia de classes


 Utiliza discriminator para diferenciar elementos da hierarquia.
 Queries são feitas em uma única tabela, que pode se tornar bastante grande.
 Modelo mais simples. Modelo default. Ideal para hierarquias com poucas
classes.

3) Uma tabela por classe da hierarquia


 Permite associações e consultas polimórficas
 Dados normalizados. Sempre realiza join.
 Usado em hierarquias de muitos níveis (verticais).

Professor Marcelo Pacote - marcelopacote@dominandoti.com.br 37 W W W. D O M I N A N D OT I .CO M . B R


Relacionamentos – a questão da carga de dados

Em atributos, associações e coleções em entidades é possível


especificar o tipo de carga inicial.

 Carga imediata (eager fetching)


 Default para one-to-one e many-to-one

 Carga preguiçosa (lazy fetching)


 Default para relacionamentos one-to-many e many-to-
many

Professor Marcelo Pacote - marcelopacote@dominandoti.com.br 38 W W W. D O M I N A N D OT I .CO M . B R


(MPU/2013/Cespe/Desv./105)

( ) O Hibernate sempre usa a estratégia de busca preguiçosa


para coleções que precisará buscar no banco de dados inteiro
da memória em cada transação, ou seja, são executas
consultas para cada entidade ou coleção associada ao mesmo
comando SELECT.

Professor Marcelo Pacote - marcelopacote@dominandoti.com.br 39 W W W. D O M I N A N D OT I .CO M . B R


Arquitetura

Fonte da imagem: http://www.tutorialspoint.com/hibernate/hibernate_architecture.htm

Professor Marcelo Pacote - marcelopacote@dominandoti.com.br 40 W W W. D O M I N A N D OT I .CO M . B R


Hibernate - Exemplo

1. Configurar conexão com banco de dados (exemplo: hibernate.cfg.xml)


2. Criar a tabela no banco de dados onde os objetos serão persistidos
(Tabela Cliente);
3. Criar a Classe cujo estado será persistido (Classe Cliente);
4. Criar um XML (ou anotações na classe Cliente) que relaciona as
propriedades do objeto aos campos na tabela (Cliente.hbm.xml);
5. Criar a classe DAO que vai persistir o objeto (Classe ClienteDAO).

Professor Marcelo Pacote - marcelopacote@dominandoti.com.br 41 W W W. D O M I N A N D OT I .CO M . B R


Conexão com banco de dados

Há três formas de realizar a conexão com banco de dados:


1. Arquivos de propriedades
- Arquivo hibernate.properties
2. Arquivo XML
- Arquivo hibernate.cfg.xml
3. Programaticamente
- Utilização da classe Configuration (org.hibernate.cfg.Configuration)

Professor Marcelo Pacote - marcelopacote@dominandoti.com.br 42 W W W. D O M I N A N D OT I .CO M . B R


Conexão – Arq. de configuração (hibernate.cfg.xml)

<?xml version='1.0' encoding='UTF-8'?>


<hibernate-configuration>
<session-factory>
<property name="connection.url">jdbc:postgresql://localhost/ex</property>
<property name="connection.driver_class">org.postgre.Driver</property>
<property name="dialect">org.hibernate.dialect.PostgreDialect</property>
<property name="connection.username">sa</property>
<property name="connection.password">etocap</property>
<property name="hibernate.show_sql">true</property>
<!– Mapeamento de entidades -->
<mapping resource=“br/gov/tcu/exemplo/Cliente.hbm.xml" />
</session-factory>
</hibernate-configuration>

Professor Marcelo Pacote - marcelopacote@dominandoti.com.br 43 W W W. D O M I N A N D OT I .CO M . B R


Classe a ser persistida

public class Cliente {


private Long id;
private String nome;
private Date dataNascimento;

public Cliente(String nome, Date dataNascimento) {


this.nome = nome;
this.dataNascimento = dataNascimento;
}

// métodos get/set
}

Professor Marcelo Pacote - marcelopacote@dominandoti.com.br 44 W W W. D O M I N A N D OT I .CO M . B R


Arquivo de mapeamento

<?xml version="1.0" encoding="UTF-8"?>


<hibernate-mapping>
<class name="Cliente" table=“TB_CLIENTE">
<id column="CLIENTE_ID" name="id" type="java.lang.Long">
<generator class="sequence"/>
</id>
<property column="NOME_COMPLETO" length="50" name="nome"
not-null="true" type="java.lang.String" />
<property column=“DT_NASC" name=“dataNascimento"
type="java.util.Date" />
</class>
</hibernate-mapping>

Professor Marcelo Pacote - marcelopacote@dominandoti.com.br 45 W W W. D O M I N A N D OT I .CO M . B R


Classe da aplicação

/* Método para criar um cliente no banco de dados */


public Integer incluirCliente (String nome, Date dataNascimento)
throws HibernateException{
Session session = factory.openSession();
Cliente cliente = new Cliente(nome, dataNascimento);
Transaction tx = session.beginTransaction();
Long clienteID = (Long) session.save(cliente);
tx.commit();
session.close();
}

Professor Marcelo Pacote - marcelopacote@dominandoti.com.br 46 W W W. D O M I N A N D OT I .CO M . B R


(Serpro/2013/Cespe/Desv./85)

( ) Em Hibernate, a configuração de conexões de banco de


dados deve ser feita somente por meio do uso de arquivo de
propriedade.

Professor Marcelo Pacote - marcelopacote@dominandoti.com.br 47 W W W. D O M I N A N D OT I .CO M . B R


Exercício [01] (SECONT-ES/2009/CESPE)

( ) O Hibernate, um framework de mapeamento objeto


relacional (ORM), cria uma camada de persistência na solução
desenvolvida, o que permite ligar os objetos aos bancos de
dados relacionais. Entre seus serviços, o Hibernate provê um
meio de se controlar transações, por meio de métodos de suas
interfaces session e transaction, tendo ainda suporte a herança.
É distribuído sob a licença LGPL, o que permite seu uso em
projetos comerciais ou open source.

Professor Marcelo Pacote - marcelopacote@dominandoti.com.br 48 W W W. D O M I N A N D OT I .CO M . B R


Exercício [02] (INMETRO/2009/CESPE)

( ) Considerando que para o uso da tecnologia Hibernate na


linguagem Java são empregados, usualmente, dois tipos de
arquivos: (i) configuração e (ii) mapeamento, sendo a lista a
seguir uma sequência de elementos XML utilizados na
tecnologia Hibernate: (a) hibernate-mapping (b) class; (c)
generator; (d) property; (e) session-factory; e (f) mapping, então,
uma associação adequada entre os elementos e o tipo de
arquivo Hibernate, no qual eles usualmente são empregados, é
a seguinte: {(a, ii), (b, ii), (c, i), (d, ii), (d, i), (e, i), (f, i)}.

Professor Marcelo Pacote - marcelopacote@dominandoti.com.br 49 W W W. D O M I N A N D OT I .CO M . B R


Consultas

 API Criteria
 Solução para criação dinâmica de consultas.

 HQL:
SELECT c.name, cta
FROM Conta cta JOIN cta.cliente c
WHERE c.cidade = :cidade

 É possível executar consultas SQL nativas

Professor Marcelo Pacote - marcelopacote@dominandoti.com.br 50 W W W. D O M I N A N D OT I .CO M . B R


Exercício [3] (TCU - AUDITOR/2010/CESPE) - adaptada

( ) A tecnologia Hibernate 3.5 possibilita a recuperação de


objetos por meio da formulação de queries em linguagens HQL
(hibernate query language) e SQL (structured query language),
bem como pelo uso de APIs (application programming
interfaces) de busca por critério, entre outras.

Professor Marcelo Pacote - marcelopacote@dominandoti.com.br 51 W W W. D O M I N A N D OT I .CO M . B R


Exercício [04] (TRE-BA/2010/CESPE)

( ) No Hibernate, apenas a linguagem de consulta HQL


(hibernate query language) pode ser utilizada. A HQL executa os
pedidos SQL sobre as classes de persistência do Java em vez
de tabelas no banco de dados, o que diminui a distância entre o
desenvolvimento das regras de negócio e o banco de dados.

Professor Marcelo Pacote - marcelopacote@dominandoti.com.br 52 W W W. D O M I N A N D OT I .CO M . B R


(Inpi/2013/Cespe/Desv./83, 85 )

( ) O objeto Session Factory do Hibernate mantém o


mapeamento objeto relacional na sessão.
( ) A interface Criteria do Hibernate é utilizada para realizar
consultas ao banco de dados.

Professor Marcelo Pacote - marcelopacote@dominandoti.com.br 53 W W W. D O M I N A N D OT I .CO M . B R


Hibernate - estados

* afetam todas as instâncias de uma sessão

Professor Marcelo Pacote - marcelopacote@dominandoti.com.br 54 W W W. D O M I N A N D OT I .CO M . B R


Exercício [05] (CEHAP/2009/CESPE)

No framework Hibernate, é comum que uma instância de uma


classe persistente tenha três estados específicos. Assinale a
opção que contém esses três estados.

a) plugged, disconnected, timewait


b) connected, disconnected, detached
c) transient, persistent, detached
d) transient, connected, timewait

Professor Marcelo Pacote - marcelopacote@dominandoti.com.br 55 W W W. D O M I N A N D OT I .CO M . B R


Exercício [6] (MPU-PERITO/2010/CESPE)

( ) Na instalação padrão do Hibernate, o trecho de código Java


abaixo permite a inserção de 200.000 linhas em uma tabela no
banco de dados.

Professor Marcelo Pacote - marcelopacote@dominandoti.com.br 56 W W W. D O M I N A N D OT I .CO M . B R


Gabarito dos Exercícios

(MPU/2013/Cespe/Desv./105) errado
(Serpro/2013/Cespe/Desv./85) errado
[01] certo
[02] errado
[03] certo
[04] errado
(Inpi/2013/Cespe/Desv./83, 85) cc
[05] certo
[06] errado

Professor Marcelo Pacote - marcelopacote@dominandoti.com.br 57 W W W. D O M I N A N D OT I .CO M . B R


Spring

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br

W W W. D O M I N A N D OT I .CO M . B R W W W. D O M I N A N D OT I .CO M . B R
O que é?

 Spring é um framework “leve” de inversão de controle(IOC) e


orientação a aspectos(AOP)
 Integra camadas da aplicação
 Reduz quantidade de código
 Aumenta testabilidade (menor acoplamento)
 Acelera desenvolvimento

 Pode ser utilizado na camada de apresentação, negócio e


persistência

W W W. D O M I N A N D OT I .CO M . B R
Mas o que é IOC?

Tradicional Spring

W W W. D O M I N A N D OT I .CO M . B R
Arquitetura

Professor Marcelo Pacote - marcelopacote@dominandoti.com.br 61 W W W. D O M I N A N D OT I .CO M . B R


Lightweight Container

Professor Marcelo Pacote - marcelopacote@dominandoti.com.br 62 W W W. D O M I N A N D OT I .CO M . B R


Wicket

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br

W W W. D O M I N A N D OT I .CO M . B R W W W. D O M I N A N D OT I .CO M . B R
O que é?

 Framework Java/Web orientado a componentes.


 Statefull
 Esconde do programador o fato de que HTTP é um protocolo sem estado

 Camada de apresentação unicamente em HTML


 Substituição de marcadores por dados especificados em código Java
 Java + HTML = Wicket

 Simplicidade: sem XML, sem arquivos de configuração.


 Suporte a internacionalização (i18N), segurança e AJAX

Professor Marcelo Pacote - marcelopacote@dominandoti.com.br 64 W W W. D O M I N A N D OT I .CO M . B R


Mais recursos

 Integração com frameworks Hibernate e Spring.


 Suporte a estratégias de tratamento do botão “voltar”
 Soluções para problema do submit duplicado
 Testabilidade
 Junit

Professor Marcelo Pacote - marcelopacote@dominandoti.com.br 65 W W W. D O M I N A N D OT I .CO M . B R


Exemplo de código

Java
add(new Label("mensagem", “DominandoTI!"));
+
<h1 wicket:id=“mensagem”>[texto aqui.]</h1>
=
HTML
<h1> DominandoTI !</h1>

Resultado

Professor Marcelo Pacote - marcelopacote@dominandoti.com.br 66 W W W. D O M I N A N D OT I .CO M . B R


Jee6 e servidores de aplicação
Jetty, WebSphere
Professor Marcelo Pacote – marcelopacote@dominandoti.com.br

W W W. D O M I N A N D OT I .CO M . B R W W W. D O M I N A N D OT I .CO M . B R
Introdução ao Java EE

 Trata-se de um padrão para desenvolvimento de aplicações


corporativas.
 “aplicações portáveis, robustas, extensíveis e seguras do
lado do servidor”.
 Teve início em 1997 com a especificação de Servlets e EJB
1.0. Em 2010 foi lançada a versão Java EE 6.
 Facilidade de desenvolvimento
 Aprendizado com as versões anteriores
 Melhorias propostas pela comunidade java

Professor Marcelo Pacote - marcelopacote@dominandoti.com.br 68 W W W. D O M I N A N D OT I .CO M . B R


Visão geral da arquitetura e contêiner Java EE

fonte: http://download.oracle.com/javaee/5/tutorial/doc/bnabo.html

Professor Marcelo Pacote - marcelopacote@dominandoti.com.br 69 W W W. D O M I N A N D OT I .CO M . B R


Componentes X Contêiner X Servidor de Aplicação

Servidor de
Aplicação

Contêiner
(EJB)

EJB
(componente)

Professor Marcelo Pacote - marcelopacote@dominandoti.com.br 70 W W W. D O M I N A N D OT I .CO M . B R


Principais componentes e APIs – J2EE

Fonte: http://java.sun.com/blueprints/guidelines/designing_enterprise_applications/platform_technologies/component/index.html

Professor Marcelo Pacote - marcelopacote@dominandoti.com.br 71 W W W. D O M I N A N D OT I .CO M . B R


Principais componentes e APIs – Java EE 6

fonte: http://www.theserverside.com/news/1373391/Dependency-Injection-in-Java-EE-6-Part-1

Professor Marcelo Pacote - marcelopacote@dominandoti.com.br 72 W W W. D O M I N A N D OT I .CO M . B R


Alguns servidores

 Jetty
 Container de Servlets/JSP, desenvolvido em Java.
 Open Source, suporte a WebSockets

 WebSphere
 Servidor de aplicação multiplataforma da IBM
 Certificado JavaEE 6

 Lightweight Containers
 Não depende de um servidor de aplicação.
 Spring (light) X EJB (heavy)

Professor Marcelo Pacote - marcelopacote@dominandoti.com.br 73 W W W. D O M I N A N D OT I .CO M . B R


Concordion, Selenium, JSON e HTML5

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br

W W W. D O M I N A N D OT I .CO M . B R W W W. D O M I N A N D OT I .CO M . B R
Final thoughts

 Selenium
 Framework de testes funcionais

 Concordion
 Framework de testes de aceitação

 HTML 5
 JSON
 Formato de representação de dados
 JSON x XML

Professor Marcelo Pacote - marcelopacote@dominandoti.com.br 75 W W W. D O M I N A N D OT I .CO M . B R

Potrebbero piacerti anche