保持ASP.NET Webforms模板DRY

时间:2015-03-04 16:20:36

标签: asp.net webforms dry

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

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

(需要说的是,这使得制作和验证变更的难度大大超出预期。)

如果这是XAML,我可以将重复部分声明为Resources并重用它们以达到DRYness的水平。 ( D on R epeat Y 我们自己)

我已经制作了一些代码段,用于添加新项目以保持添加的一致性,但它并不能帮助确保编辑始终如一地发生。

在ASP.NET Webforms中是否有任何工具可以帮助解决这个问题,还是我坚持使用WET代码? (实际上, W 仪式 E 非常 T wice对于这种情况是轻描淡写的。有些页面最多可重复8次相同的用户界面列)

1 个答案:

答案 0 :(得分:0)

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

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

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