正在开发Mono跨平台?

And*_*isu 16 c# linux windows mono

采用单声道跨平台开发的衡量标准是什么?我如何编译Windows(在Linux中),如何在Linux中运行(因为没有.NET JIT编译器)?

那么使用Mono开发的特点是什么?使用Visual Studio开发有什么优势(除了跨平台的东西)?

t0m*_*13b 28

在Mono中进行开发肯定是跨平台的,需要注意一点:

  • 努力避开Windows特定的API
  • 没有与本机Windows API的互操作性......或者......你可以#ifdef使用Windows API并提供自己的Mono包装器以最小化代码更改,例如,有一个DLL包装器使用Interop来调用Win32方法,例如'GetFont',这是一个假设的例子,GetFont将在Mono下返回不存在的Font信息,但是你可以创建一个假包装器,它不返回任何内容并合并#ifdef宏来在Mono下编译时使用包装器,并切换在Windows下编译时关闭宏,你如何实现包装器取决于你.
  • 不要使用Mono中可能不存在的高级GUI属性.
  • 使用Environment属性NewLine,使其独立于Unix的CR和Win32的CRLF,同样适用于路径分隔符,Unix'/'和Win32'\'.
  • 序列化在Mono下略有不同,你在Mono上序列化一个对象,不要自欺欺人地认为它将在Win32下反序列化,反之亦然.

最后但并非最不重要的是,继续检查从Mono到Win32再返回,继续测试和测试它.