多平台开发

时间:2020-03-06 14:53:05  来源:igfitidea点击:

我目前正在使用Cusing mono开发一个桌面应用程序,并在SuSE和Windows中进行测试。这个概念无关紧要,但是它是一个" web lint"程序,它将扫描网站并返回安全性和/或者跨浏览器兼容性的可能问题。但是,我希望能够为多个平台提供二进制文件。我应该留在Mono还是要使用另一个平台,使我在Macs,Windows,Linux和其他平台(可能是移动平台)上拥有更好的平台可用性,并使其更容易移植?

解决方案

Java将在Windows,Linux和Mac上运行。从Cuse Apache HTTPClient轻松过渡,以获取要扫描的Web内容,并且扫描代码应大致相同。但是不利的一面是要求用户安装Java运行时。

Python是我们可以为Windows构建独立的可执行文件的另一个选项,默认情况下,Python附带了大多数Linux发行版以及Mac OS X(需要引用;))。对于Windows用户而言,这省去了很多麻烦(语言被编译为可执行文件,而无需其他下载)。

如果mono在Mac OS X上运行,那么那肯定也是一个很好的平台吗?

好吧,最好的选择永远是使用所有平台上实际存在的语言。我认为,这通常意味着Java,尽管perl也具有针对移动平台的风格(取决于所讨论的移动平台)。

我在C和perl中完成了大部分跨平台工作,但是C引起了一些麻烦(很多#ifdef),并且perl可能不在我们关心的移动平台上(但是)。我们必须评估要定位的所有平台所通用的语言/编译器/解释器,然后从该列表中进行选择。在不知道此类平台的完整列表的情况下,我们将很难告诉我们使用什么,尽管Java具有足够的流行语,很可能会成为一个很好的候选者。

这真的取决于我们要做什么。对于Web开发,如果HTML / JavaScript就足够了,那就坚持下去。如果我们需要更高级的知识,我将ASP.NET与Mono一起使用(我们可能会这样做),因为我们已经知道这一点。 (我们可以在此处使用Visual Studio。)

另一个选择可能是(因为我们是Cdeveloper)使用Silverlight。这样一来,我们可以覆盖Windows和Mac平台,并希望Moonlight稍后可以覆盖Linxu平台。 (我们可以在此处使用Visual Studio和Expression Blend。)

如果我们需要桌面应用程序,那么Java可能是最简单的,因为我们已经知道C#。但是,如果我们知道C / C ++,请尝试以wxWidgets为例。

对于大多数桌面环境,Cand Mono可能已经足够跨平台使用。诀窍将是"移动平台"的要求。

移动操作系统千差万别,概括起来我们无能为力。有些拥有Java,例如Blackberry。 Cmay可以带我们进入基于Windows Mobile的平台。 iPhone做自己的事。我们几乎必须选择一个平台并以此为目标。最终可能会告知我们台式机平台的选择。

如果我们知道C ++,Qt将涵盖许多平台。

只需坚持使用Mono,请确保我们有Gendarme代码检查器(用于Mono的FxCop)检查代码是否存在可移植性问题,并且我们应该一切都很好。

为什么要限制自己使用传统的C#/ Java?看看Adobe AIR和Microsoft SilverLight