framework jgenesis

26
14/10/2010 Cleidimar Vieira – Framework JGenesis 1 JGenesis – Aplicações Java/Swing Fácil e Rápido

Upload: comunidade-ta-safo

Post on 26-Dec-2014

981 views

Category:

Technology


3 download

DESCRIPTION

Apresentação realizada pela Cleidimar Vieira no encontro #tasafoemacao #misturado no auditório do CESUPA no dia 14 de Outubro de 2010

TRANSCRIPT

Page 1: Framework JGenesis

14/10/2010 Cleidimar Vieira – Framework JGenesis 1

JGenesis – Aplicações Java/Swing Fácil e Rápido

Page 2: Framework JGenesis

14/10/2010 Cleidimar Vieira – Framework JGenesis 2

Introdução

O uso de frameworks em software é a saída mais lucrativa para desenvolvedores e empresas.

Tudo para ontem, gastando pouco, equipe pequena e sistema tem que funcionar.

Page 3: Framework JGenesis

14/10/2010 Cleidimar Vieira – Framework JGenesis 3

Roteiro

• Tudo começou...• O que é?• Nossa aplicação• Integração com outros frameworks• Integração com outros softwares• Vantagens de usar• O que é preciso para usar?• Componentes (Servidor, Cliente e Swing)• NamedQueries

Page 4: Framework JGenesis

14/10/2010 Cleidimar Vieira – Framework JGenesis 4

Tudo começou...

Idealizador: Marcos Aurélio Mendes MouraEquipe de desenvolvimento: Fabrício Barroso de Carvalho e Regis Pires Magalhães

Equipe Técnica: Cledson Santos, Cleidmar Vieira, Diogo Emílio, Leandro Henrriques, Marcelo Giovani, Michell Jaim, Luis Renato

Desafios: Agradar a empresa e a equipe técnica.

Page 5: Framework JGenesis

14/10/2010 Cleidimar Vieira – Framework JGenesis 5

O que é?

É uma framework que provê uma arquitetura genérica de desenvolvimento de aplicações corporativas de alta-escalabilidade, cliente/servidor, com padrão MVC.

Desenvolvida em Java, seu foco principal, hoje, é o Desktop, mas pode ser utilizada em WEB.

Open-source e free.

Page 6: Framework JGenesis

14/10/2010 Cleidimar Vieira – Framework JGenesis 6

Nossa aplicação

• 259 classes no BO (186 BasicBOImpl e 69 SimpleBOImpl)• 23 interfaces no DAO• 10 classes concretas DAO ORM• 19 classes concretas DAO JDBC• 403 classes no GUI• 168 classes no factory de relatórios• 635 classes jasper• 232 classes bean• 9 classes bean “mãe” e 28 subclasses• 20 sistemas desenvolvidos

Page 7: Framework JGenesis

14/10/2010 Cleidimar Vieira – Framework JGenesis 7

Nossa aplicação

• Estados do Pará, Piauí, Maranhão, Manaus, São Paulo;• Empresas: Armaém Paraíba (Socic e Metidieri) e Lojas

Rianil, Louvre Magazine, Rápido London, Cartão CredShop;• Comunicação via frame-relay, rádio, internet;• Sistema híbrido ( ZIM e Java );

Page 8: Framework JGenesis

14/10/2010 Cleidimar Vieira – Framework JGenesis 8

Integração com outros frameworks

Container com diversos serviços:Padrão de Projeto Inversion-of-Control(IoC) / Dependency Injection;Controle de Transaction;Acesso remoto;

O objetivo do Hibernate é diminuir a complexidade entre os programas Java, baseado no modelo orientado a objeto, que precisam trabalhar com um banco de dados do modelo relacional.O JGenesis provê a implementação básica para a camada de acesso a dados (DAO) através do Hibernate.

JPA Uso de Annotations

Page 9: Framework JGenesis

14/10/2010 Cleidimar Vieira – Framework JGenesis 9

Integração com outros softwares

Log4JC3P0

Page 10: Framework JGenesis

14/10/2010 Cleidimar Vieira – Framework JGenesis 10

Vantagens de usar

É open-source e “De grátis”;

Todas as vantagens do Java;

Suporta vários bancos de dados;

Configurações em arquivos xml;

Provê um pool de conexões;

Arquitetura Client/Server (3-tier); ( RMI, Hessian ou HTTP )

Uso Design Pattern BD, DAO e BO ( MVC );

Vários componentes Swing ( automatizados );

Page 11: Framework JGenesis

14/10/2010 Cleidimar Vieira – Framework JGenesis 11

Vantagens de usar

Equipe de desenvolvimento focada. ( não na infra-estrutura por trás do desenvolvimento);

Reduz esforços de codificação;

Aumenta a produtividade;

Reduz a possibilidade de erros;

Torna a arquitetura da aplicação homogênea, facilitando sua manutenção.

Page 12: Framework JGenesis

14/10/2010 Cleidimar Vieira – Framework JGenesis 12

O que é preciso para usar?

Conhecimento em OO, Java, Annotation ou xml, Design Pattern;

Conhecer o JGenesis;

Configurar os arquivos xml especfíficos:

jgenesis.xml, jgenesis-bo.xml e hibernate.cfg.xml;

Acoplar o módulo ao NetBeans;

Ter um banco de dados;

Page 13: Framework JGenesis

14/10/2010 Cleidimar Vieira – Framework JGenesis 13

O que é preciso para usar?

Bibliotecas dos “parceiros”;jgenesis.xml - Declara os (data sources), as fábricas de sessões (hibernate), os DAOs e o query loader (data sources de queries).jgenesis-bo.xml - Declara os BOs e alguns parâmetros para a comunicação remota (RMI ou HTTP). hibernate.cfg.xml - Configuração da fábrica de sessão e arquivos de mapemento dos Beans ( xml ou annotation )log4j.properties – Configuração da propriedades da API de logging Log4j,

Page 14: Framework JGenesis

14/10/2010 Cleidimar Vieira – Framework JGenesis 14

O que é preciso para usar?

Page 15: Framework JGenesis

14/10/2010 Cleidimar Vieira – Framework JGenesis 15

Page 16: Framework JGenesis

14/10/2010 Cleidimar Vieira – Framework JGenesis 16

Page 17: Framework JGenesis

14/10/2010 Cleidimar Vieira – Framework JGenesis 17

Page 18: Framework JGenesis

14/10/2010 Cleidimar Vieira – Framework JGenesis 18

Componentes no Servidor

CAMADA MODELOJgenesisDAO – interface de acesso a dados, encapsula CRUD;BasicHibernateDAO - Impl. JGenesisDAO, utiliza o Hibernate;BasicJdbcDAO - Impl. JGenesisDAO, utiliza o JDBC; CAMADA CONTROLEJgenesisBO e SimpleBO - Interfaces para a lógica de negócio; SimpleBOImpl – Impl. SimpleBO (métodos doRequest e doAction);BasicBOImpl - Impl. JGenesisBO com o básico que um BO deve oferecer (actions save, update, delete, find );

Page 19: Framework JGenesis

14/10/2010 Cleidimar Vieira – Framework JGenesis 19

Componentes no Servidor

CAMADA CONTROLE - SimpleBOMétodo doRequest – é o início do tráfego cliente/BO.JGRequest – Objeto que transmite informações do cliente que serão usada no BO;JGResponse – Objeto usado para transportar as informações do BO para o cliente;Método doAction – Semelhante do doRequest, porém pode ser usado no BO;JGContext – Contêiner de objetos e parâmetros em qualquer ponto do BO;InfoBO - Interface com métodos com informações do servidor; InfoBOImpl - Impl. InfoBO;

Page 20: Framework JGenesis

14/10/2010 Cleidimar Vieira – Framework JGenesis 20

Componentes no Cliente

CAMADA VISÃOPersistentBD - Impl. padrão Business Delegate, utilizado pelo cliente para invocar métodos (que podem ser, inclusive, remotos)do BO;

BeanWrapper -Pode ser usado tanto no cliente como no servidor. Encapsula o bean

Page 21: Framework JGenesis

14/10/2010 Cleidimar Vieira – Framework JGenesis 21

BD

BeanManager

Data Access ObjectServidorModelo

Bussiness DelegateClienteVisão

Bussiness ObjectServidorControle

DAO BO

Page 22: Framework JGenesis

14/10/2010 Cleidimar Vieira – Framework JGenesis 22

Componentes Swing

BeanManager - Responsável por gerenciar objetos de uma classe persistente, em outras palavras, de um Bean. Ele aciona a lógica de negócio (JGenesisBO) através do PersistentBD; É o elo principal entre as camadas do processo;É atributo essencial aos componentes Swing;Está associado a um bean;Pode estar associado ao um BO ( senão pega o default );Através do JGBeanNavigator aciona as actions do BO.

Page 23: Framework JGenesis

14/10/2010 Cleidimar Vieira – Framework JGenesis 23

Componentes Swing

JGBeanNavigator - Barra de ferramentas para gerir o bean;JGButtonPanel – Botões variados;BeanSetTableManager - Responsável por gerenciar objetos uma tabela (JTable) de beans; JGStatusBar - Uma barra de status que exibe o Tooltip do componente em foco no formulário, e uma barra de progresso.JGFindBean - Jjanela de buscas; JGFindButton - Invoca uma janela de consulta JGFindBean; JGFindTextField - Consulta por um atributo do bean;JGTextField e "sua turma mascarada" - São caixa de texto;(JGMaskTextField, JGNumberTextField, JGDateTextField)JGComboBox e JGLookupComboBox – Combobox;JGOptionPane – Janelas de diálogos;

Page 24: Framework JGenesis

14/10/2010 Cleidimar Vieira – Framework JGenesis 24

Componentes Swing

Page 25: Framework JGenesis

14/10/2010 Cleidimar Vieira – Framework JGenesis 25

Named queries

Declaração de um query loader no jgenesis-bo.xml;Queries no banco de dados através do FqueryMain;Chamada a query do banco através de parâmetroscomo nome e parâmetros;

Page 26: Framework JGenesis

14/10/2010 Cleidimar Vieira – Framework JGenesis 26