应该只使用一次的功能是否在UserControl中?

时间:2009-03-26 14:25:16

标签: asp.net user-controls webforms

请原谅我,如果这是对系统的轻微误用,但我希望StackOverflow用户能够解决同事和我的辩论。

作为一般规则,我更喜欢将每个单独的功能项封装在UserControl 中,即使我知道它只会被用一次

我的同事将避免在这种情况下创建UserControl并使用WebForm,认为如果它只使用一次,创建UserControl的重点是什么 - 它只会增加额外的,不必要的开销。

我认为额外的开销可以忽略不计,它会产生更好的组织代码,谁知道,您可能会在将来某个时候重新使用这些功能。

那么谁是对的?

修改

看起来我可能得到了不少回复 - 我和我的同事已经同意我们会在一天之内计算回复,并为获得最多选票的论点奖励正确答案。

进一步修改

看起来我是赢家:D

我忽略了一些帖子,这些帖子暗示我们两个都是正确的,并且计算了支持每一方的答案为+1,并且每个方面的答案都是+1。我赢了11-6。

7 个答案:

答案 0 :(得分:7)

如果它使代码更有条理,我将始终尝试创建单独的用户控件。

这确实使沟通更容易理解。想想SRP。

答案 1 :(得分:4)

为什么不将它留在WebForm中并在执行重用该功能时重构为UserControl?记住:YAGNI。

当然,Code会更好地组织起来,但是你的项目所拥有的类/文件数量也会达到平衡 - 如果你过分了,那么找到东西就会让人望而生畏。

答案 2 :(得分:3)

我没有将它封装在UserControl中,很抱歉,但我同意你的同事的意见。 UserControls专门用于可重用内容(它是控件,对吧?)。保持简单,不要过度工程,不要为自己创造更多的工作,因为“你可以在将来的某个时候重新使用这些功能”。你不可以。当你真正需要它时,你会把它变成一个控制。

答案 3 :(得分:2)

我也更喜欢将所有内容都放在用户控件中。首先,它更有条理,你不能确定你不想把这个UI放在你网站上的其他地方。

简单回答:你是对的,你的同事错了。

答案 4 :(得分:1)

考虑一个页面上有几十个这样的代码片段的情况:这一部分以一种形式存在或者每种形式都应该是它自己的控制是否有意义?

并不是说你在这方面是100%正确的,但这可能是一种在你的同事的观点中挖洞的方法。

答案 5 :(得分:1)

即使您只使用一次代码 - 将代码放入usercontrol也可以选择片段缓存。如果您的应用程序性能至关重要,那么我倾向于用户控件。当您对应用程序进行性能测试时 - 您不太可能返回并将代码折射到用户控件中以获得片段缓存的好处。

答案 6 :(得分:0)

  

我认为额外的开销可以忽略不计

同意 - 不要使用UserControls尝试太微优化性能应该不受欢迎。

  

它可以提供更好的组织代码,

它可以,如果它在你的特定背景下 - 那么,是的,这是一个好主意。

  

谁知道,您可以在将来的某个时候重新使用该功能。

是的,你可以。或者你可能没有。这是洗涤,最好由Y(P)AGNI驳回(你(可能)不需要它。)

所以 - 总而言之,这取决于它是否确实有助于更好地组织代码。