【问题标题】:Keeping ASP.NET Webforms templates DRY保持 ASP.NET Webforms 模板干燥
【发布时间】:2015-03-04 16:20:35
【问题描述】:

我继承了一个处理大量类似数据视图的 ASP.NET Webforms 应用程序。但是,由于模板的原因,并且因为它使用的控件也具有用于各种模式(EditItemTemplate、ItemTemplate 等)的单独模板,所以我有几个页面,其中有许多关于如何显示每条数据的重复定义。

编辑:为清楚起见,重复是整个 UI 的一小部分,而不是整个 UI 的重复。 formview 中网格子表中的列定义可以重复 4 次或更多次(FormView 的 ItemTemplate 和 EditItem 模板都将具有特定主表卷的 ItemTemplates 和 EditItemTemplates。)

(需要说这使得更改和验证更改变得比应有的困难得多。)

如果这是 XAML,我可以将重复部分声明为资源并重用它们以达到一定程度的 DRYness。 (D不要R重复Y我们自己)

我已经编写了一些代码 sn-ps 用于添加新项目以保持添加的一致性,但这无助于确保在任何地方都一致地进行编辑。

在 ASP.NET Webforms 中是否有任何工具可以帮助解决这个问题,或者我是否坚持使用 WET 代码? (实际上,Write Everything Twice 对这种情况来说是轻描淡写。有些页面的列的相同 UI 最多重复 8 次)

【问题讨论】:

    标签: asp.net webforms dry


    【解决方案1】:

    如果你有完全相同的用户界面,那么我会质疑为什么你首先需要多个控件。

    如果它们确实是相同的,那么为什么不将这些控件合并到一个控件中,并使用面向对象的技术来更改在代码中使用单个控件的代码实现。

    例如,您可能有一个 Action 委托字典,它们都使用基于参数的相同 UI,但选择了不同的实现。如果您正确地执行此操作(例如,使用 MVP 模式),那么您可以使其高度可测试并创建单元测试来测试您的不同实现。

    【讨论】:

    • 很抱歉给您带来了困惑。为了清楚起见,我已经编辑了问题。
    猜你喜欢
    • 2016-11-04
    • 1970-01-01
    • 2023-03-08
    • 2011-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多