【问题标题】:Pitfalls of UI Control LibrarysUI控件库的陷阱
【发布时间】:2009-02-05 04:11:34
【问题描述】:
我正在构建一个 c# winform 应用程序,我继承的框架使用来自这个库 LumiSoft 的 UI 控件,这些看起来不错,但老化且有问题。以前的开发人员更喜欢它们,因为它们允许的尺寸更小。我最近还免费发现了这些控件:DevExpress这些控件更新且功能更齐全。
我的问题是这样的:
- 如果有什么失败
有两个 ui 控件附加到
我的项目?
- 值得我花时间
将所有 Lumisoft 替换为
DevExpress?
- 什么是民族
对使用 UI 的一般感受
类似于 DevExpress 的库?
【问题讨论】:
标签:
.net
winforms
controls
user-interface
【解决方案1】:
1) 这里的缺点是您最终会分发更多的程序集,从而占用更大的硬盘空间,因为您使用了两组可能在功能上重叠的控件。根据您的应用程序和目标用户,这可能是也可能不是问题。其次是保持用户界面一致的问题。如果两个库都提供 Office 2007 的外观和感觉,它们的颜色可能不完全匹配,因此您的应用程序可能看起来不一致。
2) 只有您才能知道所花费的时间对于您的项目是否值得。考虑到用来自不同供应商的另一个控件替换控件不太可能是控件类的简单重命名。它们可能具有一组不同的属性,因此您需要花时间修改代码,以便再次编译,然后重新测试以确保它按预期工作。除非您的客户要求进行更改,否则与添加新功能所花费的相同时间相比,这样做不太值得。
3) 除非您有一个非常简单的应用程序,否则您几乎可以肯定使用组件库来节省时间,而不是自己编写所有内容。这就是为什么 Infragistics、DevExpress、ComponentOne 和许多其他供应商在组件市场上过得很好的原因。此外,他们还倾向于让他们的库保持最新的外观和感觉,这样可以更轻松地更新您自己的应用程序以模仿相同的外观。
N.B 还有另一个名为Krypton Toolkit 的免费控件库,但为了公开,我会指出我自己编写的!所以我偏向于推荐它。
【解决方案2】:
当我决定使用第三方控件时,我要做的是在我的项目中创建一个自定义控件,作为第三方控件的简单容器。
然后,我创建自己的属性,允许我定义如何完成基础控件的设置和自定义。为什么要这么麻烦?
因为如果我想从第 3 方供应商 A 切换到第 3 方供应商 B,我只需要更改我的自定义控件,所有对供应商 A 控件的引用现在都已消失并替换为供应商 B 控件。
根据您要包装的控件的复杂性,这对您来说可能不是一个可行的解决方案。但是,如果您不得不找到所有这些旧控件并将它们切换到其他东西,那么现在可能会提前一点时间可以为您节省任何未来的麻烦,因为您可以找到您更喜欢的其他控件(甚至选择自己实现)。
祝你好运!