我曾经花了一个月的时间去研究各种图形展示控件(第三方控件),试验这些第三方控件是否适合数据仓库分析的图形展示、图形化数据分析。我试过多种图形控件,比较它们的功能、性能,还有价格。在这里,我不想详细讨论各个控件的性能。而是把它们作为一个整体跟微软的MSChart控件做比较:
1. 这些第三方控件性能各有优劣,其中也有少数几个比MSChart强的,特别是在展示界面(美观)上,但是这些是以消耗内存空间为代价的,我们不允许自己的产品因为嵌套了某个第三方控件就运行减速了,客户也不乐意。
2. MSChart功能也是非常强大的,支持多种图形展示效果;甚至给MSChart输入数据的同时它已经给你做了多种统计,这个在我试验的第三方控件中都没有这个功能。虽然这些数据mdx完全可以实现,但是你不能不说这个也是MSChart的亮点之一;更出色的是,MSChart可以把这些统计结果以标签形式连同基本的数据分析在图上一同展示出来。
3. 价格是一个重要的因素,第三方控件甚至有些坐地起价的意思,如果产品热卖了,他们要拿更多的“提成”。这方面微软表现得很大方,MSChart作为 .NET的COM组件之一,软件开发商可以免费使用。也许有人会问,为什么不用OWC,OWC同样是微软的组件,而且展示效果比MSChart好多了,特别是美观。呵呵,这也许是微软的一个市场策略吧,微软把OWC跟Office 绑定。也就是说,如果客户购买你们的产品,他们也必须同时购买正版的Office,这个就很难让人接受。微软高兴,客户不乐意,开发商在中间也不好推广自己的产品。客户决定购买你们的产品了,你却告诉他请同时购买正版的Office。如果客户已经在使用正版的Office当然再好不过,但是无法确保多数潜在客户都已经在使用正版Office。
4. 程序的整体安全、易用性也是不能忽视的。MSChart在VS.NET中跟其他常用控件一样,方便使用,开发封装不是很复杂。使用第三方控件还需考虑它们与.NET兼容性,以及是否会因此存在安全隐患。
5. 也是比较重要的一点,MSChart支持多级别标签(label)显示,这个正好适合的数据立方体(Cube)的多维展示,使得多维数据集的图形展示更加直观,而且级别之间还可以订制层次,实现金字塔式的显示标签。
以上都是从我们的产品出发来考虑,如果在某一个单一项目中考虑很多第三方控件还是不错的选择。这其中有一个免费的开源控件ZedGraph,虽然功能不是很全面,但是基本的展示还是够了,就曾经有一家公司(具体不说哪家公司了)将其用在自己的产品中了,效果还是不错的,这是闲话。