单声道运行时间的限制

Gra*_*ton 5 .net mono

我的问题类似于这一个这个问题,但存在细微差别.所以这就是我在这里问的原因.

我在Windows上运行了一个闪亮的.Net 3.5 Windows服务(带有NHibernate,LINQ,lambda表达式)等.现在我计划将我的应用程序移植到Linux,所以我在考虑Mono.

我可以在Windows中编译我的.net应用程序,并将其复制到安装了.Net(单声道版本)的Linux机器上,并期望它能够顺利运行吗?如果没有,有什么我应该做的吗?

欢迎任何答案或指示.

Jon*_*eet 8

它会起作用吗?你真的必须对它进行测试.我最近刚刚努力使协议缓冲区在Mono上运行.到目前为止,我的执行时间很少; 编译器对我来说更像一个问题.但是,我不得不暂时禁用其中一个单元测试(使用模拟)因为它使Mono 2.4 VM本身发生了爆炸.我还没有调查过为什么,但这种事情基本上无法预测.

任何使用CLR"深层"方面的东西 - 比如表达式树和动态方法 - 都可能比简单的库IMO有更多的问题.

现在,你说它是一个Windows服务 - 显然Linux没有与Windows完全相同的服务,所以你需要弄清楚你希望它运行的方式.我开始时将它作为一个简单的控制台应用程序运行,如果我是你...一旦它全部工作,你可以考虑将它与其他"服务"控制器等集成 - 如果你发现你需要.

这当然使用是该案件xbuild没有从建立在Windows平台上构建在Linux上提供无缝的迁移路径.不过,它有很多的关注最近,所以它的价值再次尝试...


Sha*_*men 7

首先使用MoMA工具

Mono Migration Analyzer(MoMA)工具可帮助您识别将.Net应用程序移植到Mono时可能遇到的问题.它有助于查明特定于平台的调用(P/Invoke)以及Mono项目尚不支持的区域.虽然现代艺术博物馆可以帮助展示潜在问题,但有许多复杂因素无法通过简单的工具来涵盖.现代艺术博物馆可能未指出会导致问题的领域,并可能指出实际上不会成为问题的领域

从个人观点来看:所有C#3.0功能都得到了很好的支持,我对LINQ没有任何问题(To Objects,不了解LINQ to SQL或XML)和NHiberinate也运行良好(虽然我最终没有使用)