16
février
2006
Nouvel Article disponible: Test de Persistent Datasets
février
2006
Le Mapping Objet/Relationnel vous intéresse mais vous ne savez pas quels outils choisir ?
ALors je vous conseille de jetter un coup d’oeil à mon nouvel article, disponible ici: http://morpheus.developpez.com/persistentdatasets/
Celui-ci est un test de Persistent Datasets, un outil complet pour tout ce qui est Mapping Objet/Relationnel.
Pourquoi je l’aime bien ? Car c’est l’un des rares à exploiter les fonctionnalités de C# 2: les types nullables et les générics
Bonne lecture à tous.
A+
16 Commentaires + Ajouter un commentaire
Articles récents
- [Mix 07] Annonces diverses dont la possibilité de développer des applications SilverLight avec du code managé !
- [WPF] Article d’introduction à Windows Presentation Foundation Everywhere
- [WPF] Les CTP de WPF /E et Expression Studio sont en ligne !
- [Event] Première rencontre du Dotnet User Group (DUG)
- [.NET 3] Présentation du Framework .NET 3.0
Commentaires récents
- [Tips] Ouvrir un fichier vhd sans lancer une VPC dans
- [WPF] Article d’introduction à Windows Presentation Foundation Everywhere dans
- [WPF] Article d’introduction à Windows Presentation Foundation Everywhere dans
- Visual Basic Express 2005 et Visual Web Developer Express 2005 disponibles EN FRANCAIS ! dans
- [.NET 3] Présentation du Framework .NET 3.0 dans
Archives
- avril 2007
- décembre 2006
- novembre 2006
- octobre 2006
- septembre 2006
- août 2006
- juillet 2006
- juin 2006
- mai 2006
- avril 2006
- mars 2006
- février 2006
- janvier 2006
- décembre 2005
- novembre 2005
- octobre 2005
- septembre 2005
- août 2005
- juillet 2005
- juin 2005
- mai 2005
- avril 2005
- mars 2005
- février 2005
- janvier 2005
- décembre 2004
- novembre 2004
- octobre 2004
Salut à tous,
Je suis assez d’acord avec Pierre henri sur la définition de l’ORM et notemment la prise en charge de l’héritage …
Pour dire un mot sur NHibernate que j’tilise maintenant à profusion pour mes applis de gestion, je vais de surprises en surprises sur la panoplie de fonctionnalités que propose ce framework
Par contre le temps de prise en main d’un tel outil n’est pas négligeable (surtout si comme moi on part de zéro en matière d’ORM).
A part ça j’ai lu un comparatif des famework O/R assez bien fait sur http://www.howtoselectguides.com/dotnet/ormapping/
Je n’ai pas l’impression d’avoir dit quelque part que PDS était moins bien que NHibernate
Comme Andrey le dit, ce sont deux approches différentes…
De même, je n’ai pas dit qu’il était « mieux » de séparer les objets de la couche de persistence.
« PDS is much more than ORM, it just contains the ORM as subset. »
Je pense qu’il faut se mettre d’accord sur ce qu’est l’ORM. Et je pense que cette définition n’est pas lié à un environnement (Java ou .NET ou autres…)
J’ai déjà donné des liens vers des sites proposant une définition en long et en large de cette technologie, et je ne vais pas me répéter.
Est-ce que vous pouvez me dire, pour vous, ce qu’est l’ORM?
Et surtout, est-ce que ma définition est erroné?
Si oui, en quoi?
Sinon, Comme est-ce que PDS se conforme à cette définition?
Tiens, c’est marrant: je viens juste de recevoir un mail de mon contact qui Lastcomponent: je crois que celui-ci va t’intéresser Pierre Henri:
Hi Thomas,
Just follow your discussion at the
http://blog.developpez.com/index.php?blog=9&title=nouvel_article_disponible_test_de_persis&more=1&c=1&tb=1&pb=1#comments
blog.
Just wondering whether Pierre Henri Kuaté is a manager of JAVA section at your site?

Probably the things he’s talking about are true for a java world,
but we should not forget that main advantage of the PDS are not only the nullable generics, but also (and first of all):
1) typed queries
2) support of datasets (as a native .NET data-transfer, gui-binding container and report-queries targets)
If we look at these two things, there is no need more to compare PDS with NHebirnate. NHebirnate is a porting of java world to .NET.
PDS is extending of .NET world in the most native way for .NET. PDS is much more than ORM, it just contains the ORM as subset. ORM
can be used for a lot of tasks, but not for all as you mentioned in the Article. The main target of developing PDS was to offer more possibilities for developer, than ORM offers, in order to help with solving the problems, that ORM does not solve.
As soon as I understood Pierre talking about that objects and persistence should be separated and probably better to be able to make
any possible objects persistent, not only generated and inherited from a special class? There is such a pattern, but it also has lot’s of disadvantages, because in this case one needs to have a special Factory class in order to perform CRUD operations. The objects does not know any more about their state and so on, they do not konow any more that fields have been changed. And who will map them?? Theoretically it’s ok, but practically we want to make objects persistent, and we want to make rapid development and not fighting with framework!
Moreover, PDS supports inheritance.
That are just the thoughts of mine. Unfortunatelly I cannt french ):.
Best regards,
Andrey.
Ok, je comprend un peu mieux
Merci Pierre Henri
Ok, prenons un exemple: La notion d’héritage existe en POO, mais pas dans les bases de données.
Un logiciel de MOR (un tant soit peu performant) permet de mapper un hiérarchie de classes à une/plusieurs table(s).
La notion de MOR est aussi liée à la différence de culture entre les développeurs d’objets et les « développeurs » de tables: Ils n’ont pas la même façon de penser…
Et comme j’ai dit plus haut:
Dans l’idéal, les objets et les tables peuvent être développés indépendamment, chacun profitant au maximum de tous les avantages qu’offre les principes sur lesquels il est basé (Programmation Orienté Objet et Modélisation de Bases de Données Relationnels).
Un logiciel de MOR doit permettre cela!
HTH,
Pierre Henri.
Merci pour ces liens
Je comprend ce que tu veux dire mais je dois admettre que je ne vois pas pourquoi tu ne classerais pas ce logiciel dans la catégorie des outils de MOR: son role est justement de « mapper » des objets à des tables. Un objet correspond/fait référence à 1 table
Il y a peut-être une nuance que je n’ai pas saisi donc n’hésites pas à m’éclairer
A+
PS: Aucune idée pour l’URL, je comprend pas trop….
et http://en.wikipedia.org/wiki/Object-SQL_Impedance_Mismatch
(au fait, pourquoi est-ce que je n’arrivais pas à envoyé ma première URL???)
Le MOR, c’est d’abord la résolution de l' »object-relational impedance mismatch ».
Dans la pratique, comme son nom l’indique, il aide à « mapper » des objets à des tables. Ce qui signifie que l’un n’a pas à découlé de l’autre.
Dans l’idéal, les objets et les tables peuvent être développés indépendamment, chacun profitant au maximum de tous les avantages qu’offre les principes sur lesquels il est basé (Programmation Orienté Objet et Modélisation de Bases de Données Relationnels).
Cet article peut aider à saisir quelques subtilités : http://weblogs.asp.net/fbouma/archive/2004/10/09/240225.aspx
Pierre Henri.
=> Générer des datasets typés + toute la couche d’accès peut être une bonne solution, mais ce n’est pas du MOR.
Admettons: Alors concrètement, qu’est ce que le MOR pour toi, si ce n’est pas générer des objets (et leur définition) à partir d’une base de données ?
=> Techniquement, ça ne fait aucune difference. Tu aime bien chercher la petite bête…
Non, disons que j’aime les choses claires et précises
Ce que je veux dire, c’est que ça n’a rien à voir avec le MOR…
Cf: http://www.agiledata.org/essays/impedanceMismatch.html
Générer des datasets typés + toute la couche d’accès peut être une bonne solution, mais ce n’est pas du MOR.
=> OK mais pour le moment, c’est pas intégré
Techniquement, ça ne fait aucune difference. Tu aime bien chercher la petite bête…
Pierre Henri.
=> Je ne comprends pas pourquoi tu associe ce logiciel au Mapping Objet/Relationnel ?
Parce que c’est son utilité… Persistent Datasets est un logiciel utilisé pour générer une couche de persistance, entre la base de données et le code « métier ». Ainsi, chaque table de la base de données est modélisé par une classe, avec en plus des classes dédiées au requetage de la table, etc…
=> Sinon, j’aime bien son API de requête
Vraiment sympa hein
En plus, on s’y fait très vite.
=> Et NHibernate est utilisable avec les generics. Voir: http://www.ayende.com
=> La prochaine version devrait intégrer ce support.
OK mais pour le moment, c’est pas intégré
Et NHibernate est utilisable avec les generics. Voir: http://www.ayende.com
La prochaine version devrait intégrer ce support.
Bizarre, je n’arrive pas à envoyer des URLs; ce n’est pas permis?
Je reçois:
« Impossible d’enregistrer ce commentaire; veuillez corriger les erreurs suivantes:
Le commentaire est invalide »
(on ne peux pas dire que le message aide beaucoup :D)
Pierre Henri.
Je ne comprends pas pourquoi tu associe ce logiciel au Mapping Objet/Relationnel ?
Sinon, j’aime bien son API de requête
Pierre Henri.
Oui, je dois admettre que cet outil est payant…. Cependant, pour l’avoir testé, je peux te garantir qu’il vaut son prix
@pjam: NHibernate gère peut-être les types nullables, mais pas les generics à ma connaissance. Et puis, avec Persistent Dataset, pas d’attributs à utiliser ou de fichier de configuration à manipuler: c’est aussi un gros avantage
A+
nhibernate aussi utilise les nullables et il est gratuit !
oui mais malheuresement, cet outil est payant…