Gin*_*as_ 11 c# gtk mono winforms
我正在使用Visual Studio,winforms和我正在使用openTK进行应用程序.最近我想过让它跨平台.我打算使用Mono,因为我不知道其他类似的东西.我完全没有使用GTK +的经验.在我的应用程序中,目前有4个窗口(当然将来还会有更多).我想在Windows,Linux和OS X中快速开发应用程序.我读过,GTK +比WinForms更好,但仍然不确定选择哪个.那么,我应该为GTK +重新制作一切,还是继续使用WinForms ?为什么?还有,有什么工具可以帮我吗?
ruf*_*fin 16
老实说,你需要告诉我们更多关于你的观众 /目标市场的信息,以便提供一个很好的答案,但是从我开发的一些经验中获得的0.02美元是桌面上Mono的GUI开发是一个多目标事件,如果你想要的话这样做"正确".您将需要异常模块化地开发共享后端,然后每个平台编写一次UI.
视窗
如果你的应用处于起步阶段,在Mono上实现的Windows.Forms是一个很好的拐点,允许你立即定位Windows 并在OS X和Linux上以一种有点残缺的方式部署.但请注意,我在IRC上被告知Mono上的Windows.Forms开发基本上已经死了.旧的错误没有得到更新,例如,我在测试的几分钟内遇到了在OS X上的RichTextBox中运行的SelectionBackColor(这是在Mono用于OS的Windows.Forms的一个问题).很好,它可能适用于快速实用程序,您可以编写其限制的代码(请参阅此处的问题示例).
OS X.
对于OS X的定位,如果你有一个真实的,商业的,最终用户的应用程序,你将需要习惯,嗯,与Interface Builder接口. 我应该在这里明确指出,使用XCode和Interface Builder 绝对要求你可以访问运行OS X的盒子. 否则,你会遇到Windows.Forms,或者最好,我认为,Gtk#.
Xamarin做得非常出色,使得它的IDE存根连接到在XCode中构建的本机UI.这就是他们为iOS开发做的事情.虽然文档很薄弱,但它运行得相当好.2011年迈克尔·哈钦森(Michael Hutchingson)有一段很棒的视频描述了这个过程,尽管我认为它在牙齿中变得越来越长(即"旧").(直接链接到视频)
我假设如果你想要定位Mac App Store,Interface Builder也是你唯一真正的选择.但是,看起来,它是一个本地用户界面,它存储在你的C#代码中,所有这些都被认为是一个很好的折衷方案.
Linux的
我还没有真正针对Linux.看起来像Gtk#会很自然,但我在那里没有太多动手帮助.我的东西构建在Windows.Forms中,并且有粗糙的边缘,就像在OS X中一样.如果我更严肃,我会从Gtk#开始,这也是MonoDevelop也有GUI RAD的地方.
一个严肃,成熟,跨平台的Gtk#app的例子
快速说明:Banshee使用Gtk#来定位OS X,Windows(alpha)和Linux.您可以通过查看其邮件列表和其他资源,了解在大型应用程序跨平台上使用Gtk#的难度.
对不起,这个消息并不容易.没有银弹/单一的正确答案.
201607更新:我认为答案正在逐渐成为使用Xamarin.Forms来实现跨平台的目标.你现在可能仍然在编写一个单独的Mac界面,但是有理由相信在某些时候也会支持Xamarin.Forms; 见下文.
不幸的是,如果你的目标是Linux,我认为你现在仍然和以前一样.
Kar*_*ren 10
我建议您考虑目标受众是什么.使用像GTK这样的框架编写UI可能看起来不错,但对于普通用户来说,您的应用程序看起来不像其他Windows/OSX应用程序那样容易阻止人们使用它(除非它在其他方面非常特殊).
执行此操作的最佳方法(由于时间/预算限制可能无法实现)是将应用程序逻辑放在单独的程序集中,然后为每个平台编写UI,使用Winform(或WPF)for Windows,MonoMac/Cocoa for OSX和GTK#for Linux.它也不会限制您使用所有平台上可用的功能,这会大大降低用户体验.
| 归档时间: |
|
| 查看次数: |
15976 次 |
| 最近记录: |