tdc framework matrix

Propaganda
Comparativo de frameworks:
O mapa da mina
Vinicius Senger
[email protected]
vsenger.blogspot.com
Alberto J Lemos (Dr. Spock)
Instrutor Globalcode
Melissa Villela
Instrutora Globalcode
1
Globalcode – Open4Education
Arquiteturas Corporativas
> Após 10 anos de desenvolvimento Web com
Java, podemos resumir as arquiteturas:
1.
2.
3.
4.
5.
6.
7.
8.
9.
2
JSP-Centric;
MVC proprietário com JSP;
Struts 1.x isolado;
JSF 1.x isolado;
Shale;
Spring com Struts;
Spring com JSF;
JBoss Seam;
Quase todas podem usar ou não EJB’s
Globalcode – Open4Education
Arquiteturas Corporativas
> Diversos conflitos foram superados e novas
idéias aceitas:
>
>
>
>
>
>
>
>
>
3
Listeners Web;
Anotações e Aspectos;
Persistência;
Linguagem para camada view;
Produtividade;
Injeção de dependência;
EJB ou não?
Scripting languages;
OSGi;
Globalcode – Open4Education
Arquiteturas Corporativas
> Arquiteturas atuais mais adotadas são:
> JSF puro com alguns patterns;
> Seam / JSF / EJB;
> Spring / JSF / Hibernate;
> Arquiteturas legadas mais populares são:
> Struts 1.x;
> Shale;
> Frameworks proprietários baseados em MVC com
Servlets e JSPs;
4
Globalcode – Open4Education
Arquiteturas Corporativas
> Independente do que vai decidir, sugerimos
esta lista de adoções obrigatórias:
>
>
>
>
>
>
>
>
5
JSF;
Richfaces;
JPA com Hibernate;
Facelets e XHTML;
Message-driven bean;
Eclipse ou Netbeans;
JUnit, Seleniun e Fitnesse para testes;
Se estiver sem banco, MySQL;
Globalcode – Open4Education
Arquiteturas Corporativas
> Bons programadores e arquitetos ajudam um
bocado!
6
Globalcode – Open4Education
Arquiteturas Corporativas
> Vamos propor uma matriz de arquiteturas
contemplando as seguintes opções:
>
>
>
>
>
>
7
Framework caseiro;
Struts;
Shale;
JSF puro;
Spring com JSF;
JBoss Seam;
Globalcode – Open4Education
Framework caseiro
> Grande benefício para o profissional que
desenvolve;
> Quase nenhum benefício para project owner;
> Isolava a solução das guerras de frameworks de
2000-2006;
> Não tem nenhum sentido para uma nova
solução;
8
Globalcode – Open4Education
Struts
>
>
>
>
>
>
>
>
9
Nasceu em 2002 com o Java EE 1.2;
Não contava com listener;
Não contava com intercepting filter;
Popularizou muito o padrão MVC;
Orientado por Action;
Foi muito melhorado nas versões 1.2 e 1.3;
Projeto desacelerado em função de JSF;
Struts não é dificil, mas... Struts + Tiles +
Validator + Hibernate + Log4J
Globalcode – Open4Education
Struts
>
>
>
>
10
Não justifica mais para projetos novos;
Deve ser respeitado como um legado;
Contribuiu para o que temos hoje;
Atualmente um grande número de profissionais
conhecem Struts;
Globalcode – Open4Education
Shale
> É um framework web, baseado em JavaServer
Faces
> Sua arquitetura é composta por diversos
serviços independentes
11
Globalcode – Open4Education
Shale
> Estes serviços podem ser unificados de acordo
com as necessidades particulares da sua
aplicação
> Event callbacks
> Conversation scope
> Clay (view technology)
> Configurações baseadas em anotações
> Suporte para remoting
12
Globalcode – Open4Education
Shale
> Integração para outros frameworks para facilitar
o desenvolvimento quando é necessário utilizar
outras tecnologias
> OSGI? Não
> IDEs? Plugins pro eclipse
> JCP? Não
> MVC? Sim
> Múltiplos frameworks? JNDI, Tiles, Spring
> Curva aprendizado? Simples
13
Globalcode – Open4Education
Shale
>
>
>
>
>
>
>
>
>
14
Profissionais de mercado? Pouco
Web 2.0? Sim
Aspectos? Não
Testes? Sim, compatibilidade com Selenium
Remoting? Sim
Web Services? Não
Rest? Não
Suporte no Brasil? Nenhum
Suporte da comunidade? Muito pouco
Globalcode – Open4Education
Spring
> Moderno e em constante ascensão nos últimos
dois anos;
> Nasceu como uma alternativa para EJBs;
> Grande ênfase em injeção de dependência e
aspectos;
> Exemplo Alfresco;
15
Globalcode – Open4Education
Spring
> Profissionais de mercado? iguala ao número
para EJB
> Web 2.0? Sim
> Aspectos? Sim
> Testes? Sim, compatibilidade com Selenium
> Remoting? Sim
> Web Services? Sim
> Rest? Sim
> Suporte no Brasil? Nenhum
> Suporte da comunidade? Bastante
16
Globalcode – Open4Education
Spring
>
>
>
>
OSGI? Sim
IDEs? Eclipse / NetBeans
JCP? Não
MVC? Sim, implementação própria ou permite
usar Struts / JSF;
> Múltiplos frameworks? Ampla gama de opções
além do portfolio proprietário;
> Curva aprendizado? Container = fácil, AOP =
médio / avançado;
17
Globalcode – Open4Education
Seam
>
>
>
>
>
>
18
OSGI? Ainda não nativo;
IDEs? Eclipse Europa + JBoss tools
JCP? Sim, WebBeans, Java EE 7
MVC? Sim, uso aprimorado do JSF;
Múltiplos frameworks? Integra-se com Spring;
Curva aprendizado? Fácil de aprender, mas
pode-se passar por situações dificeis;
Globalcode – Open4Education
Seam
> Profissionais de mercado? Poucos, mas JSF +
EJB é 80% do caminho;
> Web 2.0? Sim
> Aspectos? Sim
> Testes? Sim
> Remoting? Sim
> Web Services? Sim
> Rest? Sim
> Suporte no Brasil? Sim, via RedHat
> Suporte da comunidade? Algum
19
Globalcode – Open4Education
Qual é o seu framework?
> Usamos Struts e não poderemos migrar as
aplicações em curto prazo. Gostaria de um
framework que mantivesse compatibilidade com
Struts e ofereça recursos modernos.
20
Globalcode – Open4Education
Qual é o seu framework?
> SPRING
21
Globalcode – Open4Education
Qual é o seu framework?
> Nossa empresa precisa de uma plataforma
robusta, escalável e um framework para Web
2.0 que permita construção “instantânea” de
aplicativos como Rails, mas também permita
construção de aplicativo com EJBs quando
necessário.
22
Globalcode – Open4Education
Qual é o seu framework?
> Jboss Seam
23
Globalcode – Open4Education
Qual é o seu framework?
> Acabamos de aprender Java e Java para Web.
Vamos fazer nossa primeira solução na
empresa. Queremos uma arquitetura mais
simples, mas que permita o reuso dos seus
componentes fundamentais no futuro, em
arquiteturas mais robustas..
24
Globalcode – Open4Education
Qual é o seu framework?
> JSF + JPA com DAO e isolamento Web dos
backing beans JSF;
25
Globalcode – Open4Education
Qual é o seu framework?
> Precisamos de uma arquitetura com AJAX que
permita o disparo de multiplas buscas dentro da
mesma janela do navegador. A medida que as
respostas chegarem um painel da página HTML
deve ser re-renderizado com os novos dados
que chegaram por AJAX. Quero alta
confiabilidade na recepção das requesições de
pesquisa do usuário.
26
Globalcode – Open4Education
Qual é o seu framework?
> Back-end de pesquisas: JMS, MDB, JPA, JTA
> Front-end: Spring ou Seam, com Richfaces /
JSF
27
Globalcode – Open4Education
Qual é o seu framework?
> Obrigatoriamente queremos suporte no
framework escolhido.
> Seam.
28
Globalcode – Open4Education
Qual é o seu framework?
> Quero escolher o framework que tenha pelo
menos 2 IDEs com suporte concreto para o
framework:
> Spring.
29
Globalcode – Open4Education
Qual é o seu framework?
> Para o público, qual é o seu framework?
30
Globalcode – Open4Education
Download