即使Mono始终落后于.NET框架的最新发展,为什么您还想使用Mono而不是另一种传统的开源语言/框架(Java)?
编辑: 正如下面有人提到的那样,我想根本问题是,为什么您要在Linux平台上使用.NET?
就我个人而言,我更信任Linux作为服务器平台,但想使用C#作为编程语言。
有些人比起Java更喜欢C#。此外,需要考虑到C#是ISO标准语言,而Java则不是。也许你想在Linux服务器上运行ASP.NET代码?事实上,有很多原因。
我认为这取决于个人喜好。我熟悉c#,想开发可以在我的Ubuntu笔记本电脑或Vista笔记本电脑上运行的应用程序。因此,我使用mono。如果我更熟悉Java,那可能就是我会使用的。
仅供参考。
由于微软在实施变更之前向C# ISO标准提交更改,理论上Mono不需要跟随.NET。但现实情况是,庞大的微软预算能够率先到达终点。
正如大家所说的,“在Linux上运行C#”或“跨平台”或其他相关内容。
我对Mono感兴趣的原因是它可以利用所有.NET的优势,而Java无法做到这一点。基本上,你的问题归结为Java与.NET的比较,我不会开始列举它们之间的数百个比较点(在Google上,你会找到许多J2EE vs. ASP.NET和Java vs. C#的比较)。
那么.NET和Java之间的主要区别是什么呢?它与.NET背后庞大的力量(Microsoft,Novell正在将其翻译为其他平台)或Java的多厂商方法有关。仅选择一个应用程序服务器的过程可能足以让一些人选择Mono。
像微软这样的一个大型独立供应商相对于Java似乎有哪些优势:
然后还有其他巨大的区别:Java是一种单一的语言,而Mono(我认为)可以运行从各种语言编译的CLR代码。
Mono在某些方面落后,但在其他方面则领先。例如,Mono支持SSE和全AOT编译 - 内置的。另一方面... Mono需要一些时间来实现即将推出的新 .NET 版本中的所有新功能... 例如... 相当广泛的并行库。
任何使用Mono的人都面临来自Microsoft的软件专利危险。
这就是为什么不仅新应用程序应避免使用Mono,而且首先应避免使用C#。
只有当你已经被Windows束缚并想要逃脱时,迁移到Mono才有意义。