.netTiers + Codesmith VS Entity Framework .Net C#

.netTiers + Codesmith VS Entity Framework .Net C#

我有关于优缺点的问题 当我比较 netTiers(与 codesmith)和 Entity Framework

时我应该提到什么

这个问题在 netTiers 前后被问过很多次(使用 codesmith),我发现的所有主题都非常古老,可能比 Entity Framework 变得如此流行的时候还要早。

我其实对Entity framework很满意(不精通,但我喜欢它而且我用得很多)并且不太接近netTiers(with codesmith),这就是为什么我想知道当我在复杂的项目中看到 netTiers 时该做什么决定。 一种选择是留下来面对面地处理所有问题,我认为这会花费大量时间。 另一个 - 使用 Microsoft 已经管理和预先设计的精美实用程序(在我花了 netTiers 几天后,entity framework 在我看来是多么漂亮)。

舒适度很重要,如果您是主要开发人员,并且您喜欢 Entity Framework 那么这是坚持使用它的一个重要原因。但是,在您的情况下,听起来您正在进入一个使用 netTiers 的新环境,您更喜欢 EF,并且您想要一个切换到您最喜欢的框架的借口。

这两个框架我都用过,而且我几乎同时开始使用它们。在我看来,他们都有自己擅长的领域。

EF 更适合小型项目,它主要用于代码优先方法,并且在允许应用程序在推出新版本的应用程序时升级数据库方面大放异彩。但是,它也会导致使用 linq-to-sql 生成较差的 sql 查询,因此总体数据吞吐量往往低于 netTiers。如果开发人员几乎没有直接的数据库经验,或者没有对数据库的直接管理权限,那么 EF 对他们来说可能是一个更有吸引力的选择,因为它可以让他们收回一点控制权。

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

从历史上看,netTiers 是在 EF 真正成为一个可行的框架之前开发的。它的开发是为了解决一个真正尚未解决的问题。从那时起,EF 真正成长起来,在很多领域已经超越了 netTiers,这导致 netTiers 的受欢迎程度直线下降。 EF 比 netTiers 的可配置性和灵活性要高得多。然而,EF 在代码生成方面一直无法触及 netTiers,并且需要做更多的工作才能确保它在数据吞吐量方面与 netTiers 保持一致。

我见过开发人员手动修改 DAL 代码的应用程序,这破坏了 netTiers 通过自动生成 DAL 来减少编码时间的能力。只要您没有陷入那种情况,并且您已经拥有可靠的 netTiers 设置,那么尝试将其删除并转换为 EF 可能是一种浪费。