【发布时间】:2011-01-09 17:02:20
【问题描述】:
有时我们不得不在 2 或 3 种技术/策略之间进行选择来开发模块。
现在,对于每个小型或大型组件/模块/项目,我们都有几乎数不胜数的选择。对于那些有多年经验的人来说可能很容易,但对于那些刚接触编程的人来说,比如不到一年的时间,这并不容易。
我有时会对 .NET 世界中的数据访问选择感到沮丧。我们不能去了解市场上的每一种工具,以及它为每一种产品提供的东西。
提出这个问题的原因是最近我们必须处理一个项目,并且 DataAccessLayer 的规范是使用 ADO.NET 完成的。进入项目大约 20% 的过程中,一位新开发人员加入了我们的部门(但不是我们的团队)。我认为他很聪明,乐于助人,我们喜欢和他一起工作。
在代码审查期间,他亲自建议我们最好将 LINQ to SQL 用于我们正在开发的模块。他很有说服力。经过积极的辩论,我们同意使用 LINQ to SQL。
但是,“管理层”对此并不满意。有人争论说我们应该在开始模块之前想出这个“绝妙的想法”。他们的论点是,到目前为止 20% 的工作已经花费了资源,而这些工作将被浪费掉。
鉴于新产品/技术/策略的频繁出现,我们发现很难获得有关所有这些工具和技术的所有信息。
我们已经成功使用 ADO.NET。我们对 LINQ(一般)、NHibrnate 和许多其他方面有一个想法,但我们继续使用 ADO.NET。我不反对学习新事物,这就是我们共同推动使用 LINQ 的原因。
问题 我们当初做出这个选择有错吗?
是否有任何指标或指南可用于决定在某些情况下选择哪种技术,以及何时不中途切换?
【问题讨论】:
-
管理层应该很高兴您已经准备好适应新开发人员的新建议,从而节省时间和/或金钱。如果管理层想将责任归咎于某人,它应该指出自己缺乏进一步的培训(为您的团队)或缺乏监督和对自己的洞察力。
-
这是投票、咆哮、博客还是什么?
-
顺便说一句,您知道 MS 停止了对“LINQ to SQL”的进一步开发,转而支持“LINQ to Entities / Entity framework”?
-
您在评估后使用您认为有用的东西。例如,使用带有 MS MVC 2 的模型绑定,您可以将 POCO 类绑定到相同的命名视图。您可以根据自己的情况手动执行此操作,并在适合的时间和地点使用新技术。就 NHibernate 而言,如果团队的所有成员都理解它,团队将使用它(就像任何技术一样)。您将退回到您可以在时间范围内合理处理的技术。
标签: .net linq linq-to-sql choice