|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Futur Membre du Club
![]() Inscription : mai 2009 Messages : 38 ![]() |
Salut,
Je me lance dans NHibernate, et créer chqaue classe à la main me paraît fastidieux... Je suppose donc que des gens beaucoup plus intelligent que moi ont déjà du faire des petits outils magiques qui font ça tout seul... Je sais que ça éxiste pour le Java... Avez-vous des noms pour ce genre d'outil (je n'ai pas été convaincu par mes recherches google...) Merci davance
|
|
|
00
|
|
|
#2 | |
|
Expert Confirmé
![]() |
Citation:
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. MCTS Database Development |
|
|
|
00
|
|
|
#3 |
|
Futur Membre du Club
![]() Inscription : mai 2009 Messages : 38 ![]() |
Ma base de donnée est correctement modélisée. Par contre je ne vois toujours pas comment générer les classes automatiquement. Tous les tutos que j'ai pu lire pour découvrir NHibernate m'ont fait construire chacune des classes à la main.
Pouvez-vous m'éclaircir sur ce point? Merci |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Inscription : février 2005 Messages : 1 238 ![]() |
Mygeneration, le mapper nhibernate Lujan. Il est très bien fait !
En payant, il y a LLBL Gen Pro qui est très bien. Moi j'utilise une version customisée du premier. Dommage de partir d'une base; fait attention aux associations récursives |
|
|
00
|
|
|
#5 | |
|
Expert Confirmé
![]() |
Citation:
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. MCTS Database Development |
|
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Inscription : février 2005 Messages : 1 238 ![]() |
Oui et non,
Partir d'une base et générer du code, c'est le meilleur moyen de faire des erreurs. Modéliser le domaine, puis adapter sa persistence avec justement des implémentations SQL propres c'est plus long, mais dans le temps, c'est beaucoup plus fiable. Et ça permet de prendre en considération les perfs dès le démarrage, de cache, de vues aussi. Sachant qu'en outre la génération de code est rarement intelligente (au sens où elle ne fait pas de sélection fonctionnelle dans les relations ou dans les mappings); que le design de Db parfait n'existe pas, le temps gagné à générer du code est souvent gaspillé à se battre avec des pb de perfs et de chargement, qui finissent après par de la plomberie à n'en plus finir. Un bon mapping dans mes critéres, c'est un mapping qui n'a jamais recours à du lazy loading, et où les relations matérialisées sont des graphes fonctionnellement identifiés. Nombre des détracteurs de NHibernate ou d'Hibernate sont simplement des gens qui n'ont jamais compris que ce n'est pas parce qu'on génére des mappings automatiquement qu'ils sont justes et exploitable. En outre, partir du domaine et travailler le mapping permet aussi de se familiariser avec certains concepts de Nhibernate (mutable, hèritage, projection, event, relations) qui sont souvent mal employés et posent pb.
|
|
|
00
|
|
|
#7 | |
|
Expert Confirmé
![]() |
Citation:
Débat inutile manifestement nous ne sommes pas daccord du tout... vous vous placez côté dev moi côté dba... http://img1.lemondeinformatique.fr/f...s-epaisses.pdf
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. MCTS Database Development |
|
|
|
00
|
|
|
#8 |
|
Expert Confirmé
![]() |
Venant du dev.net à la base mon constat est vite fait... et beaucoups de mes developpeurs en reviennent...
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. MCTS Database Development |
|
|
00
|
|
|
#9 | |
|
Membre Expert
![]() Inscription : février 2005 Messages : 1 238 ![]() |
Citation:
Maintenant, je connais les positions de SQL Pro sur le sujet, mais là encore, c'est toujours pareil : il y a ceux qui utilisent l'ORM pour masquer des éléments qu'ils ne comprennent pas et ceux qui l'utilisent en connaissance de cause. Acquérir cette connaissance, c'est plus simple sans générateur de code. SQL Pro n'a pas une connaissance étendue des ORM donc son avis bien que très crédible est aussi biaisé. Si je ne connais que le Java et pas le SQL, mon tropisme serait de dire, vive l'épaisseur en Java. Le terroriste c'est celui qui manipule des technos qu'il ne maitrise pas. Pas le fait d'en choisir une plus qu'une autre. Typiquement, implémenter des vues, mapper des procs stocks...
|
|
|
|
10
|
|
|
#10 | |
|
Expert Confirmé
![]() |
Citation:
Je ne remets pas en cause votre savoir faire sur de l'ORM etc et je félicite votre société si elle vous confit la mise en place de l'architecture, mapping etc... Mais vous parlez de "réalité des pratiques" et bien là je rejoins SQL PRO: ce travail est rarement (ou trop rarement) confié à des gens compétent... A vous de votre côté de ne pas généraliser les bienfaits de l'approche tout 'domaine' comme vous dites... Peut être la maitrisez vous (manifestement...) mais combien de développeur à qui on va confier ces taches ne partiront pas dans les travers du lazy loading (par exemple) etc...
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. MCTS Database Development |
|
|
|
00
|
|
|
#11 | |
|
Membre Expert
![]() Inscription : février 2005 Messages : 1 238 ![]() |
Citation:
- Partons d'une conception objet, avec des compétences appropriées - Mappons la conception objet à une persistence, en vérifiant avec les DBA que la conversion objet / relationnelle est cohérente
- Utilisons les frameworks de tests pour toujours monitorer
Pour moi c'est un travail long et commun. On ne doit pas utiliser un ORM sans avoir de sérieuses bases ou ressources DB locales. |
|
|
|
00
|
|
|
#12 | |
|
Expert Confirmé
![]() |
Citation:
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. MCTS Database Development |
|
|
|
00
|
|
|
#13 |
|
Membre du Club
![]() Inscription : avril 2007 Messages : 261 ![]() |
tu peux utilisé AndroMda
(http://www.andromda.org/docs/andromd...net/index.html). Il suffira de modéliser via de l'uml ton modèle objets, et il te genera le reste. |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com