慎用国产控件和开发库
对于技术积累有限,或项目周期比较紧张的项目,通常会采用第三方控件或开发库。这些第三方控件多用于图表生成、文件类型转换、数据采集、UI特效等方向,可为项目节省不少时间。
国外某些供应商以开发.Net第三方控件或Java开发库为生,形成了稳定的生态体系。不过,国外控件或开发库对于中文的支持、业务中一些特殊的地方性问题应对能力有限,国产的控件和开发库则将解决以上问题作为卖点,表现得更好。
但对于较大、维护周期长的项目,建议不要考虑国产控件和开发库。根本原因是国内知识产权保护体系不完善,没有为控件供应商留下生存空间,培育不出成熟的独立技术公司。比较突出的问题有以下几个。
(1)产品难以升级,API没有规范性
抛开供应商在你项目开发过程中已散伙的问题不谈,国产控件难以升级是一个大问题。例如,某个图表控件在Windows 8下出现问题,但供应商迟迟无法针对这一问题作出响应。而当它升级时,前后的API可能有很大差别,甚至于是架构上的重大改变,致使你的项目不得不做出相应调整,浪费大量的时间。
(2)功能虽多,却缺乏系统性考量
国产控件比较重视表面上功能,对国内开发者吸引力很强,认为立刻就能解决所有的技术问题。但一些基础的功能却不多,甚至根本没有解决方案。例如,某个国产的二维绘图控件,可支持多种图形格式的输出,不过,连一个最基础的图层排序功能都没有提供,让开发者伤透脑筋。
(3)文档缺乏,支持不力
国产控件不重视文档,提供的文档往往过于简单。由于使用者较少,也没有专门的论坛和答疑平台。当开发碰到问题时,只有联系供应商这唯一途径。往往,这些问题根本得不到解决,供应商甚至认为这些问题不具备共性,不愿意投入力量解决。
(4)价格不透明
国外很多控件明码标价,很多也就几百美元而已。国内的供应商则会根据你的行业背景来报价,你是国企或行政部门,价格报得非常高。而对于学校或民企,价格稍低。但总体来说,综合拥有成本还是比国外控件要高很多。
这些问题虽然已逐渐在改善,但目前来说会给项目研发造成非常多的障碍。对于国内软件生态系统的畸形程度而言,对盗版打击不力,供应商盈利渠道不多,要能达到与国外同等技术水平还要相当长的时间。