Proyecto Web JEE usando Netbeans 6.8, Mysql, Glassfish 3, Hibernate, componentes EJB, paginas JSF

Saludos a todos. Quiero compartir con todos uds el desarrollo de mi proyecto de titulacion, que consiste en Diseñar una aplicacion web en Java. Las caracteristicas de esta aplicacion serán: IDE: Netbeans 6.8, proyecto tipo JEE con componentes EJB y paginas JSF, conexion a base de datos mysql con persistencia (Hibernate), Servidor de aplicaciones GlassFish 3.

La aplicacion debera tener 2 modulos. 1.- Programa para obtencion de claves para activar licencias con control de usuarios. 2.- Modulo de preguntas y respuestas siguiendo practicas tipo helpdesk para ayudar a la resolucion optima de problemas.

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de Dav-el

METODOLOGIA DE DESARROLLO XP - MODELO MVC

Bueno amigos, independientemente de la metodologia de desarrollo. Los pasos con los q quiero iniciar el desarrollo es:
-Crear la base de datos mysql
-Nuevo proyecto en Netbeans
-Crear las clases y distribuirlas en correspondientes packages.
La clases creadas tendran correspondencia con las tablas de bases de datos y con las caracteristicas de los metodos y si son Remotas o Locales.

Imagen de benek

CDI/Weld

Ya que tu proyecto es de titulación, quizá te pueda interesar lo que te voy a recomendar: CDI. Con esto estarías ocupando lo mismo que te propones (JSF, EJB, Hibernate) pero bajo un estándar que nació apenas con Java EE 6. Como veo que piensas ocupar Glassfish v3 entonces sí aplica, ya que la v3 ya implementa la versión 6 de Java EE.

CDI es Contexts and Dependency Injection, antes Web Beans. También es el JSR-229 del JCP, por lo que es un estándar.

Creo que ya te confundí, pero corrijo: Para describirlo brevemente CDI es una especificación para integrar la capa de presentación web (JSF) con enterprise beans (EJB) y la capa de persistencia (JPA y en tu caso Hibernate). Todo esto aunado a una especificación de Inyección de Dependencias (lo que hace Spring). CDI entonces, facilita el uso de estos componentes y practicamente los integra por nosotros.

CDI fue inspirado por el framework Seam de JBoss. CDI es la especificación del estándar, y la implementación de referencia es Weld, que es en el que te puedes basar para tu proyecto.

Aquí una imagen de cómo es la estructura de CDI/Weld:

Si te llega a interesar, acá está el tutorial oficial: http://download.oracle.com/javaee/6/tutorial/doc/giwhb.html

También te puede ser útil la Refcard que publicaron en DZone: http://refcardz.dzone.com/refcardz/contexts-and-depencency

Y este es el sitio oficial de Weld: http://seamframework.org/Weld

¡Saludos! ;-)

Javier Ramírez Jr.
@_benek

Imagen de Dav-el

CDI

Interesante.. la verdad. Si parece que el netbeans 6.8 con JEE6 lo soporta, Pero hablando mas tecnicamente, Cual es el real beneficio que me brindaria. Me ahorra tiempo?. Hace mi diseño mas facil de administrar?.. Comentame ya que parece que tu tienes verdadera experiencia en eso.

Saludos.

Imagen de Dav-el

REQUERIMIENTOS DE LA APLICACION

A manera de justificacion de las herramientas con que trabajare, las relaciono con los requermientos de una aplicacion de este tipo.

JEE Y EJB- La aplicacion debe ser capaz de separar la logica de negocio o en otras palabras necesita ser desarrollada sobre una arquitectura de 3 capas. Que me garantice seguridad de los datos y robustez ante fallas.

GLASSFISH V3. El serrvidor de aplicaciones debe ser capaz de trabajar en conjunto con un buen gestor de base de datos y sobre todo garantizar un buen rendimiento de la aplicación distribuida a la hora de aceptar peticiones simultaneamente.

MYSQL - gestor de base de datos reconocido mundialmente y que segun expertos es la perfecta combinacion de glassfish.

HIBERNATE - Proveedor de persistencia, entre los mejores junto con Eclipse-link

NET BEANS - Posee una importante cantidad de herramientas que me permitirian tener un desarrollo escalable de la aplicacion.

JSF - el framework que utilizare para generar los xhtmls. Elegi esta para enfocar el estudio de esta tecnologia.

Algun Comentario???

Imagen de ezamudio

mysql

No soy fan de mysql (a nivel muy personal). Prefiero PostgreSQL. Piensas usar JEE 6 espero...

Imagen de Dav-el

MySQL--

Si usare JEE6, de hecho no hay una razon de peso que me haga utilizar MYSQL, aparte de ya haber trabajado con este gestor. La base de datos consta de 7 tablas las cuales unas 4 estan relacionadas.. quizas por este motivo no me importa mucho cual gestor usare.

Imagen de Dav-el

1.- Creacion BBDD MYSQL

Crear la base de mysql, es posible que tengamos que definir algunos parametros.
- nombre de la base
- nombre del host - por defecto : localhost
- nombre de usuario
- contraseña de usuario
- puerto : 3306

Imagen de yago82

Arquitectura Vs Tecnologia

Mas allá de usar o no el patron DI, es necesario en pensar en la arquitectura divide tu aplicacion en artefactos genericos extensibles, por ejemplo:

Capa Generic Dao.
Capa De Cualificadores.
Capa De Tecnología DAO (aqui deberia ir que motor de persistencia usaras)
Capa de servicios de negocio (Solo Pojos)
Capa De Interfaces De Servicios (Tecnoloiga aqui decidiras si usas spring ejb o guice).

-----en esta parte si uas cdi quedaria bien un service buz pero si no puedes usar simplemente service locator depende del nivel de abstraccion que le metas.

Por ultimo con componentes visuales o tus clientes.

cualquier cosa puedo asesorarte....

Guayaquil-Ecuador

Una sugerencia para tu proyecto de tesis

Por experiencia propia te sugiero que más que la herramienta de trabajo que vas a usar te fijes más en la METODOLOGÍA.

En la evaluación de tu tesis te van a preguntar que métodos, procesos, técnicas usaste no tanto la herramienta (ojo).

Yo acabo de presentar examen previo (son dos, este y el definitivo). Y a los sinodales no les importa con que hagas tur proyecto.

Asi uses C, Delphi, ...Oracle, Postgresql, etc. lo importante es la metodología.

Saludos.

o_0

mmm...pues parece verdadero

mmm...pues parece verdadero proyecto de titulación y MUY contrarreloj. Te metiste (o metieron) en camisa de 11 varas, estaba probando un poco con JSF, y lento es poco.

Estaría bien agregarle muchas cosas, pero: "The clock is ticking".

Y cómo dice CARRARO importa más la metodología que la herramienta (que básicamente para eso estudiaste, para cómo resolver problemas no cómo resolverlo con X o Y herramienta).

Saludos y pues "a darle" porqué la verdad JSF es lentísimo en desarrollo.