2011-12-23 119 views
8

我有一個使用C#4.0編寫的相對較小的ASP.NET項目。將Linux應用程序移植到Linux下的Mono/Apache

我想知道是否有人有這樣一個項目到Linux上的Web服務器下運行管理的港口,我可以找到出現的最新信息,只對ASP.Net 2.0的支持 - Configuring and running Mono ASP.NET 3.5 (AJAX.NET) on Linux computers

項目使用整個數據訪問層的LINQ到SQL,我知道Mono本身支持LINQ,所以我認爲它應該可以工作。

我只想知道在開始之前是否完全浪費時間。

謝謝。

+4

你有沒有試過在Apache/Mono下運行你的程序集?你可以做的最好的事情就是試着去看看什麼會打破或使用Mono Migration分析器http://mono-framework.com/MoMA。 – 2011-12-23 03:59:30

+0

它很可能會工作得很好。如上所示試試 – IanNorton 2011-12-23 08:05:52

回答

7

我使用mono在Suse Linux上運行ASP.NET 4.0應用程序。我對mono的使用經驗是,它的工作原理。我的應用程序是〜15.000 LOC,並使用第三方組件,如mongo-csharp-driver,lucene.net,elmah,munq和sphorium.webdavserver。

我在開發過程中幾乎沒有兼容性問題 - 以及那些容易解決的問題(例如,sphorium可以訪問註冊表;這在Linux/Mono中顯然不同)。我甚至開始用Visual Studio創建MonoDevelop,而沒有Mono插件,因爲Visual Studio是一個更好的IDE,當我在Linux上編譯我的Web應用程序並將其部署到Apache上時(即使我使用。 NET在Windows上)。

I've written a short blogpost on getting started with the setup

3

這絕對不是浪費時間。我工作的公司將VB.Net應用程序轉換爲C#,以便它可以在單聲道下運行。這個應用程序有超過20萬行代碼。我們現在在Amazon ec2上運行Ubuntu/Apache/Mono/Postgresql。

我唯一擔心的就是數據庫問題。如果是MS SQL,那麼您需要考慮遷移到MySQL或Postgresql。我們再次用300多個表和900個存儲過程做了這個。從長遠來看,這絕對是值得的。

我認爲最好的入門方法是設置一個類似於Ubuntu的本地環境。您可以從http://badgerports.org/獲取存儲庫中最近版本的單聲道,或者如果您願意,可以將最新版本作爲構建腳本維護here。使用mono安裝monodevelop並在linux上構建您的代碼。從經驗來看,C#單聲道幾乎是.NET框架的完整實現。如果您的應用程序中有某些內容尚未在單聲道中實現,我會感到驚訝。

我有一個答案here顯示您的應用程序在apache下的簡單配置。我在Ubuntu上運行單聲道應用程序時使用此配置。

+0

「我唯一擔心的就是數據庫問題。」 - 我們的數據庫服務器是MS SQL,但它與我想運行此項目的機器不同。我應該不能在Apache下使用ASP.NET項目,同時使用MSSQL的sql數據提供程序連接到我們的數據庫服務器上的數據庫? – 2011-12-23 16:36:01

+1

是的,你可以做到這一點。 – startupsmith 2011-12-23 19:15:12

+0

@lanks,我可以問一個稍微偏離主題的問題,你使用了什麼ORM(如果有的話)?先謝謝你。 – greenoldman 2012-07-07 12:11:27