我目前正在使用单声道和SuSE和Windows中的测试在C#中开发桌面应用程序。这个概念并不重要,但它是一个“网络棉绒”。将扫描网站并返回安全性和/或跨浏览器兼容性的可能问题的程序。但是,我希望能够为多个平台提供二进制文件。我应该继续使用Mono,还是有另一个平台可以为我提供更好的平台可用性,例如Mac,Windows,Linux和其他(可能是移动平台),并且更容易移植?

有帮助吗?

解决方案

对于大多数桌面环境而言,C#和Mono可能足够跨平台。诀窍将是“移动平台”。需求。

移动操作系统非常多样化,你可以做很多事情来概括。有些人有Java,比如Blackberry。 C#可能会让您进入基于Windows Mobile的平台。 iPhone做自己的事情。你几乎必须选择一个平台并将其作为目标。这最终可能会通知您的桌面平台选择。

其他提示

嗯,你最好的选择总是使用一种实际存在于所有平台上的语言。这通常意味着Java,我认为,即使perl有移动平台的风味(取决于所讨论的移动平台)。

我在C和Perl中完成了大部分的跨平台工作,但是有很多令人头疼的问题(很多#ifdef's),并且perl可能不在你关心的移动平台上(还)。您必须评估要定位的所有平台通用的语言/编译器/解释器,然后从该列表中进行选择。在不知道这些平台的完整列表的情况下,我们将很难告诉您使用什么,尽管Java有足够的流行语可能成为一个强有力的候选者。

如果您了解C ++, Qt 将涵盖许多平台。

坚持使用Mono,确保你有Gendarme代码检查员(FxCop for Mono)检查代码的可移植性问题,你应该没问题。

Java将在Windows,Linux和Mac上运行。应该很容易从C#转换 - 使用Apache HTTPClient来抓取您正在扫描的Web内容,扫描代码应该或多或少相同。然而,缺点是要求用户安装Java运行时。

Python是另一种选择 - 您可以为Windows构建独立的可执行文件,默认情况下它与大多数Linux发行版一起提供,还有Mac OS X(需要引用;))。这对Windows用户来说要麻烦得多(语言被编译成可执行文件,不需要其他下载)。

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

这真的取决于你想做什么。对于Web开发,如果HTML / JavaScript足够,那么坚持下去。如果你需要更高级的东西,我会使用ASP.NET和Mono(你可能做过的),因为你已经知道了。 (您可以在此处使用Visual Studio。)

另一个选项可能是(因为您是C#开发人员)使用Silverlight。这为您提供了涵盖Windows和Mac平台的功能,希望 Moonlight 稍后将涵盖Linxu平台。 (您可以在此处使用Visual Studio和Expression Blend。)

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top