2009-06-28 81 views
5

我的问题类似于this onethis one,但有一个细微的差别。所以这就是我在这里问的原因。单声道运行时间的限制

我有一个闪亮的.net 3.5 Windows服务(与NHibernate,LINQ,lambda表达式)等,在Windows上运行。现在我打算将我的应用程序移植到Linux上,所以我正在考虑Mono。

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

欢迎任何答案或指针。

+0

我认为这实际上是你链接的问题的副本,以及其他如http://stackoverflow.com/questions/549166/how-mature-is-mono和http:// stackoverflow。com/questions/204709/is-mono-robust-enough-for-serious-enterprise-development – 2009-06-28 06:43:27

+0

我不这么认为,这个问题比你提到的两个更具体。 – Graviton 2009-06-28 07:21:02

回答

7

开始使用MoMA tool

Mono的移植分析(纽约现代艺术博物馆) 工具可帮助您找出移植你的.NET 申请单时可能 有问题。它有助于确定 平台特定的呼叫(P/Invoke)和 区域,但Mono项目尚不支持 。虽然现代艺术博物馆可以帮助 显示潜在的问题,但有许多复杂的因素,不能通过简单的工具覆盖 。纽约现代艺术博物馆可能无法 点出的区域,这将导致 的问题,并可能指出领域 这实际上不会是一个问题

从个人的观点:所有的C#3.0的功能都可以很好地支持,我有没有问题LINQ(对象,不知道LINQ到SQL或XML)和NHiberinate也很好(虽然我没有最终使用)

8

它只是工作?你真的来测试它。我最近努力使Protocol Buffers在单声道上工作。到目前为止,我的执行时间很少;编译器对我来说更是一个问题。但是,我不得不临时禁用一个单元测试(使用模拟),因为它使Mono 2.4虚拟机本身变得庞大。我还没有调查为什么,但这种事情基本上是不可能预测的。

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

现在,你说这是一个Windows服务 - 显然Linux没有像Windows一样的服务,所以你需要弄清楚你希望如何运行它。如果我是你的话,我会首先运行它作为一个简单的控制台应用程序...一旦它全部正常工作,你可以考虑将它与其他“服务”控制器等集成 - 如果你觉得你需要的话。

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