Dans un projet, nous avons utilisé LLBLGenPro comme OR/M. Mais comme nous ne voulions pas encombrer notre application d'entités LLBL, nous avons cartographié celles-ci dans nos BO avant de toucher le client. Cela signifie qu'ils doivent être recopiés dans les entités LLBL avant de retourner à la base de données. Le code DAL a fini par être une très grande partie de notre application. Pas 50%, mais considérable.
Dans un projet sur lequel je travaille actuellement, j'ai commencé avec db40 dans l'espoir de minimiser l'empreinte DAL. Et c'était très petit, mais j'ai rencontré des problèmes avec db40 et j'ai dû l'abandonner. Je suis passé à ADO.NET pendant quelques jours juste pour obtenir quelque chose qui fonctionne et j'ai été étonné de voir à quel point ADO bizarre je devais écrire juste pour obtenir un référentiel simple. C'était un casse-tête, alors j'ai finalement opté pour NHibernate.
Mon code DAL avec NHibernate (2.0) correspond probablement à 5% ou moins de ma base de code. Cela inclut les fichiers de mappage XML. Je veux dire, l'empreinte de DAL est si petite et un tel plaisir de travailler avec. J'avais des problèmes avec NHibernate 1.2 dans un environnement distribué où je devais travailler avec des objets détachés, mais NHibernate 2.0 semble avoir résolu ce problème. Je sais que c'est comme ça que je fais DAL à partir de maintenant, jusqu'à ce que quelque chose se passe mieux.
Fait intéressant, mes collègues et moi avons eu une conversation similaire il y a quelques mois. Mais le nôtre ne portait pas tant sur la quantité de code que notre DAL représentait, mais sur notre application qui était simplement l'interrogation/manipulation de données. Nous avons estimé que probablement 90% de notre application consistait simplement à extraire le bon sous-ensemble de données et à permettre aux utilisateurs de le modifier.
Je suppose que le code généré ne compte pas? En outre, un nombre approximatif de «classes d'affaires» ou la taille totale du code pourrait être intéressant pour voir les effets d'amortissement. –
Oh oui. Le code généré compte très certainement. Bien qu'il ne prenne pas autant de temps à produire, il y aura un entretien à un certain moment. – RKitson
espérons que vous re-générer, plutôt que de maintenir le code généré ... –