2009-02-18 64 views
1

一个有趣的问题出现在twitter今晚,我想我会在这里发布。您的代码库的百分比是由数据访问代码表示的?

基本上,我想知道你用什么来保存数据到你的数据库和估计你的代码库的百分比是数据访问代码。

- 编辑 -
其他有趣的指标(如注释中所述)包括业务类别的数量和代码库的总体大小。

我刚看了一个项目,发现NHibernate之前做了很长时间。快速查看一些数据访问代码,可以看出约10行代码用于持久性/水合性,以表示类中的每个持久性属性。

+0

我猜生成的代码不算?另外,大约“商业类”或总代码大小可能会对摊销效应产生影响。 – 2009-02-18 06:51:59

+0

哦,是的。生成的代码最重要。尽管生产时间不会很长,但在某些时候会有维护。 – RKitson 2009-02-18 06:55:10

回答

1

在一个项目中,我们使用了LLBLGenPro作为我们的OR/M。但是因为我们不想用LLBL实体来处理我们的应用程序,所以我们在将它们映射到我们的BO之前将它们映射到客户端。这意味着在再次敲击数据库之前将它们映射回LLBL实体。 DAL代码最终成为我们应用程序的一大部分。不是50%,但很大。

在我现在工作的一个项目中,我开始使用db40,希望将DAL占用空间降至最低。它非常小,但我遇到了db40的问题,不得不放弃它。为了得到一些工作,我转向ADO.NET几天,并惊讶于为了获得简单的存储库而需要编写多少个ADO。这很令人头疼,所以我最终选择了NHibernate。

我与NHibernate(2.0)的DAL代码可能是我的代码基数的5%或更少。这包括XML映射文件。我的意思是,DAL足迹非常小,并且很乐意与之合作。在过去的分布式环境中,我需要使用分离对象来处理NHibernate 1.2,但NHibernate 2.0似乎解决了这个问题。我知道这是我从现在开始做DAL的方式,直到有更好的事情出现。

有趣的是,我和我的同事几个月前也有类似的对话。但我们的重点不在于我们的DAL占多少代码,而是我们的应用程序中有多少是简单的数据查询/操作。我们估计大概90%的应用程序只是提取正确的数据子集并允许用户进行编辑。

0

大多数时候我们使用nHibernate,它是由一个工具生成的,不知道如果重要的话,我们最终还是会为每个实体添加大量的代码到nHibernate层,并且是;它确实成为代码的一大部分。

此外,随着您在应用中添加更多功能和更多实体,DAL代码也会增加。 或多或少,我猜想20%-30%左右的代码库是由DAL组成的。