Je suis en train de mettre en œuvre un projet de collège pour tester les performances d'Entity Framework 4.0 par rapport à NHibernate (dernière version). Je construis un système de traitement des transactions simple pour faire ce test. Mes entités seront des choses comme client, compte, commande, produit. Je souhaite créer deux DAL distinctes; le premier DAL sera le EntityFramework tandis que le second sera NHibernate. Je vais ensuite créer une couche de logique métier (BLL) qui référence soit une couche DAL soit l'autre et l'utilise pour tester. La BLL inclura des méthodes telles que 'insertNewOrder()', 'amendExistingOrder()', etc. Je veux que mon BLL soit indépendant du framework afin que je puisse facilement basculer entre chaque DAL. Pour cela, je propose de mettre en place une interface 'IContext' qui sera implémentée par chaque DAL. Le 'IContext' inclura mes méthodes 'get()' pour chaque entité ainsi qu'une méthode 'Save()'. Chaque DAL implémentera ensuite ces méthodes de manière spécifique. Les méthodes 'get()' retourneront un IObjectSet, plutôt qu'un ObjectSet. Je vais utiliser un modèle T4 pour créer des entités POCO à partir de mon EDM et les déplacer vers un projet distinct. Chaque DAL peut ensuite référencer le même ensemble d'entités POCO. Mon BLL va alors créer une instance de l'interface IContext et appeler des méthodes sur cette interface, plutôt que de créer un contexte spécifique (ObjectContext ou ISession).Basculer entre EntityFramework et NHibernate
Cela vous semble-t-il une solution réalisable? Tout article que je trouve sur ce sujet inclut l'utilisation de référentiels, un modèle que je ne comprends pas parfaitement et que je voudrais éviter d'avoir à mettre en œuvre si possible. Mon objectif est de tester chaque plate-forme plutôt que de créer une application qui soit correcte d'un point de vue architectural. Voir ici par exemple:
J'ai en partie sur la base de cette approche sur un chapitre de « programmation Entity Framework 2e édition » par Julia Lerman. Je suis nouveau à la fois NH et l'EF (en particulier NH), donc tous les conseils ou recommandations seraient appréciés. Merci.
Découvrez http://ormbattle.net/. Il pourrait être intéressant de comparer vos résultats par rapport à cela. Ils décrivent et discutent également les tests, qui peuvent vous donner d'autres idées: http://ormbattle.net/index.php/performance-tests.html –