拜金融危机所赐,很多CAD厂商打算把产品移植到MacOS,Linux等平台上。从Bricsys
公司和Graebet
公司的经验中,我们可以学习到如何移植你的CAD软件。

重写那些依赖于微软API的代码。

Bricsys使用wxWidgets,这是个优秀的跨平台GUI库。开放源代码并且有很多社区的支持。Graebet公司使用Qt。这个代码库刚刚被Nokia收购,现在可以使用LGPL授权来使用了。这步大概花费了1.5到4年的时间,涉及到95%~98%的代码。

为各个平台修改软件,适应不同的操作系统。

2~5%的代码是和特定平台有关系的,例如文件操作,GUI,设备驱动等。对于不同的操作系统,问题是不同的:

  • Linux:用户不是很在乎图形界面,可以稍作修改即可,直接使用Windows的界面设计。比较麻烦的是软件安装,打印机驱动等问题。
  • MacOS:必须重新设计图形界面,主要的问题是鼠标要适应CAD软件的交互应用。软件安装和打印驱动倒不是问题。

测试再测试,然后发布产品。

这两个公司做法不同:

  • Bricsys打算先发布Linux版本,这是由于已经有客户需求。MacOS的版本则要等到发布之后才开始开发。
  • Graebert则同时开发三个平台的产品,Windows,Linux,MacOS。

在90年代初,有很多CAD软件运行在不同的操作系统中,DOS,Unix,Macintosh,Atari。然后由于微软的兴起,人们花费巨大代价将所有的软件移植到Windows,现在,这些公司又开始Undo了。