通过Linux和Mono编写.NET for Windows

很长一段时间以来,我主要在Linux和Mac上开发使用开源语言,工具包等。 不过,一个新项目即将推动我进入.NET世界。 而且,这个.NET世界的产品将被部署到Windows基础架构中。

在我看来,由于底层的体系结构差异,我做了一个假设,我不能在Linux上使用Mono开发这种平台组合,但这只是一个不知情的假设。 有人可以验证或揭穿这一假设吗?

谢谢。


我认为你可以,只有另一种方式(在.NET上运行并在单声道上运行)是有问题的,因为单声道中缺少一些库实现。 然而,除非你是一个开放源码的热衷者,否则你不会从单声道(和monodevelop,IDE)中获得任何东西。 (另外,开源社区对这些工具的开放性也存在一些担忧)。


该框架应该从平台差异中抽象出你,我相信Mono生成MSIL代码,所以没有理由不能在Linux或Mac上为Windows开发。

我只是意识到Mono框架并不是最新的,但从我所见过的情况来看它非常好。

我还要补充一点,我自己并没有尝试过,但我不认为有阻碍你的障碍。

请记住,CSC(C#编译器是免费的(Windows SDK的一部分),Visual Studio Express版本也是SharpDevelop(也是OSS))为您提供了许多选项。


我认为答案比这更微妙一些。 您可以将Linux / Mono视为.NET目标平台,就像使用.NET 2.0的Windows XP,使用.NET 3.5的Windows Vista等一样。根据您想要执行的操作,完全可以开发.NET代码这与多个平台兼容。

当Microsoft将.NET提交给ECMA作为标准时,他们提交了一个子集(称为CLS,通用语言规范),提供给开发人员。 举一个重要的例子,Windows图形(Forms,ASP.NET等)不是CLS的一部分。 但是,Mono现在支持Windows Forms 2.0,但直到最近才出现。

所以,基本上,你必须密切关注你需要什么功能,如果你喜欢生活在Windows技术的前沿,你将被锁定在使用Mono之外。 但是,如果您有能力选择要使用的库和语言功能,则可以选择Mono完全支持的设置,并以此方式完成大部分工作。

当然,测试是另一个问题......因为你有完全不同的实现,你仍然需要在Windows上做很多测试。 请记住,Java的设计目标是平台独立性,但.NET是语言独立性,而不是平台独立性。 所以,你会进入严重的水域......

链接地址: http://www.djcxy.com/p/52209.html

上一篇: Writing .NET for Windows via Linux and Mono

下一篇: Is Mono robust enough for serious enterprise development?