J'ai un problème que je ne peux pas résoudre sans quelques conseils. Je développe une application ASP.NET MVC et j'utilise ADO.NET EF pour me connecter à la base de données. Mon problème est que je ne sais pas si la logique métier de mon application doit utiliser des entités créées par EF ou dois-je créer une couche d'abstraction supplémentaire et séparer les entités EF de mes objets logiques métier (et développer des convertisseurs entre ces types d'objet). Ou peut-être que je me trompe totalement et que je devrais le faire différemment? Comment? Quelle solution serait la meilleure pratique?ASP.NET MVC et ADO.NET Entity Framework
Répondre
Cela dépend absolument de votre application, de sa portée et de ses exigences. Introduire des couches d'abstraction juste pour les couches signifie introduire de la complexité et de l'indirection, où souvent cela ne vous mène nulle part. Pour la surutilisation de l'architecture en couches le terme Lasagna Software est actuellement en cours d'introduction - en remplacement du tristement célèbre Spaghetti Software.
Pour être clair, je ne propose pas de couches d'abstraction. Leur utilisation dépend fortement de vos besoins spécifiques. Je commencerais par une architecture simple et ajouterais des couches si nécessaire pour assurer la testabilité et la maintenabilité. La version actuelle Entity Framework (4.1 de cette écriture) permet de travailler avec Poços et DbContext
assez ressemble beaucoup à la Repository et Unité de travail modèles. Ces fonctionnalités prêtes à l'emploi peuvent être suffisantes pour démarrer dans la plupart des cas.
J'ai géré des situations comme celle-ci en ayant des projets séparés pour les classes de données et les classes de modèle. Les classes de données sont celles générées par votre modèle ADO.net, vous pouvez ensuite utiliser le modèle Repository pour vous connecter au contexte ADO.net, récupérer les classes de données et utiliser quelque chose comme http://automapper.codeplex.com/ pour mapper la classe de données au modèle d'affaires. Cela vous permettra d'utiliser la validation MVC telle que Required, Regex, etc. sur les modèles, et de ne pas jouer avec les classes Data, et de ne faire que contourner les modèles.
En général, je trouve préférable de placer la logique métier à la fois dans le modèle de domaine et dans une couche de service. La logique dans le modèle de domaine est préférable, car elle est plus facile à tester, mais toute la logique n'est pas facilement implémentée de cette manière. Par exemple. Lorsqu'une opération implique de nombreux objets de domaine, vous ne pouvez pas toujours la placer raisonnablement dans l'un d'entre eux sans conséquences sur les performances et autres problèmes.
C'est ici qu'interviennent les POCO. Vous pouvez générer des POCO génériques à partir de votre modèle de données et les utiliser dans votre couche de gestion. EF va ensuite créer des POCO et les suivre.
L'idée ici est que votre POCO de ne sont que des entités, et pas des objets EF (si EF fait, les coulisses créer des versions de proxies de votre POCO)
- 1. ADO.Net Entity Framework/Linq
- 2. Gérer ADO.NET Entity Framework ObjectContext dans ASP.NET MVC
- 3. ASP.NET MVC fortement typé avec ADO.NET Entity Framework
- 4. Didacticiels ADO.NET Entity Framework
- 5. ADO.Net Entity Framework Relations
- 6. ADO.NET Entity Framework Quirk
- 7. ASP.NET MVC, Entity Framework et la performance
- 8. ADO.Net Entity Framework et ordre dynamique par
- 9. ADO.NET Entity Framework et LINQ to SQL
- 10. ADO.NET Entity Framework et Linq aux entités
- 11. ADO.NET Entity Framework IsLoaded et Load
- 12. Entity Framework MVC Vs
- 13. ASP.NET MVC 3 et Entity Framework avec MySQL et LINQ
- 14. Asp.Net MVC, Entity Framework, API Web
- 15. fortement typées ASP.NET MVC avec Entity Framework
- 16. Entity framework query pour MVC
- 17. Récupérer des données de deux tables dans asp.net mvc en utilisant ADO.Net Entity Framework
- 18. SaveChanges ne fonctionne pas avec ADO.NET Entity Framework
- 19. ASP.Net Entity Framework Modèle
- 20. ASP.NET MVC et Entity framework - Liste en tant que propriété
- 21. ASP.NET 5 MVC 6 et Entity Framework 7 problèmes
- 22. ASP.NET MVC et Entity Framework: persistance de requête
- 23. Relations entre les modèles avec Entity Framework et ASP.NET MVC
- 24. Validation ASP.Net MVC avec Entity Framework et POCO
- 25. Asp.net MVC et Entity Framework, Impossible d'accéder aux tables connexes
- 26. Comment référence à l'aide Entity Framework et Asp.Net Mvc 2
- 27. ASP.NET MVC et Entity Framework: Validation des données générées
- 28. Entity Framework avec MVC fortement typé
- 29. ADO.NET Entity Framework SaveChanges ne fonctionne pas
- 30. ADO.Net Entity Framework: qu'est-ce que c'est?
Merci pour votre answear. votre poste m'a juste donné un coup de pied et m'a dit "ayez les yeux grands ouverts" :) – TrN
Heureux de vous aider! Je sais moi-même à quelle vitesse on peut rester coincé dans Analysis Paralysis ... –