mono - MonoMac 被弃用了吗?

标签 mono monodevelop monomac xamarin.mac

MonoMac 的页面似乎被放弃了。它似乎是几年前的最后一次更新,因为它说“Mountain Lion”是"new"操作系统。

New Lion and Mountain Lion APIs for AppKit



MonoMac 在 Xamarin Studio 中处于“不支持”状态(我想下载 Mono Develop,但页面自动重定向到 Xamarin Studio)。

那么 MonoMac 是已弃用还是仍在与 Xamarin.Mac 一起积极开发?

最佳答案

差异没有很好地传达; they don't even do a great job themselves on the forums .和 MonoMac去年不是特别活跃。

但快速的答案是 MonoMac 还活着。 “不受支持”仅表示您尚未购买 Xamarin 许可证,因此不要指望 Xamarin 客户支持在出现问题时提供帮助。但是在 Xamarin.Mac 出现之前,你已经在这条船上了。

请注意,Mono qua 开源运行时仍在积极开发中。您还可以download MonoDevelop for Linux例如,在 Xamarin 开始销售许可证之前,MonoMac 的情况是怎样的。 MonoDevelop 本身是 still pretty active ,截至撰写本文时,最近 13 天前已 checkin 。所以 Mono 仍然存在,事实上,它是所有 Xamarin 编程产品的子集。

Mono-on-Mac 的两个不同之处在于,您可以使用 MonoMac 的 AppKit 等、程序集和 Xamarin Studio 的事件版本在 Mac 上进行开发,而不必拘泥于 Gtk# 和 MonoDevelop。这些都是非常好的事情。

MonoMac 相当于 Xamarin.Mac 的 Xamarin“入门”版本。

但它更好。 Xamarin 的其他两个受支持平台(Xamarin.iOS 和 Xamarin.Android)的“入门版本”具有 "build limits" ,这限制了您在需要购买许可证之前可以构建的应用程序(包括链接)的大小。 MonoMac 并非如此。所以 MonoMac-via-Xamarin Studio 是一种“类固醇入门版”。在 MonoMac 上,您可以制作任意大小的应用程序并将其发布到野外。

问题? MonoMac 项目基本上假设您的用户在他们的 Mac 上安装了 Mono 运行时,并将通过 mono 打开您的程序集。命令行上的命令——就像您必须使用“旧”MonoMac 一样。如果您想针对传统的最终用户,这并不是很顺利。您可以使用 BockBuild帮助在没有许可证的情况下执行类似于 Xamarin.Mac 的应用程序捆绑(这就是 Banshee 使用 BockBuild 的方式)来制作独立的应用程序捆绑包,但我不确定 BockBuild 的通用性如何。

但是……在其他两个“入门”版本中,您确实获得了一个不错的、随时可以部署的应用程序包。也就是说,如果你已向 Apple 支付了 99 美元成为 Apple 开发人员并在 Starter 上制作了一个小型 Xamarin.iOS 应用程序,你可以立即将该应用程序部署到 iOS App Store,而无需支付 Xamarin.iOS 许可证。因此,从这个意义上说,MonoMac 比其他地方的 Starter 版本更糟糕。

历史推测(我脑子里有点糊涂):这是正确的时间MonoMac Packager出现了 Xamarin.Mac was released和 MonoMac 通过 MonoDevelop “死了”。人们确实在 Mac App Store (iirc) 上发布了 MonoMac 应用程序,但 Xamarin 宁愿您今天购买许可证来这样做,开源 (?) MonoMac Packager 的支持确实消失了 ,被 Xamarin.Mac 吞下。我相信要点是 Xamarin 明白他们是从开源 MonoMac 开始的,如果他们停止支持 Mac 开发(也就是说,如果他们降低了我们在 Xamarin 之前的预期的实用性),就会有一些阻力。

EDIT: A few more historical links. Cocoa#, which was released in 2004 and continued development until 2008, predated and, Miguel says, informed the creation of MonoMac. CocoaSharp was also released with Mono for a while. I know I've conflated MonoMac & Cocoa# in my head at times. MonoMac seems to have been born around 2010, after MonoTouch.



Xamarin 让我们在他们最新的 Xamarin Studio 中保留 MonoMac-ing,并继续受益于他们对核心 Mac 功能集执行的升级,这真是太棒了。

所以 Xamarin.Mac 建立在 MonoMac 之上 ,而且在某种意义上不免得到支持。唯一的问题是 Xamarin 允许我们使用“不受支持”的 MonoMac 项目构建我们想要的尽可能大的应用程序,而不是用类似于 X.iOS 和 X.Android 的“入门”版本替换 MonoMac。我希望他们会继续做正确的事情,而不是剥夺原始开源 Mono 社区赋予我们的能力:让任何人都可以使用 C# 使用原生 Mac UI 构建功能齐全的应用程序。

这感觉有点乱,但我希望它有所帮助。 MonoMac 存在,Xamarin.Mac 是它的超集。同样,购买 Xamarin.Mac 的最大优势是应用程序捆绑,但还有一些额外的程序集(James 在下面列出了一些程序集:“GameKit、StoreKit 等”),并且正如 James 还指出的,64 位支持。 Xamarin 在营销这些好处方面做得并不好。

但是,您问题的底线是,您不应该觉得 MonoMac 是二等公民。您现在实际上处于一个很好的位置,可以根据需要构建复杂的 Mac-native[ish] 应用程序。

关于mono - MonoMac 被弃用了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28139138/

相关文章:

c# - 如何在 Linux 上使用 Mono 获取文件信息

xamarin.ios - 相当于 UIWebView 选择器 webView :shouldStartLoadWithRequest:navigationType: in MonoTouch

macos - 具有自定义频率和持续时间的蜂鸣声

mono - 不受管理的: IP: 0x26eb76,故障地址中的堆栈溢出:0xbf808ffc

c# - Mono SQLite 上的 System.DllNotFoundException

Pythonnet异常: "The ' ExeConfigFilename' argument cannot be null"

c# - 在 Unity 中访问具有不同副本的游戏对象

c# - Monodevelop:从 C#/Visual Studio 移植:双击消失

macos - 具有自定义频率和持续时间的蜂鸣声

asp.net-mvc - 单声道 - 找不到 system.web.mvc