规划一个.NET项目是一项艰巨复杂的任务,需要考虑很多方面。在.NET发展的初期,开发过程中遇到的一些困难或者限制逐渐演变为Microsoft Visual Studio提供的标准控件的功能特性,并且确实帮助了很多开发者。随着.NET和商用软件的发展,标准控件已经不能满足开发的需求,这时您就需要第三方控件。本文讨论如何为您的应用程序和项目选择合适的高性价比的第三方控件,同时也给出我们的参考意见和选型步骤。
什么是控件?
组件就是一个软件模块,他支持复用,可以与其他对象进行交互。
控件是组件的一种类型,他提供用户界面,或者说带有用户界面的组件就是控件。常见的控件包括表格控件、图表控件、组合框、按钮、Ribbon菜单、树型控件等等。
组件就是不含有用户界面的控件。
什么是控件包?
控件包就是由第三方提供商开发的商用产品。其中包含了很多控件,通常会按照技术平台分类,方便用户选择和使用。比如WinForms、ASP.NET、WPF或者Windows Store。
选择合适控件的步骤
下面描述的6步可以帮助您或者您的公司决定如何选择合适的控件用于您的应用程序中。
1. 理解您的界面需求
为您的用户界面建立一个列表。其中主要包括通过标准控件无法方便实现的项目(比如日程表、自动停靠标签、地图等),或者比较特殊的需求(比如在表格控件中显示状态图标)。此外,您一定很清楚您想要什么样的外观和皮肤(比如主题、自定义样式或者无)。
除了用户界面之外,您的需求应该还包括功能(比如Excel导出或者打印)。总之在您选择控件之前,您最好充分了解您的需求,这有利于您做出基本选择,确定某一个控件包。
2. 通过试用评估控件的能力是否覆盖您的需求
完成初步选择之后,就是评估控件的能力和功能。可以通过搜索网络或者咨询业内专家来帮助您评估哪一个提供商的产品和功能更适合您的应用程序。逐项检查并核对所选控件包是否能够提供您所需的每一个功能。一个简单有效的办法是查阅控件提供商的网站,网站中有功能列表,同时浏览其部署的在线演示和Demo。通常情况下,网站内容和在线演示是互相匹配的,参照使用会有更好的效果。
需求 |
Component Suite One |
Component Suite Two |
Component Suite Three |
拖拽分组 |
|
|
|
多月日历 |
|
|
|
PDF导入导出 |
|
|
|
支持XML数据源 |
|
3. 评估成本
走到这一步,您应该已经看到购买控件要比自己开发更加节约成本。在你浪费时间去进一步评估或者开发原型的时候,您可以通过许可策略和价格再消灭一个可选项。这是个相对简单的任务。大多数第三方控件提供商都提供有竞争力的定价和授权模式以及免费的部署许可,所以看起来都差不多。但是实际上当您进入具体细节问题就有所不同了。比如:
a) 购买多个授权或者团队授权是否有折扣?
b) 我是否需要为服务器购买额外授权?
c) 如果我的开发人员拥有2台计算机,我需要给他购买2个授权吗?
d) 每年的续费价格是多少?
多数提供商会为多个授权或者团队授权提供折扣,这可能不容易在网站上找到,所以最好和销售代表建立良好的关系。通常来说,您可以通过网络聊天或者电话询问多套折扣信息。对于功能类似的产品之间,价格的对比同样重要。当然,有时您也需要告诉您的老板,你做出了省钱的决定。当然,如果产品功能相对于其他竞争者更能满足您的项目,那么价钱就无关紧要了。
4. 做初步决定,缩小选择范围
此时,您可能已经排除了部分后选产品并且对有某个产品有些倾向。如果您还有时间或者资源的话,您可以将范围锁定到2,3个提供商的产品,或者锁定到一个。基于之前的关于价格和功能方面的评估,也许您已经找到最佳选择。如果在前面的评估过程中还有些为解决或者不确定的问题点,您也可以适当为您选择的产品“扣分”。在接下来的不种种,您可以更加确定您的选择,排除不确定性,当然也可能重新回到开始,重新选择产品。
5. 测试并建立原型
如果前面的步骤都进行的比较顺利,那么现在是动手的时候了。大多数第三方控件提供商都提供30天的免费试用期。利用这个时间,不仅要评估产品,还要建立原型。最好使用贵公司的真实数据,如果有困难,至少也要建立同等结构和规模的数据,模拟如何将数据加载的界面上。
同时,利用这段时间还要看看使用第三方控件如何实现您的需求。大多数控件可以通过设置一些属性来完成需求,简化您的工作,但也有些情况下,可能需要更多的编码才能完全匹配业务逻辑。演示程序往往会凸显产品的功能而忽略实际用例中的某些重要细节,所以原型的制作尤为重要,这是您确认支付前的关键。
如果您所选择的产品所做的原型和测试工作无法满足需求,需要回到第2步,尝试其他控件产品。当然,如果测试没有问题,那么您基本上可以下结论了。
6. 做出最终决定
还有一些事项,在您最终决定支付前需要考虑一下,包括:文档和技术支持、可扩展性和可靠性。大部分控件提供商都在国外,在国内只有经销商或者代理商。这在中文文档,尤其是本地化技术支持方面会有不足。如果提供商在国内有分支结构或者专业的支持甚至研发团队,那在文档和技术支持方面就更让人放心。
可扩展性表示您所购产品对于未来技术的兼容性。换句话说,这就是控件的潜力。如果可扩展性做得好,相当于您所购买的产品能够在未来升值。在考虑这一点的时候,有以下几个方面可以参考:
控件包中您所需要的控件是不是在不同平台都有对应的产品?
控件是否基于或者遵循行业标准,比如是否支持HTML5、CSS3、jQuery等?
控件包中是否支持潮流技术,比如AngularJS、Knockout、MVVM模式、WinRT等?
购买控件实际上是一种投资。您需要考虑的是所购产品是否出自于优秀的企业,是否有长期稳定并围绕周期进行开发,值得信赖的团队。新兴的或者小企业相对存在更大的购买风险。衡量这一点,一个最简单的办法就是看这个产品的提供商和团队是否专注于控件领域,同时为控件用户提供产品和服务的历史有多长。