我有一个关于'良好编程实践'的问题。 我刚刚开始了一个非常大的项目。我正在使用WebGui(长话短说..它是Web上的WinForms) - 但它并不重要。
我正在用数百万个控件创建数百万个表单,例如TextBox
,NumericUpDown
,DateTimePicker
等等。可能会发生这种情况,我将不得不改变{ {1}}或外观。在每一个控制中都不可能改变它。我希望我的项目灵活,所以我有一个想法..
我为每个类型分别设置了自定义控件 - 字符串,数字,日期,字节..在我将以TextBox为例。在每个表单上我都会放置TextBox,而不是MyTextBox。事实上,MyTextBox只是TextBox,但当我在那里更改某些内容时,每个控件都会被更改。
编程中的流行实践是好的吗?
答案 0 :(得分:1)
在WPF的情况下,使用样式和模板可以很容易地实现。 在Winforms中这是不可能的,因此我会说你从控件派生并在UI上使用自己的自定义控件的方法是一种很好的实用方法,可以帮助集中管理变更。
如果控件是在程序中手动创建的,或者您可以使用Factory clase(s)并使工厂创建控制器对象而不仅仅是新建。 但是,当通过拖放控件创建UI时,这可能是不可能的,因为开发人员无法控制控件的创建。
您选择哪种方法,基本目标应该是集中控制的创建逻辑。
答案 1 :(得分:0)
是的,如果标准控件不能满足您的要求,这是GUI开发的完全正常的编程实践。
大多数开发人员获得第三方控制套件以获得额外的灵活性。购买的好处远远超过了自己构建核心控制的好处。
我曾经在一个做过companyTextBox,companyDatePicker的地方工作过,而且工作正常。一些控件在.Net版本上得到了改进,因此这些基础分类控件需要一些手术。任何折旧的控件都依赖于框架版本。
对于特殊事项,我会对CodeProject,CodePlex,Code.Google.com等上的良好自定义控件进行大量研究,并将其实施到我正在处理的项目中。 否则,使用股票标准控制或第三方套件控制我正在使用的公司。
我的建议是获得第三方控件套件,并根据第三方控件制作大量可重复使用的用户控件。这样,您可以通过将用户控件拖放到窗体上来构建200个窗体中的大多数。使每个User-Control实现一个界面,包括Create,Retrieve,Update&删除表单的方法,以便通常使用您的用户控件。