2011-12-23 74 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

相关问题