内部框架与新C#技术

use*_*312 5 .net frameworks

如果我们已经开发了自己的ORM框架并且该框架多年来工作正常,那么我们为什么要学习和使用全新的.net技术,LINQ或者Entity Framework或者NHibernate或者CSLA.NET为我们即将推出的软件项目?

注意:新框架需要新的学习和教学努力.

注意:这只是一个类比.

Joh*_*ers 16

  1. 因为新的开发人员会知道更新的框架,但不是你的
  2. 因此,您不必浪费时间维护Microsoft为您维护的代码

顺便说一下,"LINQ"本身就是一种补充你的框架的技术

  • "膨胀"只会影响你.我怀疑Linq框架为EXE增加了足够的字节,无论如何都是这样.并且*高度*不太可能微软框架在资源消耗(内存等)方面比某人内部解决方案更加臃肿.拥有一个您不需要的功能只是当该功能妨碍您需要的功能时,或者当您为该功能支付额外费用时才会遇到问题. (2认同)
  • "膨胀"是一个无稽之谈.如果你不使用某个功能,那么它就在那里并不重要,至少没有一个设计良好的框架.您使用.NET Framework的百分比是多少?当开发人员已经在Microsoft框架上接受过培训时,为什么要浪费时间训练您的框架? (2认同)
  • @MusiGenesis:你假设像微软这样的公司没有测试很少使用的功能以及常用的功能.不好的假设.还要注意我说的"一个设计良好的框架".这遗漏了具有特征蠕变问题的框架. (2认同)

Fen*_*ton 10

因为你现在拥有的是专有的和未知的......如果你有新的员工,你仍然希望能够有效地开发你的代码.

编写自己的ORM没有任何问题,但实体框架2可能包含一些您没有想到的内容 - 并且整个团队和社区背后都会让它变得更好,而您的代码却变得陈旧(我不是说顺便说一下 - 这只是一个例子.

从个人的角度来看,了解nHibernate是一种可转移的技能.知道CompanyXORM不是.


小智 5

在我工作的地方,我们正好有你这样的情况。我们有一个自 .NET 1.1 时代以来构建的自定义 ORM 框架。

我们一直在逐渐接受新技术。为什么?

  • 因为 .NET 框架现在提供了开箱即用的任何经过大量努力创建的内容。扔掉一大块遗留代码来支持一些 API 调用只会有好处。

  • LINQ、扩展方法、lambdas 等新的奖励大大提高了工作效率并有助于简化代码。没有任何理由忽视它们。

  • 如果您正在考虑其他 ORM,那么让我告诉您,很多非常有资格的人已经为它们工作过,而且他们很可能比您做得更好。

  • 如果您雇用新人,并且建立在通用框架之上,则更容易让他们尽快提高工作效率。否则,在他们了解您的框架之前,您会遇到很长时间的挫折。

  • 如果您不使用最新的花里胡哨,许多有趣的人将不适合您。或者,如果您设法诱使他们唱歌,您可能无法长时间持有他们。