Você está na página 1de 11

COPEL Processo de Desenvolvimento de Software

Guia Desenvolvimento para aplicaes WEB

Pgina 1/ 11 Verso: 1.0.1

Guia Desenvolvimento para aplicaes WEB

C:\CLM\02\GOP\PET - Parametros e Limites de Equipamentos\material auxiliar\Padroes e orientaes\Guia Desenvolvimento para aplicaes WEB.odt

Data: 16/11/09

COPEL Processo de Desenvolvimento de Software

Guia Desenvolvimento para aplicaes WEB

Pgina 2/ 11 Verso: 1.0.1

Sumrio
1 OBJETIVO ....................................................................................................................................................3 2 BROWSERS ...................................................................................................................................................3 3 IMPLEMENTAO ....................................................................................................................................3 4 REGRAS GERAIS DE PROGRAMAO.................................................................................................3 5 BIBLIOTECAS DE COMPONENTES........................................................................................................4 6 FERRAMENTA DE DESENVOLVIMENTO............................................................................................4 7 DESENVOLVIMENTO.................................................................................................................................4 8 VALIDAO DE CAMPOS.........................................................................................................................7 9 DEFINIO DE NOMES. ...........................................................................................................................7 10 FORMATAO...........................................................................................................................................8 11 ESTRUTURA FSICA ...............................................................................................................................8 12 CONFIGURAES.....................................................................................................................................9 13 EMPACOTAMENTO................................................................................................................................10 14 EXEMPLOS................................................................................................................................................11

C:\CLM\02\GOP\PET - Parametros e Limites de Equipamentos\material auxiliar\Padroes e orientaes\Guia Desenvolvimento para aplicaes WEB.odt

Data: 16/11/09

COPEL Processo de Desenvolvimento de Software 1 Objetivo

Guia Desenvolvimento para aplicaes WEB

Pgina 3/ 11 Verso: 1.0.1

O objetivo deste documento expor uso da tecnologia JavaServer Faces (JSF http://java.sun.com/javaee/javaserverfaces/ ) para o desenvolvimento de aplicaes web usando a plataforma Java pelas equipes de desenvolvimento da Superintendncia de Tecnologia da Informao (STI) da COPEL. Estabelecer a implementao de JSF a ser usada e quais componentes podero ser utilizados e um padro para a sua utilizao. *Neste documento o termo documento de arquitetura se refere ao documento "Arquitetura de Software de Desenvolvimento da STI ".* 2 Browsers

As aplicaes deve ser compatveis com os seguintes browsers definidos no documento de arquitetura. Deve ser possvel rodar a aplicao sem a necessidade de instalao de nenhum outro software/plug-in no browser cliente. Se for necessrio algum software adicional deve existir uma justificativa o mesmo se aplica ao uso de applets.

Implementao A implementao a ser utilizada est definida no documento de arquitetura compatvel com a especificao da SUN. Os componentes a serem utilizados no desenvolvimento devero ser compatveis com essa implementao.

Regras Gerais de Programao Devem seguir as regras de arquitetura e programao Java da COPEL.

Bibliotecas de Componentes

C:\CLM\02\GOP\PET - Parametros e Limites de Equipamentos\material auxiliar\Padroes e orientaes\Guia Desenvolvimento para aplicaes WEB.odt

Data: 16/11/09

COPEL Processo de Desenvolvimento de Software

Guia Desenvolvimento para aplicaes WEB

Pgina 4/ 11 Verso: 1.0.1

Especificao da SUN sobre JSF define um modelo de componentes. Existem vrias implementaes desenvolvidas, de tal forma que possvel usar componentes de diversos fornecedores de forma padronizada. Porm os componentes para serem utilizados precisam passar pela aprovao da rea responsvel pelo Suporte ao desenvolvimento da COPEL. As seguintes bibliotecas esto liberadas para o uso no desenvolvimento das aplicaes e elas podem ser utilizadas com as bibliotecas de componentes padro do JSF (Core e HTML) http://java.sun.com/jsf/core -http://java.sun.com/jsf/ html. Outras bibliotecas possveis de utilizao devem constar no documento de arquitetura.

Ferramenta de desenvolvimento A ferramenta de desenvolvimento a ser utilizada consta no documento de arquitetura bem como o ambiente e softwares necessrios para a execuao.

Desenvolvimento

O Model-View-Controller um padro que separa em trs formas distintas as funcionalidades de uma aplicao. O modelo representa a estrutura de dados e operaes que atuam nestes dados, o padro JSF uma implementao de um MVC. A mesma informao pode ser apresentada de maneiras diferentes para grupos de usurios com requisitos diferentes. Um controlador traduz aes de usurios (movimento e click de mouse, teclas de atalho, etc) juntamente com os valores de entrada de dados em chamadas funes especficas no modelo. A camada de viso composta por arquivos HTML, JavaServer Pages (JSP) e XML. As vises implementam exclusivamente a lgica de apresentao dos dados em um formato apropriado para os usurios, apresentando os dados que vm do modelo. A diviso de responsabilidades que resulta deste particionamento lgico possibilita uma melhor compreenso e organizao dos requisitos da aplicao e facilita a implementao, manuteno e extenso dos mesmos. O JSF um framework MVC para o desenvolvimento de aplicaes Web, foi criado pela SUN e tambm define um modelo para a criao de componentes.
C:\CLM\02\GOP\PET - Parametros e Limites de Equipamentos\material auxiliar\Padroes e orientaes\Guia Desenvolvimento para aplicaes WEB.odt

Data: 16/11/09

COPEL Processo de Desenvolvimento de Software

Guia Desenvolvimento para aplicaes WEB

Pgina 5/ 11 Verso: 1.0.1

O framework possui um modelo de eventos do lado servidor ("server-side event model") e faz a gerncia de estados dos objetos. Em JSF o elo de ligao entre a visualizao e a lgica de negocio so os Backing Beans. Eles so responsveis pela chamada de classes de negcio. A separao se d por meio de classes faade que sero chamadas pelos Backing Beans e faro acesso as regras do negcio. Uma mesma pgina pode chamar mais de um Backing Bean. Os Backing Beans devero sempre ser declarados no arquivo facesconfig.xml e s usar o escopo de seo quando for realmente necessrio. A regra de nomes para as classes e para a sua declarao deve seguir o padro de definido no guia de desenvolvimento Java. Como no exemplo a seguir:
<managed-bean> <managed-bean-name>backingForm</managed-bean-name> <managed-bean-class> com.copel.exemplo.backing.FormBean </managed-bean-class> <managed-bean-scope>request</managed-bean-scope> </managed-bean>

As pginas devem incluir apenas tags e podem fazer uso do JSF expression language (JSF EL http://java.sun.com/products/jsp/reference/techart/unifiedEL.html)

C:\CLM\02\GOP\PET - Parametros e Limites de Equipamentos\material auxiliar\Padroes e orientaes\Guia Desenvolvimento para aplicaes WEB.odt

Data: 16/11/09

COPEL Processo de Desenvolvimento de Software

Guia Desenvolvimento para aplicaes WEB

Pgina 6/ 11 Verso: 1.0.1

Camada de apresentao (JSF Views) Backing Beans, Event Listeners, Camada de negcios. POJOs, EJB, web Dados (banco de dados, EJB,

services
Camada de integrao data acess objects

webservices)

figura 1- diagrama da arquitetura padro

O diagrama da figura 1 representa a arquitetura das aplicaes. A Primeira camada so as pginas JSP que formam a camada de apresentao. A camada de apresentao no deve possuir cdigo Java, apenas o mapeamento entre os elementos das pginas JSP e os seus respectivos Backing Beans. Os Baking Beans que so responsveis de chamar a camada de negcio. A Navegao entre as pginas deve ser feita por meio do faces-config.xml, no colocar link para outras pgina diretamente. A IDE Eclipse possui ferramenta para construo das regras de navegao de forma grfica. Exemplo de regra de navegao do arquivo faces-config.xml: <navigation-rule> <from-view-id>/paginaExecucao.jsp</from-view-id> <navigation-case> <from-outcome>sucesso</from-outcome> <to-view-id>/paginaResultado.jsp</to-view-id> </navigation-case> <navigation-case> <from-outcome>erro</from-outcome> <to-view-id>/paginaErro.jsp</to-view-id> </navigation-case>
C:\CLM\02\GOP\PET - Parametros e Limites de Equipamentos\material auxiliar\Padroes e orientaes\Guia Desenvolvimento para aplicaes WEB.odt

Data: 16/11/09

COPEL Processo de Desenvolvimento de Software </navigation-rule>

Guia Desenvolvimento para aplicaes WEB

Pgina 7/ 11 Verso: 1.0.1

Para o uso de AJAX nas aplicaes pode ser usado a biblioteca ajax4jsf, deve-se restringir o desenvolvimento usando javascript de forma direta. Esse biblioteca pode ser usada para dar comportamento assncronos por exemplo nos componentes do core do JSF.
<h:selectOneListbox id="list" value="#{backingBean.selectedId}"> <a4j:support event="onclick" action="#{backingBean.changeCurrent}" reRender="info"/> <f:selectItems value="#{backingBean.selectList}"/> </h:selectOneListbox>

Validao de Campos

As validaes de entrada de dados devem ser feitas por meio de Validator de forma declarativa. As mensagens devem ser colocadas sempre em arquivo de configurao como descrito no item 6. <h:inputText id="email" value="#{validateForm.email}" required="true"> <f:validator validatorId="org.apache.myfaces.validator.Email"/> </h:inputText>
<h:message for="email" style="ErrorMessage"/> <h:inputText id="string" required="true" value="#{data.string}" size="20"> <f:validateLength minimum="3" maximum="12"/> </h:inputText> <h:message for="string" style="ErrorMessage"/> <br/>

Definio de nomes.

Os nomes dos artefatos deve ser compatvel com a conveno de nomes da sun. http://java.sun.com/blueprints/code/namingconventions.html

C:\CLM\02\GOP\PET - Parametros e Limites de Equipamentos\material auxiliar\Padroes e orientaes\Guia Desenvolvimento para aplicaes WEB.odt

Data: 16/11/09

COPEL Processo de Desenvolvimento de Software 10 Formatao

Guia Desenvolvimento para aplicaes WEB

Pgina 8/ 11 Verso: 1.0.1

A formatao das pginas JSP de tamanho de fonte, cores, espaamento devem estar sempre feitas por meio de um classe definida em um arquivo CSS. A verso a ser utilizada do CSS a 2.0. Fragmentos de pginas que so iguais devem ser feitos por meio de includes ou utilizando Struts Tiles (http://struts.apache.org/1.x/struts-tiles/) para o gerenciamento do layout como forma de evitar repetio de cdigo. O uso de fragmentos HTML deve ser restrito, deve-se preferir usar os elementos e componentes das tags do JSF. Como no exemplo a seguir onde se tabulam dados usando a tag datable ao invs do uso de table do HTML.
<h:dataTable value="#{reportHandler.currentReportEntries}" var="e"> <h:column> <f:facet name="header"> <h:outputText value="Date" /> </f:facet> <h:outputText value="#{e.date}" /> </h:column> <h:column> <f:facet name="header"> <h:outputText value="Amount" /> </f:facet> <h:outputText value="#{e.amount}" /> </h:column> </h:dataTable>

11 Estrutura Fsica A estrutura de diretrios para a aplicao web deve seguir o descrito a seguir: WEB-INF diretrio de configurao da aplicao web.xml arquivo de configurao do contexto web faces-config.xml arquivo de configurao do Java Server Faces tags definio das tags desenvolvidas para a aplicao lib arquivos jar das bibliotecas necessrias para a execuo classes classes compiladas, preferencialmente criar um jar com as classes conf arquivos de configurao da aplicao img imagens usadas na visualizao css arquivos css contendo a formatao das paginas js bibliotecas de funes JavaScript html pginas estticas da aplicao
C:\CLM\02\GOP\PET - Parametros e Limites de Equipamentos\material auxiliar\Padroes e orientaes\Guia Desenvolvimento para aplicaes WEB.odt

Data: 16/11/09

COPEL Processo de Desenvolvimento de Software

Guia Desenvolvimento para aplicaes WEB

Pgina 9/ 11 Verso: 1.0.1

<pages> as pgina devem funcionalidades. index.jsp pgina inicial padro.

ser separadas por diretrios agrupadas por

12 Configuraes As configuraes devem seguir os arquivos web.xml e faces-config.xml contidos no projeto padro ( blank-jsf.zip). As mensagens e labels das telas devem ser colocadas dentro de arquivo de configurao e carregados da seguinte forma na pgina. <f:loadBundle basename="org.apache.myfaces.examples.resource.example_messages" var="messages"/> O arquivo de mensagens pode tambm ser configurado atravs do arquivo faces-config.xml Exemplo: <application> <message-bundle> com.copel.exemplo.Messages_pt </message-bundle> </application> O Arquivo formado por uma chave e um valor. Exemplos: #nome de campos em formulrios consumidor.labelCliente = cliente #mensagens de erro error.cadastraCliente.digitoVerificarInvaldio = O digito verificador invlido. As inicializaes devem ser feitas por meio da criao de uma classe listener que dever ser adicionada ao arquivo web.xml. A classe a ser gerada deve implementar a interface ServletContextListener e as chamadas devem ser feitas no mtodo contextInitialized. Os parmetros devem ser passados ou pelo arquivo padro web.xml ou por arquivo de properties. <listener> <listener-class> com.copel.exemplo.WebAppContainerInitalizer
C:\CLM\02\GOP\PET - Parametros e Limites de Equipamentos\material auxiliar\Padroes e orientaes\Guia Desenvolvimento para aplicaes WEB.odt

Data: 16/11/09

COPEL Processo de Desenvolvimento de Software </listener-class> </listener>

Guia Desenvolvimento para aplicaes WEB

Pgina 10/11 Verso: 1.0.1

public class WebContainerInitalizer implements ServletContextListener { public void contextInitialized(ServletContextEvent arg0) { //inicializaes necessrias para a aplicao ...

As declarao de taglibs nas pgina deve seguir o seguinte formato. As taglibs externas deve estar devidamente aprovadas pela rea do suporte responsvel pela infra-estrutura dos servidores da COPEL. <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> <%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t" %> <%@ taglib uri="https://ajax4jsf.dev.java.net/ajax" prefix="a4j"%> 13 Empacotamento

A aplicao dever ser empacotada em um Web Archive (war). O contedo deve ser as pginas, arquivos estticos (imagens, bibliotecas javascript, css, ). As classes do aplicativo devero ser tambm empacotadas dentro de um arquivo jar. O arquivo war no deve incluir no empacotamento arquivos Java compilados. No projeto exemplo (black-jsf.zip) existe um script ant para a criao dos empacotamentos ( packing-build.xml). As bibliotecas externas e necessrias ao projeto podem estar includas no empacotamento, mas a administrao dos servidores dever indicar quais j esto includas no servidor de aplicao. Deve existir tambm com o empacotamento um documento contendo as dependncias do projeto com arquivos Jars necessrios para a sua execuo.

C:\CLM\02\GOP\PET - Parametros e Limites de Equipamentos\material auxiliar\Padroes e orientaes\Guia Desenvolvimento para aplicaes WEB.odt

Data: 16/11/09

COPEL Processo de Desenvolvimento de Software 14 Exemplos

Guia Desenvolvimento para aplicaes WEB

Pgina 11/11 Verso: 1.0.1

Os exemplos esto em arquivo anexo contento as configuraes e bibliotecas necessrias. Incluem os arquivos web.xml, faces-config.xml. e as bibliotecas (blank-jsf.zip).

C:\CLM\02\GOP\PET - Parametros e Limites de Equipamentos\material auxiliar\Padroes e orientaes\Guia Desenvolvimento para aplicaes WEB.odt

Data: 16/11/09

Você também pode gostar