asp.net中usercontrol的优缺点

时间:2011-12-16 22:01:09

标签: asp.net user-controls

有人可以告诉我是否应该尽可能多地在我的项目中使用用户控件?那么为什么,如果不是为什么不呢?

3 个答案:

答案 0 :(得分:5)

这是一个有趣的问题;但是这样想吧。

您刚刚写了一张表,列出了所有用户。您可以在网站的“列表用户”页面上显示此内容。

在“查找用户”页面上,您可能希望能够显示用户列表。你像以前一样重写相同的HTML,代码,javascript和CSS吗?或者您是否重用了控件,这次添加了按用户名或其他属性进行过滤的功能?

基本上,用户控件可以打包您网站的可重复使用位。您可以将其打包在用户控件中,只需添加相应的标记即可将其添加到您想要的任何页面,而不是在任何地方重复使用相同的代码。

此外,您刚刚在项目中创建了一个负责处理某些功能的控件 - 它的所有逻辑都在一个地方并与其他代码分开。这也是一个重要的概念,因为它会阻止所有代码混杂在一起。在用户示例中,您可以通过界面与用户列表进行交互,而不是将其与可能执行不同操作的其他代码混合。这称为SRP,可能是一件好事。

作为一个实际例子,我们有一个控件,显示我们的产品列表。我们可以在“查找”屏幕,“管理”屏幕,“此类产品”屏幕以及“您选择的产品”屏幕上重复使用相同的控件。这段代码包含许多逻辑,它们都在一个地方,因此可以轻松维护,并且可以非常简单地重复使用。

用户控件可能是一件非常好的事情。因此,当您认为可以打包一组现有控件,HTML等时,您应该使用它们。这使它们可以重复使用,并且更容易维护。

还有自定义控件的概念 - 这些通常是对现有控件的重新实现 - 例如,您可能有一个ExtendedTextBox,可以在有人输入时验证文本。

您可以阅读更多about both kinds of controls here

答案 1 :(得分:1)

用户控件很好,因为子例程/函数/方法很好:代码(和标记)重用。

与子例程一样,如果控件执行诸如修改全局状态,进行大量数据库或其他并非总是需要的远程调用,引入不可避免的同步阻塞等操作,则控件可能会成为问题。它们还可以添加不必要的内容。如果永远不会重复使用它们的复杂性。

答案 2 :(得分:0)

我会尽可能使用VS IDE Toolbox提供的控件。如果环境提供的东西不能完全按照我的意愿行事,我只能自己控制。