14/10/2010 Cleidimar Vieira – Framework JGenesis 1
JGenesis – Aplicações Java/Swing Fácil e
Rápido
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.
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
14/10/2010 Cleidimar Vieira – Framework JGenesis 4
Tudo começou...
Idealizador: Marcos Aurélio Mendes Moura
Equipe 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.
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.
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
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 );
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
14/10/2010 Cleidimar Vieira – Framework JGenesis 9
Integração com outros softwares
Log4J
C3P0
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 );
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.
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;
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,
14/10/2010 Cleidimar Vieira – Framework JGenesis 14
O que é preciso para usar?
14/10/2010 Cleidimar Vieira – Framework JGenesis 15
14/10/2010 Cleidimar Vieira – Framework JGenesis 16
14/10/2010 Cleidimar Vieira – Framework JGenesis 17
14/10/2010 Cleidimar Vieira – Framework JGenesis 18
Componentes no Servidor
CAMADA MODELO
JgenesisDAO – interface de acesso a dados, encapsula CRUD;
BasicHibernateDAO - Impl. JGenesisDAO, utiliza o Hibernate;
BasicJdbcDAO - Impl. JGenesisDAO, utiliza o JDBC;
CAMADA CONTROLE
JgenesisBO 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 );
14/10/2010 Cleidimar Vieira – Framework JGenesis 19
Componentes no Servidor
CAMADA CONTROLE - SimpleBO
Mé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;
14/10/2010 Cleidimar Vieira – Framework JGenesis 20
Componentes no Cliente
CAMADA VISÃO
PersistentBD - 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
14/10/2010 Cleidimar Vieira – Framework JGenesis 21
BD
BeanManager
Data Access Object
Servidor
Modelo
Bussiness Delegate
Cliente
Visão
Bussiness Object
Servidor
Controle
DAO BO
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.
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;
14/10/2010 Cleidimar Vieira – Framework JGenesis 24
Componentes Swing
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âmetros
como nome e parâmetros;
14/10/2010 Cleidimar Vieira – Framework JGenesis 26

Framework JGenesis

  • 1.
    14/10/2010 Cleidimar Vieira– Framework JGenesis 1 JGenesis – Aplicações Java/Swing Fácil e Rápido
  • 2.
    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.
  • 3.
    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
  • 4.
    14/10/2010 Cleidimar Vieira– Framework JGenesis 4 Tudo começou... Idealizador: Marcos Aurélio Mendes Moura Equipe 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.
  • 5.
    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.
  • 6.
    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
  • 7.
    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 );
  • 8.
    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
  • 9.
    14/10/2010 Cleidimar Vieira– Framework JGenesis 9 Integração com outros softwares Log4J C3P0
  • 10.
    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 );
  • 11.
    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.
  • 12.
    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;
  • 13.
    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,
  • 14.
    14/10/2010 Cleidimar Vieira– Framework JGenesis 14 O que é preciso para usar?
  • 15.
    14/10/2010 Cleidimar Vieira– Framework JGenesis 15
  • 16.
    14/10/2010 Cleidimar Vieira– Framework JGenesis 16
  • 17.
    14/10/2010 Cleidimar Vieira– Framework JGenesis 17
  • 18.
    14/10/2010 Cleidimar Vieira– Framework JGenesis 18 Componentes no Servidor CAMADA MODELO JgenesisDAO – interface de acesso a dados, encapsula CRUD; BasicHibernateDAO - Impl. JGenesisDAO, utiliza o Hibernate; BasicJdbcDAO - Impl. JGenesisDAO, utiliza o JDBC; CAMADA CONTROLE JgenesisBO 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 );
  • 19.
    14/10/2010 Cleidimar Vieira– Framework JGenesis 19 Componentes no Servidor CAMADA CONTROLE - SimpleBO Mé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;
  • 20.
    14/10/2010 Cleidimar Vieira– Framework JGenesis 20 Componentes no Cliente CAMADA VISÃO PersistentBD - 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
  • 21.
    14/10/2010 Cleidimar Vieira– Framework JGenesis 21 BD BeanManager Data Access Object Servidor Modelo Bussiness Delegate Cliente Visão Bussiness Object Servidor Controle DAO BO
  • 22.
    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.
  • 23.
    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;
  • 24.
    14/10/2010 Cleidimar Vieira– Framework JGenesis 24 Componentes Swing
  • 25.
    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âmetros como nome e parâmetros;
  • 26.
    14/10/2010 Cleidimar Vieira– Framework JGenesis 26