我对优缺点有疑问,当我将netTiers
(与Codesmith)和Entity Framework
进行比较时应该提到什么
这个问题在netTiers
(使用代码编辑器)周围被问过很多次,我发现的所有主题都非常古老,比Entity Framework
受欢迎的年代还长。
实际上,我对Entity framework
很满意(虽然不熟练,但是我很喜欢并且经常使用它),而对netTiers
(对于Codesmith)却不太熟悉,这就是为什么我想要知道在复杂项目中看到netTiers
时该如何决定。
一种选择是留下并处理面对面的所有问题,我认为这需要花费大量时间。
另一个-使用Microsoft已经管理和预先设计的高级实用程序(在我与entity framework
呆了几天后,netTiers
看起来很漂亮)。
答案 0 :(得分:1)
舒适级别是一个很大的级别,如果您是主要开发人员,并且喜欢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可能会浪费您的精力。