使用mono项目在linux上运行c#代码的优点和局限是什么?

时间:2011-02-19 04:15:25

标签: c# linux mono

如果有人使用mono项目在Linux上运行C#Code的优势和局限性,请告诉我你的想法......

3 个答案:

答案 0 :(得分:10)

有一个巨大的优势 - 它有效。您可以在Linux(以及其他平台,包括Windows)上使用C#,开发和运行。

缺点是事情并不总是像在MS的.NET实现中那样工作,并且有些功能根本没有实现,例如WPF。

答案 1 :(得分:4)

<强>优点

  • 投资 - 当你选择正确的软件时,你不需要在Linux上运行Mono时支付软件许可证(这并不意味着它是免费的 - 只有你的时间没有价值,Linux才是免费的。)
  • 没有供应商锁定 - 与MS解决方案相比,您对Linux上的其他软件(例如数据库或Web服务器)有更多选择,而MS解决方案最适合其他MS。
  • 单声道特定库(例如Mono.Simd或REPL)。
  • 开源(您或其他人可以自行修复错误/提供补丁/改进代码)。

<强>限制

  • 与MS.NET框架不兼容。
  • 一般情况下,您可能会花更多时间处理某些事情(例如处理不兼容或学习Linux管理等)。
  • 新版本的.NET框架发布后,Mono不会及时更新新的API和功能。

答案 2 :(得分:3)

我在C#中开发了一些应用程序,并尝试通过Mono在Linux上运行一些应用程序。让控制台应用程序运行非常简单。大多数情况下,在Mono下运行这些类型的应用程序不需要进行代码更改。但是,GUI应用程序总是比较棘手。您应该知道的第一件事是您的用户界面不会与用户的主题融为一体。假设您使用的是Microsoft的System.Windows.Forms,应用程序将始终看起来像Windows 98应用程序。

但是,如果您计划仅在Linux上编写和运行应用程序,那么您可以使用Mono的Gtk#来构建用户界面。这与Linux桌面集成得比System.Windows.Forms好得多。 This page给出了不同GUI工具包,它们的优点和缺点的完美概述。

如果你坚持使用GUI工具包的System.Windows.Forms来在Windows和Linux上运行你的应用程序,请记住,即使Mono支持C#4.0,你最好还是要限制自己只使用C#2.0 ,因为3.0及以上的某些功能未在Linux上实现或无法正常工作。