服务器控件与UserControl

时间:2009-08-22 01:07:59

标签: asp.net

我想听听使用与UserControl相对的ServerControl的一些原因。我发现我可能过度使用UserControls了。

我的列表看起来像这样:

Pro UserControl

  1. 轻松修改。需要在元素中添加一个class属性,在html中将其破解。
  2. 快速轻松地创建初始视图。每个人都可以写简单的HTML吗?
  3. Pro ServerControl

    1. 性能。没有html解析。
    2. 灵活性。控制渲染到gnat的后面。
    3. 复用性。编译它并将其粘贴在GAC中供以后使用。或者,卖掉它。
    4. 我缺少什么?

4 个答案:

答案 0 :(得分:5)

服务器控件的以下两个优点可以想到:

  • 支持继承(因​​为运行时的实际用户控件继承自你的代码,你不能再继承它了)
  • 对标记解析的详细控制(嵌套标记应被视为子控件或属性等)。
  • 支持控件适配器(声明性的,例如在.browsers文件中)
  • tag mapping的支持(如果您制作自己的控件,通常非常有用)

然而,用户控件确实有额外的优势,因为它们是模板化的:

  • 支持数据绑定表达式

答案 1 :(得分:3)

Darthg8r,

Microsoft有一篇专门针对此主题的完整知识库文章。检查出来,因为它还有几点需要考虑:

http://support.microsoft.com/default.aspx/kb/893667

我希望这有帮助!

答案 2 :(得分:2)

另一个考虑因素是,您在构建控件时或在页面上使用控件时是否需要Visual Studio Designer支持。我真的很烦你,你只得到一个或另一个,但不是两个。

答案 3 :(得分:1)

  

性能。没有html解析

我不希望这会产生很大的运行时差异 - .ascx也应该在首次使用时编译。也许通过不检查文件进行修改可以节省一些轻微的开销 - 但我想不出其他的东西。