【问题标题】:Customizing asp.net webforms markup自定义 asp.net webforms 标记
【发布时间】:2010-09-11 09:19:49
【问题描述】:

我是asp.net 世界的新人。我听到了很多关于 asp.net mvc 的信息,它在自定义标记和 css 的能力方面优于 webforms。我还听说 asp.net 比 asp.net mvc 更容易学习,所以我决定学习 asp.net 和 webforms。我的问题是:Web 开发人员/设计师可以通过有关标记和 css 的 Web 表单获得什么级别的定制?

【问题讨论】:

    标签: asp.net html css asp.net-mvc


    【解决方案1】:

    您可以在 html 输出中进行任意数量的自定义!您可以自定义 Web 表单中的所有内容。然而,定制会带来时间、精力和出错的空间。所有这些都是网络表单试图拯救你的东西。

    不过,既然你刚刚开始,我不会担心。只需按照您的意愿制作您的 Web 表单,而无需自定义输出(无论如何,使用 ASP.NET 4 会更好)。几年后,当你更有经验时,再担心。

    如果您要自定义所有内容,那么您应该使用 ASP.NET MVC - 这是它的主要论点之一。但是网络表单并没有错。特别是如果您一般从 asp.net 开始我会说它更好

    【讨论】:

      【解决方案2】:

      标准 ASP.NET WebForms 使用为您生成标记的服务器控件,因此自定义级别仅限于您使用的控件提供的内容。有一些技术允许您覆盖控件呈现的内容,从而自定义标记并编写自己的控件,但它需要一些编码。可以实现对标记的几乎完全自定义,但恕我直言,这比 Web 开发人员需要付出的努力更多。

      虽然使用经典的 ASP.NET WebForms 绝对有可能拥有一个 SEO 友好、可单元测试、可维护、符合标准的应用程序,但与 ASP.NET MVC 相比,它所需要的努力将是巨大的。但是,如果您不关心这些事情,您将能够非常快速地开发 Web 应用程序。

      【讨论】:

        【解决方案3】:

        ASP.NET 带有一组内置的用户控件 - 诸如文本区域、按钮等。这些模仿 winforms 的工作方式(事件等),但是这是一个相当有漏洞的抽象(你必须始终请记住您正在使用 HTML 和 HTTP)。

        用户控件允许重用,并且在构建页面时它们会发出 HTML - 您对发出的 HTML 几乎没有控制权(除非您覆盖渲染,这有点言过其实),因此感觉它们更难定制。做对也不容易,需要做的工作比我认为的要多。

        在呈现页面的方式上也存在不同的折衷方案(例如,ids 最终成为一长串串联的容器控件名称),如果您正在寻找对 HTML 的控制,这使得 MVC 成为更好的选择。

        【讨论】:

        • 在 ASP.NET 4.0 中,您可以将控件的 ID 设置为“静态”,这意味着您可以指定它的呈现方式。不过,在所有其他提到的方面,我完全同意你的看法。
        • @SimonW - 如果我没记错的话,即使Static 也只是意味着它们更具确定性并且更容易理解。你仍然无法控制它们。
        【解决方案4】:

        Microsoft 建议您根据需要选择技术: 虽然 ASP.NET 提供了丰富的控件并在没有对标记进行很好的控制的情况下产生快速的结果(如前所述:它可以完成,但以某种方式击败了 ASP.NET 背后的想法并创建了许多额外的代码),但它存在以下缺陷:其他海报。

        在 MVC 中,有一组有限的“开箱即用”控件,您必须自己编写更多代码(包括客户端 JavaScript),但您可以更好地控制您的渲染标记控制。除此之外,您的项目通常会明确分离有利于(单元)测试和维护的关注点。

        另一个尚未提及的方面:在 ASP.NET 中,每次客户端与服务器通信时,页面都会经历所谓的“ASP.NET 生命周期”。生命周期由几个事件组成,这些事件以特殊的(有时是令人困惑的)顺序触发。在复杂的 Web 应用程序中以正确的顺序处理这些事件是 ASP.NET 中最大的困难之一,并且经常导致初学者放弃。在 MVC 中,您不必处理此类问题。 因此,我强烈建议您在开始编码之前先了解一下 ASP.NET 体系结构。这是一个非常基本的开始:http://www.asp.net/learn/videos/video-6558.aspx

        就我个人而言,我从 WebForms 开始,在我的学士论文中使用 Silverlight 和 WPF 中类似的 MVVM 模式后,我现在转向 MVC。这对我来说是这样的,所以我现在更好地理解了 MVC 背后的好处和想法。习惯了 WebForms 之后,切换起来就不是那么容易了。

        【讨论】:

          猜你喜欢
          • 2023-03-21
          • 1970-01-01
          • 2011-07-16
          • 2010-09-30
          • 2023-02-04
          • 2015-09-25
          • 1970-01-01
          • 2023-03-12
          • 1970-01-01
          相关资源
          最近更新 更多