代码之家  ›  专栏  ›  技术社区  ›  Brandi

ASP.NET混淆-服务器控件

  •  3
  • Brandi  · 技术社区  · 16 年前

    我已经通读了这个问题的信息: Controls versus standard HTML 但我还是相当困惑。

    当时的情况是我被要求做一个网络项目,在那里我做了一个向导。当我完成这个项目时,每个人都问我为什么要用 <asp:Wizard...> . 我以为这是被要求的,但显然不是,所以在这之后,我相信服务器控件只是原型工具。

    但是,下一个项目我通过后面的C代码进行了数据库查询,并通过HTML加载了结果。然后有人问我为什么没有使用网格视图和数据集。

    是否有人列出了优缺点,为什么他们会选择使用特定的HTML控件而不是特定的服务器控件,为什么?我想我在找一个名单…哪些服务器控件可以使用,为什么?

    编辑: 我想这个问题是开放式的,所以我会澄清一些更具体的问题…

    1. 是否可以使用非常简单的控件,如asp:label,或者这些控件最终会浪费空间?似乎很难在后面的代码中访问HTML,否则。

    2. 是否有一些控件不应该使用?

    3. 有没有人有一个好的资源可以让我了解每个控制的优缺点?

    2 回复  |  直到 16 年前
        1
  •  3
  •   Technobabble    16 年前

    服务器控件依赖于视图状态,限制了灵活性

    服务器控件是将WinForms开发人员引入Web开发的强大工具。服务器控制提供的主要好处是状态感和事件驱动的开发模型。然而,自从引入WebForms和服务器控件以来,Web开发的状态已经趋于成熟,而整体而言,WebForms和服务器控件正面临着 increasingly critical view .

    服务器控件的主要问题是它们试图过多地抽象Web的行为,因此,依赖于 ViewState 数据和服务器资源来执行它们的魔力。过度使用viewstate数据会严重膨胀页面大小,导致 performance problems .

    现在有可能 opt out of ViewState 但到那时,最好是简单地使用常规的HTML控件。

    使用HTML控件,您可以精确控制网页的内容,并且在网页上的行为方面具有更大的灵活性。服务器控件提供有限的客户端灵活性,并强制在服务器上执行大量工作,这些工作可以在浏览器中轻松执行,并且 JavaScript framework .

        2
  •  1
  •   Scott Weaver    16 年前
    1. 是否可以使用非常简单的控件(如asp:label)或执行这些操作 只是浪费空间?看起来 好像很难进入 HTML在代码后面,否则。

    如果需要访问服务器端代码中的控件,请使用服务器控件。如果没有,不要。

    1. 是否有一些控件不应该使用?

    在我(中级)的经验中没有。一旦您知道如何使用向导控件,它就会像广告中所说的那样工作(想象一下您自己对所有特性进行编码,然后进行数学运算)。我已经使用了它,它产生了一个平滑和功能性的多页注册表单,中间保存了数据。

    1. 有没有人有一个很好的资源可以告诉我 每个控制?

    我没有,但我建议在正确的情况下使用正确的控件。例如,研究中继器和网格视图之间的区别,并根据需要使用最佳选择。

    当然还有其他选择。首先, MVC 正在增长势头。就我个人而言,我还没有承诺去学习它。就交互表单和Ajax而言,许多.NET开发人员选择使用jquery进行任何验证和任何Ajax(更新面板易于使用,效率极低),json作为到服务器端的传输机制。

    推荐文章