application normale ou web

application normale ou web - Java - Programmation

Marsh Posté le 07-04-2010 à 17:12:04    

Bonjour,
Je veux rèaliser une application java pour la gestion des personnels d une entreprise, mais je ne sais pas est ce que c est mieux de rèaliser une application Web(intranet à l entreprise) ou bien une application normale??
Si j ai choisi de faire une application normale est ce que c est suffisant de la faire par : JAVA , Mysql5 et pour rèaliser mes interfaces : je dois utiliser awt et swing ? et au niveau l accès à la base de donnèes je ferai un accès direct(pas de mapping) est ce que ça c est bon ou bien c est mieux d utiliser un outil de mapping (hibernate ...) est ce que ça va donner une plus à l application car j ai jamais travailler avec hibernate au niveau d une application normal  
J ai besoin de vos rèponses pour commencer mon projet
Merci à ts

Reply

Marsh Posté le 07-04-2010 à 17:12:04   

Reply

Marsh Posté le 09-04-2010 à 03:40:32    

c'est un projet dans le cadre de tes études ?
 
Si c'est le cas et si c'est ton premier projet en java, je dirais de faire une appli en java se (Swing + JDBC) tout en applicant le modèle MVC. Appliquer aussi le pattern dao avec une couche métier.
 
Pour la base de donné mysql convient très bien, comme oracle 10g XE (une version gratuite et allégé de oracle 10g) à toi de voir pour le choix en fonction du sgbd que t'as déjà vu en cours.
 
Pour le jdbc pense à bien travailler le concept de transaction t'en aura besoin plus tard pour bien comprendre hibernate.
 

Reply

Marsh Posté le 09-04-2010 à 17:33:51    

Oui c est un projet de fin d 'etudes, alors c est mieux de faire une application normale au lieu de web
pour moi je veux utiliser hibernate pour aller loin au futur , car j ai dèjà travaillè avec ce framework mais au niveau d une application web donc c est possible aussi d exploiter hibernate au niveau d une application normale aussi?
merci bcp

Reply

Marsh Posté le 09-04-2010 à 19:04:01    

sonia5 a écrit :

Oui c est un projet de fin d 'etudes, alors c est mieux de faire une application normale au lieu de web
pour moi je veux utiliser hibernate pour aller loin au futur , car j ai dèjà travaillè avec ce framework mais au niveau d une application web donc c est possible aussi d exploiter hibernate au niveau d une application normale aussi?
merci bcp


 
 
Fin d'études, genre bac + 5 ?
 
 
Dans ce cas vaut mieux faire une architecture n tiers
 
Spring MVC ou Struts2  
Couche métier (avec une hiérarchie d'exceptions)
Couche DAO avec hibernate (et transactions gérées avec spring)
Base de donnée.
 
 + Utilisation de spring ioc pour l'injection de dépendances.
 
 
 

Reply

Marsh Posté le 12-04-2010 à 12:33:31    

Bonjour,
Oui, c est pour un bac+5
Pou moi je sais utiliser  
Pour la couche DAO : hibernate
Pour la couche prèsentation : JSF
Base de donnèes
Mais je n ai pas compris qu est ce que vous voulez dites par ça :  
"Couche métier (avec une hiérarchie d'exceptions)" ??
Est ce que JSF gère MVC?
Merci à ts
 

exhortae a écrit :


 
 
Fin d'études, genre bac + 5 ?
 
 
Dans ce cas vaut mieux faire une architecture n tiers
 
Spring MVC ou Struts2  
Couche métier (avec une hiérarchie d'exceptions)
Couche DAO avec hibernate (et transactions gérées avec spring)
Base de donnée.
 
 + Utilisation de spring ioc pour l'injection de dépendances.
 
 
 


Reply

Marsh Posté le 12-04-2010 à 15:36:22    

sonia5 a écrit :

Bonjour,
Oui, c est pour un bac+5
Pou moi je sais utiliser  
Pour la couche DAO : hibernate
Pour la couche prèsentation : JSF
Base de donnèes
Mais je n ai pas compris qu est ce que vous voulez dites par ça :  
"Couche métier (avec une hiérarchie d'exceptions)" ??
Est ce que JSF gère MVC?
Merci à ts
 


 
 
Bonjour,
 
Je pars du principe que tu sais ce qu'est une couche métier.
 
Prends par example le cas d'une croisière sur un bateau, tu commence les étapes pour réaliser une réservation, donc tu rentres les info clients, la carte de crédit, puis tu te rend compte qu'il n'y a plus de place sur la croisière, la reservation ne peut pas être complétée il y a donc erreur dans ta couche métier et cette erreur doit être propagé jusqu'au client (la vue) à travers une exeptions (on appelle ce genre d'exception une business exception)
 
Une fois que tu as référencé toutes les business exceptions que tu peux avoir tu implémentes ta hiérarchie d'exception avec des nom significatifs  
 
AbstractException => PaymentException => CreditCardException ...
 
A savoir que souvent les business exceptions entraînent un rollback de la transaction.
 
Pour mieux comprendre le principe de gestion des exception dans une application J2EE:
 
http://onjava.com/pub/a/onjava/200 [...] tml?page=1
 
 
Sinon bien sûr que JSF est une framewok MVC, mais c'est super compliqué et chiant à utiliser.

Reply

Marsh Posté le 13-04-2010 à 19:11:24    

Bsr
merci pour votre rèponse
Mnt vous m orientez vers le bon choix:
 
le serveur d application : Apache Tomcat
DAO: Hibernate
JSF
et pour metier : je vais utiliser des beans normals , est ce que pour travailler par ejb3.1 je dois télécharger des librairies (jar...) ?? je peux utiliser seulement des classes java (beans) pour faciliter la communication entre DAO et Presentation est ce que ça aussi signifie que j utilise ejb mais comment je peux savoir il s agit de quelle version?
 
dans l attente de vos rèponses car je dois commencer mon projet
Merci à ts

Reply

Marsh Posté le 13-04-2010 à 19:56:40    

sonia5 a écrit :

Bsr
merci pour votre rèponse
Mnt vous m orientez vers le bon choix:
 
le serveur d application : Apache Tomcat
DAO: Hibernate
JSF
et pour metier : je vais utiliser des beans normals , est ce que pour travailler par ejb3.1 je dois télécharger des librairies (jar...) ?? je peux utiliser seulement des classes java (beans) pour faciliter la communication entre DAO et Presentation est ce que ça aussi signifie que j utilise ejb mais comment je peux savoir il s agit de quelle version?
 
dans l attente de vos rèponses car je dois commencer mon projet
Merci à ts


 
 
Tomcat n'est pas un serveur d'application mais un conteneur de servlets !
 
Pour les ejb il te faudra un serveur d'application, de plus les ejb ne sont vraiment intéressants que quand on parle d'application distribuées (bien que tu puisses utiliser des beans en local avec l'annotation @Local).  
Un serveur d'application c'est quelquechose d'assez lourd niveau mémoire, donc si c'est pour une appli assez basique tu auras du mal à justifier ton choix. Mais je crois que dans Java EE 6  il y a un profile web qui correspond à un conteneur de servlet + ejb3.1, donc quelque chose d'assez léger. Glassfish V3 propose ce profile, par contre chez jboss il n'est pas encore disponible (probablement pour fin juin).
 
 
Je dirais que pour la couche métier tu as le choix :
- ejb3.1 avec un serveur d'application java ee 6 (choisir le profile web).
- Des beans tout simples avec spring pour gérer les dépendances ainsi que les transactions.
 
 

sonia5 a écrit :


dans l attente de vos rèponses car je dois commencer mon projet


 
 
Tu peux le commencer avant même de savoir quelles technologies tu vas utiliser vu que t'as d'abord l'analyse et les premières phases de conception à faire.
 
 
 


Message édité par exhortae le 13-04-2010 à 20:00:51
Reply

Marsh Posté le 14-04-2010 à 12:26:54    

Merci, bcp pour votre réponse
Je dois faire l architecture de mon projet le plus tôt possible car je n ai pas assez du tps car j ai fini ma conception :
Voici la structure:
 
Apache Tomcat
Couche mètier je vais utiliser que des beans pour faciliter la communication entre DAO et prèsentation
JSF
Hibernate
Mysql5
Dans l attente de votre réponse et votre confirmation
Merci à ts vos aides ,  

Reply

Marsh Posté le 14-04-2010 à 13:00:14    

Oui.
 
Au final ton architecture n-tiers doit se présenter comme suit
 
http://img146.imageshack.us/img146/2303/ntiers.jpg


Message édité par exhortae le 14-04-2010 à 13:02:39
Reply

Marsh Posté le 14-04-2010 à 13:00:14   

Reply

Marsh Posté le 14-04-2010 à 13:28:51    

D accord merci pour tous vos aides

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed