2012-07-06 101 views
0

我对“良好的编程实践”有更多的疑问。 我刚开始一个非常大的项目。我正在使用WebGui(长话短说,它是网络中的WinForms) - 但它并不重要。处理控制灵活性

我创建的形式milions与控制milions像TextBoxNumericUpDownDateTimePicker等可能会发生,我将不得不改变在DateTimePicker或外观的行为的东西。在每个控制中都不可能改变它。我想我的项目是灵活的,所以我有一个想法..

我做每个类型的字符串,数字,日期,字节..和我将分开的TextBox的自定义控件。而且在每一个表单上我都不会放TextBox,而是MyTextBox。事实上,MyTextBox只是TextBox,但是当我改变某些东西时,每一个控件都会改变。

这是好的,在编程流行的实践吗?

+0

当您使用逼真的数字时,建议回答可能会更容易。我怀疑你会用数百万的控件创建数以百万计的表单。是否有描述应用程序功能的文档?有多少次这样的变化预计会发生? – Stijn 2012-07-06 12:29:22

+0

那么,我不能给你看这个文件。我肯定会说200多个表格,所以对我来说这是“数百万”。我不知道多久..当我的客户会改变主意,并会说datetimepicker sux ..是的,他可能会付钱,但我不想整个星期浪费那种工作。 – Marshall 2012-07-06 13:00:29

+0

不需要显示文档,只有重要的是你有一个。在开发过程中征求客户意见非常重要,以尽可能避免这些情况。也许有可能通过CSS实现这些可能的变化?这取决于变化的类型。 – Stijn 2012-07-06 13:17:35

回答

1

在WPF的情况下,这可以很容易地使用样式和模板来实现。 在Winforms中这是不可能的,因此我会说你从控件派生出来并在UI上使用自己的自定义控件的方法是一种很好的实用方法,它有助于集中管理更改。

如果控件是在程序中手动创建的,或者您可以使用Factory类,并让工厂创建控制器对象,而不是仅仅创建新对象。 但是,当通过拖放控件创建UI时,这可能无法实现,因为开发人员无法控制控件的创建。

您选择哪种方法,基本目标应该是集中控制的创建逻辑。

+0

在winforms中不可能? – 2012-07-09 23:10:38

0

是的,如果标准控件不能满足您的要求,这对于GUI开发来说是完全正常的编程实践。

大多数开发人员获得第三方控制套件的额外灵活性。远期购买的好处权衡您自己构建核心控制的好处。

我在一个地方做过companyTextBox,companyDatePicker,它工作正常。一些控件通过.Net版本进行了修改,因此这些基本分类控件需要进行一些手术。任何折旧控件都留作框架版本。

对于特殊情况,我会对CodeProject,CodePlex,Code.Google.com等良好的自定义控件进行大量研究,并将其实施到我正在开发的项目中。 否则请使用我正在使用的公司的库存标准控件或第三方控件套件。

我的建议是获得第三方控件套件,并根据第三方控件制作大量可重用的用户控件。这样,您可以通过将用户控件拖放到表单上来构建大部分200个表单。通过创建,检索和更新每个用户控件实现接口&删除表单一般与您的用户控件配合使用的方法。