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