首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.netTiers + Codesmith VS实体框架.Net C#

.netTiers + Codesmith VS实体框架.Net C#
EN

Stack Overflow用户
提问于 2019-02-06 21:45:22
回答 1查看 938关注 0票数 3

我有关于优缺点的问题,当我比较netTiers (带有codesmith)和Entity Framework时,我应该提些什么呢?

这个问题在netTiers周围被问了很多次(使用codesmith),我发现的所有话题都非常古老,可能比Entity Framework变得如此流行的时间还要古老。

实际上,我对Entity framework非常熟悉(不是很熟练,但我喜欢它并且经常使用它),并且不太熟悉netTiers (使用codesmith),这就是为什么当我在复杂的项目中看到netTiers时,我想知道该做什么决定。一种选择是留下来面对面地处理所有问题,我认为这需要大量的时间。另一个--使用微软已经管理和预先设计的奇特实用程序(在我使用netTiers几天后,在我看来,这就是entity framework的美丽之处)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-07 00:06:48

舒适度是一个很大的问题,如果你是主要的开发者,并且你喜欢Entity Framework,那么这是坚持使用它的一个非常重要的原因。然而,在您的情况下,听起来像是您进入了一个使用netTiers的新环境,您更喜欢EF,并且您想要一个切换到您最喜欢的框架的借口。

我使用过这两个框架,并且我几乎同时开始使用这两个框架。在我看来,它们都有各自的亮点。

EF更适合小型项目,它主要用于代码优先的方法,并在允许应用程序随着应用程序新版本的推出而升级数据库方面大放异彩。然而,它也促进了使用linq- to -sql的糟糕的sql查询生成,因此其总体数据吞吐量往往低于netTiers。如果开发人员几乎没有直接的数据库经验,或者没有对数据库的直接管理访问权限,那么EF对他们来说可能是一个更有吸引力的选择,因为它将允许他们重新获得一些控制权。

netTiers在减少代码编写和维护方面大放异彩。与EF不同,它只支持数据库优先的方法。netTiers自动为您生成整个DAL,并通过单击生成按钮使其保持更新。它更适合大型项目,特别是web项目,在这些项目中,您可以完全控制托管的数据库,并且可以轻松地将升级推送到托管数据库。netTiers的致命弱点是用于生成DAL的CodeSmith配置。这个配置可能需要保存在源代码控制中,因为如果它曾经丢失并且被高度定制,那么重新创建它可能非常困难,因此您的DAL将以下次您按下按钮时相同的方式生成(这可能是开发人员更替期间的一个问题)。netTiers还允许您查看所有DAL代码,并根据需要进行调试,而EF只是一个您需要使用的动态链接库。

从历史上看,netTiers是在EF真正成为一个可行的框架之前开发的。它是为了解决一个真正还没有解决的问题而开发的。从那时起,EF真正成长起来,并在许多领域超过了netTiers,这导致netTiers的受欢迎程度直线下降。EF比netTiers更具可配置性和灵活性。然而,EF在代码生成方面从来没有能够与netTiers相提并论,并且需要更多的工作来确保它在数据吞吐量方面与netTiers不相上下。

我见过开发人员手动修改DAL代码的应用程序,这打破了netTiers的力量,通过自动生成DAL来减少编码时间。只要你没有被困在这种情况下,而且你已经有了一个可靠的netTiers设置,那么试图把它拆掉并转换成EF可能是浪费精力的。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54555096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档