我目前正在用C#开发一个桌面应用程序,在SuSE和Windows中使用mono和测试。这个概念并没有多大意义,但它是一个“Web lint”程序,它将扫描一个网站并返回安全性和/或跨浏览器兼容性的可能问题。不过,我希望能够为多个平台提供二进制文件。我应该和Mono呆在一起,还是有另一个平台可以提供更好的平台可用性,例如在Mac,Windows,Linux和其他平台(可能是移动平台)上,并且使其更容易移植?多平台开发
多平台开发
回答
对于大多数桌面环境来说,C#和Mono可能是跨平台的。诀窍将是“移动平台”的要求。
移动操作系统是多种多样的,并且你可以做很多事情来推广。有些人拥有Java,就像黑莓手机一样。 C#可能会让你进入基于Windows Mobile的平台。 iPhone会做自己的事情。你几乎不得不选择一个平台并将其作为目标。这可能最终会通知您的桌面平台选择。
Java将在Windows,Linux和Mac上运行。应该很容易从C#转换 - 使用Apache HTTPClient抓取正在扫描的Web内容,并且扫描代码应该差不多一样。但缺点是要求用户安装Java运行时。
Python是另一种选择 - 您可以为Windows构建独立的可执行文件,默认情况下,它随大多数Linux发行版一起提供,还提供Mac OS X(需要引用)。这对于Windows用户来说很少麻烦(语言被编译到可执行文件中,不需要其他下载)。
如果mono在Mac OS X上运行,那么肯定这是一个很好的平台?
那么,你最好的选择总是使用一种实际存在于所有平台上的语言。我认为这通常意味着Java,但即使perl也适用于移动平台(取决于所讨论的移动平台)。我在C和Perl中完成了大部分的跨平台工作,但是有一些令人头疼的问题(很多#ifdef),而且perl可能不在你关心的移动平台上(但是)。您必须评估所有想要定位的平台所共有的语言/编译器/解释器,然后从该列表中进行选择。在不了解这些平台的完整列表的情况下,我们很难告诉你要使用什么,尽管Java有足够的热门词汇可能成为强有力的候选者。
这真的取决于你想要做什么。对于Web开发,如果HTML/JavaScript足够,那就坚持下去。如果你需要更高级的东西,我会使用ASP.NET和Mono(你可能做了什么),因为你已经知道了。 (您可以在这里使用Visual Studio。)
另一种选择可能是(因为您是C#开发人员)使用Silverlight。这会让你覆盖Windows和Mac平台,并希望Moonlight稍后将涵盖Linxu平台。 (您可以在这里使用Visual Studio和Expression Blend。)
如果您需要桌面应用程序,那么Java可能是最简单的,因为您已经知道C#。但是,如果您知道C/C++,请尝试以wxWidgets为例。
如果你知道C++,Qt将覆盖很多平台。
只要坚持单声道,确保你有宪兵代码检查员(FxCop for Mono)检查你的代码的可移植性问题,你应该没问题。
为什么限制自己到传统的C#/ Java?看看Adobe AIR和Microsoft SilverLight
- 1. 多平台开发选项
- 2. 开发跨平台游戏,与开发人员在多个平台上
- 3. 跨平台开发?
- 4. 许多平台上的LibGDX开发
- 5. 跨平台游戏开发
- 6. 跨平台开发建议
- 7. 的OpenCL开发平台?
- 8. 跨平台移动开发
- 9. 钛移动开发平台
- 10. Xamarin跨平台开发.net
- 11. windows开发平台安装
- 12. 开发跨平台XNA库
- 13. 黑莓开发平台
- 14. 跨平台COM开发
- 15. Windows 7开发平台
- 16. 实时多人2D跨平台游戏开发的最佳平台
- 17. 在多平台开发中使用Emacs的eshell有多普遍?
- 18. 跨平台桌面GUI的首选开发平台?
- 19. 使用ZeroMQ进行跨平台开发?
- 20. Facebook应用程序平台开发
- 21. 使用GLKit进行跨平台开发?
- 22. Facebook开发人员添加平台
- 23. 通用Windows平台(UWP)开发
- 24. 哪些平台可以用Sing#开发?
- 25. 安装AVR开发平台的Mac
- 26. 衡量开发平台效率
- 27. Java跨平台移动开发
- 28. 使用Mac进行跨平台开发?
- 29. Html5 websockets php开发的理想平台
- 30. TDD和iPhone游戏开发平台