2009-06-28 63 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上提供無縫的遷移路徑。不過,它有很多的關注最近,所以它是值得再試一次。 ..

相關問題