在c#中组织gui代码

时间:2009-06-04 17:36:39

标签: c# user-interface organization

在具有许多不同组件的单一表单应用程序中管理代码的最佳方法是什么?例如,考虑一个具有产品选择器的财务应用程序,用于浏览/选择要查看的产品;价格,利率等等的少数实时代码;滚动新闻Feed;各种图表;显示本地计算值的网格;等

你会为每个不同的组件创建一个自定义控件,即使它们不会在这个应用程序之外使用吗?或者你可以用实现每个组件的逻辑的类来实现它,并以某种方式更新gui中的实际控制?两个组件可能需要彼此交互,例如,你单击网格中的一个单元格,它会显示一些图表(主表单处理发送消息?)

我习惯于在添加功能时让表单代码变得臃肿,我真的想要熟悉更好的方法。我正在使用c#(不使用WPF),但我想基本的设计原则不一定是特定于语言的。

4 个答案:

答案 0 :(得分:1)

您可以尝试MVP pattern

答案 1 :(得分:1)

请参阅Martin Fowler的Gui Architectures

答案 2 :(得分:0)

这在某种程度上取决于应用程序规模的大小,以及应用程序的生命周期。

在几乎任何合理大小的应用程序中,我建议将各个部分分成单独的UserComponents。话虽如此,有很多方法可以超越它,包括使用插件/ DI等。

我建议阅读(或至少略读)Composite Client Application Guidance的想法。将详细讨论传递问题的信息以及将各个组件联系在一起的不同方法的问题。

即使您没有使用WPF或Silverlight,也有许多与Composite Client Appilcation Guidance相关的宝石。本指南中的许多部分并非特定于技术 - 它们更多地涉及如何将多个部分组合在一起,提高设计的可重用性和灵活性等。无论您使用何种技术,这些都适用。

答案 3 :(得分:0)

我倾向于将所有内容都作为自定义控件进行操作,并使用面板进行放置。然后我创建一个新的控件实例并将其添加到面板中。

这允许我做自定义构造函数,当我尝试在当前项目中使用DI / IOC框架时,我发现它更有用。