sexta-feira, 4 de abril de 2008

Desenvolvendo uma aplicação web de forma fácil e prática – 1ª parte

Tempos atrás, desenvolver uma aplicação web com Java requeria muito esforço e tempo para programar várias linhas de código só para ter uma simples tela funcionando.

Primeiro, usávamos apenas servlets e, logo depois, vieram os JSP's e as taglibs. Posteriormente, o uso de frameworks popularizou-se e muitos passaram a usar o Struts, o mais popular framework MVC. Ultimamente, cada vez mais programadores têm usado o framework JSF, criado a partir de uma especificação da Sun para que o desenvolvimento web se torne mais parecido com o desenvolvimento de uma aplicação desktop.

Para persistir os objetos em um banco de dados relacional, antes, construíamos as cláusulas SQL e executávamos-as usando o JDBC. Com o tempo, passamos a usar o Hibernate, um framework que traduz os objetos para o mundo relacional, e vice versa. Hoje, temos a especificação JPA (Java Persistence API), nascido como fruto desse framework de sucesso, que facilitou mais ainda o trabalho de codificação da persistência dos objetos.

Irei começar a mostrar com este post, uma "receita de bolo" para fazer uma aplicação web de forma fácil e prática, usando o JSF, o Hibernate, e a IDE Netbeans 6. Para isso, vamos entender primeiramente como será a arquitetura de nossa aplicação. Estruturamos a aplicação em dois componentes principais: Web e Aplicação.

Arquitetura do Sistema
O componente Aplicação é a nossa aplicação de fato, o seu núcleo. Ele contém as entidades de nosso domínio, as regras de negócio do contexto, os objetos de persistência, e um objeto centralizador que irá encapsular toda a nossa aplicação (façade).

O componente Web é a nossa interface web da aplicação. Ele contém as páginas JSP, com seus respectivos objetos Page Beans associados, os beans de request e session, e os objetos provedores para as grids de tela. A maior vantagem de separarmos a interface do núcleo da aplicação é a de posteriormente mudarmos a “cara” da aplicação para uma interface desktop, ou outra qualquer.

Para esse exemplo, vamos estabelecer agora o contexto de nosso domínio. Nossa aplicação simulará um simples sistema de contratos, no qual um usuário autentica-se no sistema e cadastra contratos efetuados com outras empresas. Para efeitos didáticos, vamos ignorar muita coisa que deveria ser pensada num contexto desse tipo (multas contratuais, por exemplo), e apenas nos prender ao diagrama de classes de domínio abaixo.

Diagrama de classes de domínio
Observando o diagrama de classes, vemos que todo Contrato possui um Usuário cadastrante e uma Empresa contratada. A partir da relação entre um Contrato e uma Empresa, nasce a classe Contratada, que possui informações bancárias para pagamento daquele contrato; outro contrato com a mesma empresa poderá ser pago em uma conta bancária diferente.

Nos próximos posts, veremos os passos para a construção de nossa aplicação. Acompanhem!

3 comentários:

Juka disse...

Muito Bom !

lara2006freire disse...

Olá!
Excelente iniciativa!
Parabéns!

Aurélia Freitas - Rio de Janeiro

Anônimo disse...

Muito Obrigado pela iniciativa esta me ajudando muito.

Deus te abençoe!