使用Mono开发应用程序以在Windows和Mac OSX(可能是Linux)上运行时,您会建议使用WinForms或GtkSharp进行GUI以及为什么?
非常感谢具体的例子和成功/恐怖故事。
答案 0 :(得分:16)
跨平台开发是一个不错的主意,但说实话,我从未见过在其原生环境之外看起来真正良好的应用程序。这就是为什么我认为,如果你真的想要提供良好的用户体验,你应该在你想要支持的所有平台上使用本机工具包。
当然,如果您只是想要一个概念证明,那么Mac(或Linux)上的WinForms就可以了,但是如果您想要一个与其他本机解决方案竞争的应用程序,那么您真的应该考虑为每个解决方案编写一个单独的本机前端支持的平台。
如何做到这一点的一个很好的例子是来自MindManager的Mindjet。他们的Mac版本是一个完整的,从头开始重写界面。结果是一个应用程序,为Mac用户提供他们在平台上学到的经验。
所以,回到Mono。有Cocoa bindings in Mono。就个人而言,我从来没有尝试过使用它们,但是如果你想用你的应用程序定位Mac,它们肯定值得一看。如果它们可以被视为Mac上UI开发的有效选择,那将是非常好的。
答案 1 :(得分:3)
在决定是否使用跨平台架构时,要模糊您的需求,即在敏捷方面实现变革和开发时间。使用特定于平台的UI框架(几乎)总能让您获得比跨平台更好看的结果和更好的结果。
答案 2 :(得分:0)
GtkSharp在Mac OS X上需要X11.Mac用户会发现这很糟糕。我没有在OS X上尝试Winforms,但是mono的Linux winforms支持非常不成熟(错误)和缓慢。我认为此时OS X不存在成熟的.net GUI工具包,至少在Swing或SWT级别没有。
答案 3 :(得分:0)
您应用的大部分用户都有哪些平台?如果大多数用户是Windows用户,请使用Winforms,但如果大多数用户是Linux用户,请使用Gtk#。我不知道哪一个最适合OSX。