DES:vRaptorExtJs

(Diferença entre revisões)
Ir para: navegação, pesquisa
(Padronizações ExtJS)
(Componentes)
Linha 203: Linha 203:
 
Campos Básicos
 
Campos Básicos
 
<ul>
 
<ul>
  <li>Ext.form.'''TextField:''' char,varchar  - Strings menores
+
  <li>Ext.form.'''TextField:''' char,varchar  - Strings menores :: padrão de nome: '''ft'''
 
  <li>Ext.form.'''DateField:''' datetime - Campo de data com calendário para escolha
 
  <li>Ext.form.'''DateField:''' datetime - Campo de data com calendário para escolha
 
  <li>Ext.form.'''TextArea:''' text,char,varchar - Strings maiores
 
  <li>Ext.form.'''TextArea:''' text,char,varchar - Strings maiores

Edição de 11h12min de 9 de julho de 2013

VoltarVoltar a Página Inicial - Menu Sistemas



Tabela de conteúdo

Introdução

Este documento descreve os padrões de desenvolvimento dos sistemas que utilizam a tecnologia vRaptor+ExtJS

Documentação Externa

ExtJS

vRaptor

Sistemas que utilizam esta Tecnologia

Sistema		ExtJs		Status
Academus	4.1 MVC		Producao/Desenvolvimento
Almox		3		Producao
Login		4.1		Producao
Minos           4.1 MVC         Producao
Osiris		4.1		Producao
SGA		3		Producao
SGC		3		Producao
SGCCR		4.1 MVC		Producao
SGCV		3		Producao
SGE		3		Producao
SGPDE		4.1 MVC		Producao
SGPibic         4.1 MVC         Desenvolvimento
SGPPLS		4.1 MVC		Producao
SGPStricto	3		Producao/Desenvolvimento
SGRD		4.1		Producao/Desenvolvimento (Atualizando para 4.1 MVC)
SGT		3		Producao

Parados:
Pontus-Web	3		
SGEM		4.1		
SGLCC		4.1		
SGPE		4.1		

Árvore de diretorios de um projeto vRaptor+ExtJs

  • build
  • conf
  • dist
  • nbproject
  • setup
  • src
    • baseconfig.properties - Arquivo de Configurações Gerais (Conexão com Banco,diretórios,etc)
    • br
      • unioeste
        • projeto
          • controller - Controladores de acesso da visão
          • dao - Objetos de acesso aos dados
          • modelo - Modelos das Entidades do Banco de Dados
          • sessions
            • CriadorDeSessionFactoryConfiguracoes.java - Arquivo de Configurações do Hibernate
        • sharedev - Classes Java compartilhadas entre todos projetos
  • web
    • META-INF
      • MANIFEST.MF
      • context.xml - Configuração do contexto (diretório principal)
    • WEB-INF
      • jsp
        • index
          • genericJson.jsp - Página especial que retorna respostas em formato Json
          • index.jsp - Página inicial que requisita os arquivos JavaScript do projeto
          • index2.jsp - Página especial mostrada quando a conexão é fechada, ou o login não foi possível
      • lib - Bibliotecas (jars) compartilhados entre todos os projetos
      • relatorios - Contem os relatórios na fase de Desenvolvimento (diretório e subdiretórios gerados automaticamente)
      • messages.properties
      • web.xml - Configurações do servidor de aplicação
    • ext - Arquivos da Biblioteca ExtJs
    • icons - Ícones
    • images - Imagens
    • js
      • frmCadastro
      • frmGeral
      • frmPesquisa
      • uteis - Arquivos JavaScript compartilhados entre todos os projetos
      • frmPrincipal.js - Configurações de Construção do menu do sistema e requisições iniciais


Legenda:

  • diretorio - Diretório de arquivos compartilhados por todos os projetos por meio do SVN.
  • arquivo.extensao - Arquivo de configuração. Importante para o funcionamento do sistema.
  • diretorio - Diretório que contem os principais arquivos da aplicação.
  • arquivo.extensao - Arquivo do projeto
  • diretorio - Diretorio do projeto


Bibliotecas Java

Nome Descrição Pacotes Dependências/Relacionadas
vraptor Framework MVC vraptor
jasper Geração de relatórios jasperreports,itext,commons-digester,groovy-all,fntArial
hibernate Framework de Persistência de Dados hibernate,ejb3-persistence,hibernate-annotations,hibernate-validator¹
flexson Serialização de objetos java para json flexjson
jtds Conexão com o banco de dados jtds
mail Envio de emails mail
gsp Parser de sql gsp
commons-io Utilidades para streams e arquivos commons-io

1 - Usado em pouquíssimos lugares, poderia remover

Atualização do Projeto

Quando for atualizar o projeto, alguns arquivos locais não compartilhados talvez precisem ser atualizados. Estes arquivos precisam estar atualizados e conforme os padrões para que o sistema interaja corretamente. Estes arquivos são em geral configurações que são diferentes para cada projeto, mas dentro de um padrão. Os arquivos são modificados ocasionalmente/raramente.

  • index.jsp (novos arquivos JS compartilhados; atualização de forma de login) - ocasionalmente
  • CriadorDeSessionFactoryConfiguracoes.java (novos beans compartilhados; atualização de forma de login) - ocasionalmente
  • frmPrincipal.js (atualização da viewport principal ou na forma de login) - ocasionalmente
  • bibliotecas do projeto (novas bibliotecas compartilhadas) - ocasionalmente
  • basesconfig.properties (modificação das configurações gerais: conexão com banco, diretórios, etc) - ocasionalmente
  • index2.jsp (modificação na página de logout ou página de sessão expirada/erro) - raramente
  • genericJson.jsp (modificação na forma de responder objetos JSON) - raramente
  • web.xml (modificação das configurações do servidor de aplicação) - raramente

Padronizações vRaptor

Nomes de Métodos dos Controladores

Os nomes de métodos devem seguir um padrão para serem identificados pelo controle de transações e de acesso.

  • Métodos que farão escrita no banco de dados, devem iniciar por: adiciona, atualiza ou remove. Exemplos:
    • adiciona
    • atualiza
    • atualizaEstadosEMunicipios
    • removeTodosMunicipios
  • Outros métodos, de leitura, devem iniciar preferencialmente por nomes como: lista, verifica, carrega. Exemplos:
    • verifica
    • lista
    • listaTudo
    • listaPorEstado
    • listaTudoPorEstado
    • carregaDadosPrincipais


Padronizações ExtJS

Tamanhos das Janelas

Para a exibição correta das janelas (considerando resolução 1024x768), os tamanhos devem estar entre:

  • Largura: Mínimo de 500 e Máximo de 700
  • Altura: Mínimo de 100 e Máximo de 500

Componentes

Campos Básicos

  • Ext.form.TextField: char,varchar - Strings menores :: padrão de nome: ft
  • Ext.form.DateField: datetime - Campo de data com calendário para escolha
  • Ext.form.TextArea: text,char,varchar - Strings maiores
  • Ext.form.NumberField: decimal, int - Números inteiros ou decimais (com/sem separação de casas)
  • Ext.form.CheckBox: bool - Boleanos (Sim/Não) (pode ser usado também com char (Ex: 'T','F') desde que seja feito um campo bolean transient no modelo da entidade)
  • Ext.form.Radio: int,char,varchar - Strings ou números de identificação (poucas opções para ser uma nova tabela)
  • Ext.ux.MoneyField: money - Dinheiro no formato 50.000,00
  • Ext.form.HtmlEditor: text,char,varchar - Editor de Código HTML
  • Ext.form.SliderField: int,decimal - Números inteiros ou decimais entre um intervalo

Campos Avançados

  • Ext.form.ComboBox: campo FK (int,char,varchar) com uma descrição (char,varchar) - Usado para poucos registros
  • UxBscGenerico: campo FK (int,char,varchar) com uma descrição (char,varchar) - Usado para vários registros
  • Ext.form.TextFieldRemoteVal: int,char,varchar - Campo que faz a validação remotamente
  • Ext.ux.form.FileUploadField: image,blob - Upload de arquivo único
  • AwesomeUploader: image,blob - Upload de vários arquivos

Campos Especiais

  • Ext.form.DisplayField: int,char,varchar - Campo não submetido e não validado
  • Ext.form.Hidden: int,char,varchar,datetime,money,decimal,text - Campo escondido de qualquer tipo que será submetido

Outros Componentes

  • UxCdsGenerico: Janela de cadastro genérica
  • UxPsqGenerico: Janela de pesquisa genérica
  • UxGrdDuplo: Painel com grid duplo (filtrados/selecionados)

Nomenclatura

  • Campos de tela: Utilizar o padrão de prefixo corresponde ao campo que se está utilizando concatenado ao nome do campo no model. Exemplo: objeto Ext.form.TextField para edição de um campo pssFscNome: deve-se colocar o prefixo ft concatenado ao nome do campo pssFscNome, resultando no nome ftPssFscNome

Funcionamento do Controle de Acesso/Transações

vRaptor

Para que um controlador tenha seus métodos verificados pelo controle de acesso, a classe deve ter a seguinte anotação:

...
@Resource
@TrnName(value = "CodigoDaTransacaoDoControleDeAcesso")
public class NomeDaEntidadeController {
...

ExtJs

Para que uma Tela/Transação apareça no menu do sistema e seja verificada pelo controle de acesso, é necessário que o parâmetro id do item de menu seja igual ao código da transação cadastrada no controle de transações.

...
var nomeDaVariavel_ItemDeMenu = new Application.SubMenuTreeNode({
    text:'Nome do Item de Menu',
    id: 'CodigoDaTransacaoDoControleDeAcesso',
    listeners: {
        click: function(){
            appViewPort.addWindow(fQueRetornaAJanelaCorrespondenteAoItemDeMenu());
        }
    }
});
...

Servidores Tomcat

Nossa estrutura consiste de:

  • Um servidor para as aplicações (200.201.88.170), rodando com Linux Ubuntu e Tomcat 7
  • Dois servidores para os relatórios, em cluster (200.201.88.171 e 200.201.88.172), rodando com Linux Ubuntu e Tomcat 7
  • O cluster é implementado com o HAProxy
  • Nos servidores em cluster, a pasta de deploy é compartilhada (o 171 é a matriz); dessa forma, o deploy feito em um servidor automaticamente é feito no outro também
  • A pasta de configuração dos sistemas é um link simbólico para o servidor 170, ou seja, essa pasta fica compartilhada entre todos os 3 servidores

Links para configuração do JDK da Oracle:
http://www.magentodeveloperleedsuk.co.uk/installing-oracle-java-jdk-7-on-ubuntu-12-04-step-by-step/
Após instalar a nova JDK, remover a OpenJDK: sudo apt-get remove --purge openjdk-*
https://issues.apache.org/jira/browse/CASSANDRA-4275

Alterações para execução do projeto no JBoss 7

Para implantar o projeto no JBoss 7 é necessário ajustar o sistema para que o VRaptor faça um scan estático das classes. Isso significa que o VRaptor fará o mapeamento das classes anotadas antes da primeira subida do projeto. Isso deixa a subida mais lenta, mas posteriormente o sistema executa mais rapidamente, pois o scan não precisará mais ser feito.
Para que o scan estático funcione, é necessário incluir o seguinte trecho no arquivo nbbuil.xml do projeto no Netbeans (o arquivo pode ser localizado acessando a aba "Arquivos"):

...
    <target name="-post-compile">
        <path id="build.classpath">
            <fileset dir="build/web/WEB-INF/lib" includes="*.jar" />
        </path>

        <java classpathref="build.classpath" classname="br.com.caelum.vraptor.scan.VRaptorStaticScanning" fork="true">
            <arg value="build/web/WEB-INF/web.xml" />
            <classpath refid="build.classpath" />
            <classpath path="build/web/WEB-INF/classes" />
        </java>
    </target>
...


Monitoramento do JBoss 7 utilizando o "Applications Manager 10", da empresa ManageEngine

To monitor JBoss, the http-invoker.sar should be deployed in the JBoss Server. The application (http-invoker.sar) is by default deployed in the JBoss server.

If the http port of the JBoss server is changed then the port number in the attribute InvokerURLSuffix should also be modified in jboss-3.2.0/server/default/deploy/http-invoker.sar/META-INF/jboss-service.xml file.More Info>>

To monitor JBoss 5.0.0 version and above jbossagent.sar should be deployed in JBoss server. To deploy follow the steps below Copy jbossagent.sar from location <Applications Manager home>/working/resources and paste under <JBOSS_HOME>/server/default/deploy.If you are running JBoss in different domain like all then deployment target folder would be <JBOSS_HOME>/server/all/deploy


VoltarVoltar a Página Inicial - Menu Sistemas

Ferramentas pessoais
Espaços nominais
Variantes
Ações
Navegação
Ferramentas