2009-02-18 7 views
1

Une question intéressante a été soulevée sur twitter ce soir et je pensais que je l'afficherais ici. Fondamentalement, je me demande ce que vous utilisez pour conserver les données à votre base de données et une estimation du pourcentage de votre base de code qui est le code d'accès aux données.Quel pourcentage de votre base de code est représenté par le code d'accès aux données?

- Éditer -
D'autres mesures intéressantes (comme indiqué dans les commentaires) incluent le nombre de classes commerciales et la taille globale de votre base de code.

Je viens de regarder un projet que j'ai fait longtemps avant de découvrir NHibernate. L'examen rapide de certains codes d'accès aux données a montré environ 10 lignes de code pour la persistance/hydratation pour chaque propriété persistante d'une classe.

+0

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. –

+0

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

+0

espérons que vous re-générer, plutôt que de maintenir le code généré ... –

Répondre

1

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.

+0

Alors considérez-vous NHibernate comme étant meilleur que LLBL? –

+0

Personnellement, je ne dirais pas cela.Quant à jeter votre code avec des entités, vous n'avez pas besoin de générer une chose que vous ne voulez pas. – johnc

+0

Pour autant que je sache (et peut-être que j'ai manqué quelque chose, mais nous utilisons LLB depuis plus de 3 ans), LLBL ne peut pas mapper de la base de données à vos propres objets personnalisés. Il mappe les tables de base de données aux entités créées par LLBL. Personnellement, je préfère avoir plus de contrôle sur mes objets. NHibernate me donne ça. –

0

Nous utilisons nHibernate la plupart du temps, et étant généré par un outil, si cela ne compte pas, nous finissons toujours par ajouter beaucoup de code à la couche nHibernate pour chacune des entités et oui; il continue d'être une grande partie du code.

Le code DAL augmente également à mesure que vous ajoutez plus de fonctionnalités et plus d'entités dans votre application. Donc plus ou moins je suppose que 20% à 30% de notre base de code est composé de la DAL.

Questions connexes