.net Linux上Mono的当前状态?

.net Linux上Mono的当前状态?,.net,linux,mono,.net,Linux,Mono,我是Windows平台上.NET Framework的长期用户,但我也在Linux上做了很多编程。我想在一些特定的项目中利用Mono,但上一次尝试(可能是2年前?)Mono根本无法胜任这项任务。同样,无论是从他们的网站还是谷歌搜索,都很难获得关于Mono状态的真正好的信息 对于那些习惯在Windows上使用.NET3.0的人来说,有没有哪位Mono大师可以简化项目的当前状态?大概有多少基类库是可用的,有多少WinForms是可用的 提前谢谢 我想说,如果它能够支持Unity这样的游戏创建引擎的开

我是Windows平台上.NET Framework的长期用户,但我也在Linux上做了很多编程。我想在一些特定的项目中利用Mono,但上一次尝试(可能是2年前?)Mono根本无法胜任这项任务。同样,无论是从他们的网站还是谷歌搜索,都很难获得关于Mono状态的真正好的信息

对于那些习惯在Windows上使用.NET3.0的人来说,有没有哪位Mono大师可以简化项目的当前状态?大概有多少基类库是可用的,有多少WinForms是可用的


提前谢谢

我想说,如果它能够支持Unity这样的游戏创建引擎的开发,那将是一个漫长的过程,Unity被用来开发模拟人生3等等。此外,Mono团队在自己的游戏中以某种方式击败了微软,创造了一个静态链接器,使.NET代码可以在iPhone上本机运行,以及一个C#REPL控制台

不管它值多少钱,我一直在ASP.NET方面使用它,虽然有一些颠簸,但这是一次非常积极的体验。我能够使用NHibernate和MySQL运行ASP.NET MVC应用程序。

声明支持以下C#3.0功能:

  • 匿名方法
  • 迭代器
  • 部分类
  • 仿制药
  • 可空类型
  • 朋友聚会
  • 静态类
  • 协变与逆变
  • 属性访问器可访问性
  • 固定缓冲区
  • 外部程序集别名
  • 命名空间别名限定符
  • 内联警告控制
  • 扩展方法
  • LINQ语法
  • 表达式树
  • 自动属性
  • Lambda表达式
  • 匿名类型
高级状态:

API状态:

如果要将现有应用迁移到Linux:

我还认为最好是

  • 考虑一下Mono的某些用例。。。你现在的问题太笼统了
  • 在邮件列表上提出具体问题,因为许多活跃在邮件列表中的聪明和知识渊博的人可能不会阅读StackOverflow:
我的短暂经历总结如下:

  • Asp.NET2.0已经完全实现,我可以让Asp.NETMVC工作
  • Windows窗体是受支持的,但永远不会是高质量的,因为它不是一个优先事项。省去你的痛苦,只需为你的Linux端口创建一个Gtk接口
  • 基本库已经实现,LINQDB几乎已经实现了,但是对于特定于Windows的API,比如WPF和WCF,您不会有任何运气,尽管Silverlight是在中实现的
  • Mono在最近需要强大脚本环境的游戏中取得了成功。请参阅使用Mono的公司:

关于新闻和内容,请关注Miguel的博客

当前的mono实现(2.4)在.NET2.0编译方面相当不错(以及3.5中的一些库,如ASP.NETMVC或LINQ),但与通用的.NET3.0/3.5仍相去甚远。如果您的应用程序是使用winforms设计的,并且没有太多使用.NET3.0/3.5中的内容,那么您很有可能使用mono。当然,.NET3.5框架的某些部分可能永远不受支持,比如WPF


mono页面上有一个选项,可以确定您的应用程序在mono 2.4下是否运行良好。

根据我在Window Forms区域的经验,.NET 2.0部分似乎运行良好。软件越复杂,问题就越多。有些事情必须改变才能让事情顺利进行。比如路径分隔符。此外,一些Win Forms控件的行为也不同,事件触发顺序之类的小事情会悄悄地出现在您的身上。您必须测试所有内容,您将发现问题,就像在Java中一样。您将在所有排列的Win/Mono和Linux/Mono中发现问题,而且Mono确实存在未修复的bug,这些bug可能会成为一个阻碍

您可以使用MOMMA工具查找已知问题,但它并不能捕获所有问题。

调试问题非常缓慢,并且很难设置调试环境


但我认为对于.NET 3.0来说,这还为时过早,除非你是为了好玩而这么做。

根据我的经验,像datagridview这样的特殊控件已经取得了长足的进步。他们正在到达那里,但他们还没有完全到达那里

我使用OpenTK库开发了一个小型OpenGL应用程序。这个应用程序在Windows和Mono上运行时基本相同,但datagridview之类的东西在实现中似乎有点随机。选择mono的最新版本,你应该会很好


在我看来,这些差异现在是微不足道的,没有任何dealbreaker(execpt可能是调试器)。Monodevelop缺乏VS所拥有的优秀重构工具。

这可能是一个很好的公共wiki或其他名称。不确定是谁否决了这一点。。。就我个人而言,我认为列出一些没有实施的事情更重要,但列出一些仍然很方便的事情。我同意,贝姆罗斯-这个列表实际上缓解了我的恐惧,只是为了看看我能用什么。非常方便。谢谢你,SoloBold,提供信息+关于调试环境,有一点非常有趣。这是.net在windows端开发的真正好处之一——这将是一颗难以下咽的药丸!是的,特别是如果你使用VS,他们倾向于使用MonoIDE。然后是各种库替换和窗口管理器。