C#学习教程:使用C#和Mono为OSX构建CocoaUI我想移植一个现有的C#应用程序以在OSX上运行。理想情况下,我会在Mono上运行该应用程序并为其构建一个本机CocoaUI。我想知道哪座桥是最好的选择。如果它对任何人都有用,这里有一些我目前发现的桥接器的链接:Mono团队发布了一个名为MonoMac的新桥接器。它本质上是他们为iPhone制作的MonoTouch框架的桌面版本。Miguel在他的博客上宣布了新桥:http://tirania.org/blog/archive/2010/Apr-19.html一旦MonoMac成熟,我怀疑它会成为人们使用的桥。我最近一直在试验Monobjc、NObjective和MObjc/MCocoa以及F#,我会选择MObjc/MCocoa。Monobjc就像您编写的最好的记录和打包的,但与其他两个相比非常慢,并且不会从ObjC中“重新抛出异常”。我相信NObjective和MObjc/MCocoa是仅有的两个重新抛出ObjCexceptions的对象,这就是为什么我发现它们是唯一真正的替代方案。如此处所讨论的,NObjective使用具有继承性的结构,我发现这很糟糕,最终让我选择了MObjC/MCocoa。(您可能还有许可问题。Monobjc和NObjective在LGPL下,MObjc/MCocoa在MIT下...)我认为NObjective是最佳选择,因为它具有Objective-C包装器的自动代码生成功能,可以轻松配置以重新生成包装器对于其他版本的MacOS。好的,我会问:你为什么要这样做?Cocoa的UI结构,包括Cocoa-stddelgates和Cocoabindngs,与Objective-C密切相关。InterfaceBuilder和Objective-C的结合效果非常好。虽然您可以将InterfaceBuilder与Objective-C(包括PyObjC、MacRuby和许多C#桥)一起使用,但由于框架与您选择的语言之间的任何阻抗不匹配,您将不可避免地降低工作效率。对于C#,这种不匹配很重要。由于您正在编写本机UI,因此失去了从C#获得的任何跨平台优势,因此我会使用Objective-C。对于称职的C/C++/C#/Java/等。程序员,通常需要2-3天的时间才能熟练掌握Objective-C并提高工作效率。在Mono-OSX邮件列表上对各种桥进行了相当长的讨论。讨论从Miguel开始:如果你阅读了讨论的其余部分,Mono社区似乎倾向于Monoobjc或MObjc/MCocoa;所以如果你自己做调查,这些可能是需要看的东西。不会问为什么,因为你肯定有理由。我会看一下Unity3D项目,看看您是否可以证明他们是如何做到的。看起来,嗯,很难。以上就是C#学习教程:使用C#和Mono为OSX搭建CocoaUI,如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
