使用Mono over Java(或任何其他“免费”或Linux友好语言/运行时)的主要好处是什么?
Mono将始终落后于.NET框架的最新发展,你为什么要使用Mono而不是其他传统的开源语言/框架(Java)呢?
编辑: 就像下面提到的人一样,我想根本问题是,你为什么要在Linux平台上使用.NET?
答案 0 :(得分:62)
答案非常明显:因为你想在Linux上使用.Net。
这当然引出了一个问题(我认为这就是你所得到的):你为什么要在Linux上使用.Net(通过Java)?
很多原因:
答案 1 :(得分:11)
就个人而言,我更信任Linux平台作为服务器,但希望使用C#作为程序语言。
答案 2 :(得分:8)
你想在未来的某些时候在iPhone,Wii和Android上使用C#。看到这个链接。 http://arstechnica.com/open-source/news/2009/01/open-source-mono-framework-brings-c-to-iphone-and-wii.ars
答案 3 :(得分:7)
有些人比C#更喜欢C#。另外,考虑到C#是ISO标准语言而Java不是。也许你想在Linux服务器上运行ASP.NET代码?真的有很多原因。
答案 4 :(得分:4)
我认为这取决于个人偏好。我对c#很满意,我想开发可以在我的Ubuntu笔记本电脑或Vista笔记本电脑上运行的应用程序。因此,我使用mono。如果我对Java更熟悉,那么这可能就是我使用的。
只需2美分。
答案 5 :(得分:2)
我曾在一家公司工作,其主要产品是用ASP.NET编写的。他们意识到,如果他们能够在Linux服务器上运行他们的产品,他们可能会增加他们的市场份额。如果不是Mono,这当然会很困难。我被赋予了花一些时间查看他们的代码在Mono下运行多少(如果有的话)的任务。这可能是大约2年前 - 大部分都是编译过来的,但当时Mono对仿制药的支持还有点不尽如人意。我认为它从那时起已经成熟,但有些代码甚至都不会解析。代码还使用p / invoke来调用本机代码,这样也使得事情变得有趣。不过,尝试让它运行肯定很有趣。
答案 6 :(得分:2)
由于Microsoft在制作之前提交了对C#ISO标准的更改,理论上Mono并不需要跟踪.NET。实际上,大老的MS预算首先进入终点。
答案 7 :(得分:2)
正如大家所说,“在Linux上运行C#”或“跨平台运行”或其他什么。
我之所以对单声道感兴趣 - 而且我还没有被说服接触它 - 是否有可能利用.Net提供的所有Java所没有的东西。基本上你的问题确实归结为Java与.Net的比较,而且我不会开始在它们之间进行百万分之间的比较(在Google中你会发现J2EE与ASP.NET的比较,这是一部分,Java与C#,这是另一部分。
但.Net和Java之间的最大区别是什么?它与.Net(微软和Novell试图将其转换为其他平台)或Java的多供应商方法背后的单一力量有关。只是选择App Server的过程可能足以让某些人选择Mono。
像微软这样的大型单片厂商给你的Java似乎没有什么:
然后还有其他巨大差异:Java是单一语言,而Mono(我认为)可以运行各种语言的CLR编译代码。
答案 8 :(得分:2)
Mono在一些事情方面落后,但在其他方面领先一步。例如,Mono支持SSE并且提前完成编译 - 内置。另一方面......它将需要Mono来实现即将发布的.net版本中所有即将发布的新内容......例子......相当广泛的并行库。
答案 9 :(得分:1)
用一个词?跨平台的
答案 10 :(得分:1)
使用Mono的任何人都面临微软的软件专利危险。
这就是为什么不应该只为新应用程序避免使用Mono,而是首先考虑C#。
迁移到Mono只有在你已经坚持使用Windows并希望逃脱时才有意义。
答案 11 :(得分:0)
为什么没有人提到Linux是免费的?
答案 12 :(得分:0)
我实际上使用mono作为交叉编译器。我在现有的java / ant构建文件中添加了一些“exec”行来调用mono作为编译器,因此有一个完整的命令行构建过程。
我必须在我们的java-on-linux代码库必须使用的一些PC代码周围写一个C#包装层,但我不能让自己要求启动Visual Studio(在单独的计算机上)来做签出和构建过程。