在Linux上部署ASP.NET MVC:最佳实践,工具和惊喜

时间:2009-07-23 15:07:46

标签: asp.net .net asp.net-mvc linux mono

我想知道开发ASP.NET MVC应用程序的最佳实践,可选择在Linux上部署。如果您正在创建这些类型的MVC应用程序,

  • 您定位的是什么Linux / Mono平台?
  • 您在Windows上进行了多少开发,在Linux上进行了多少开发?
  • 您是否使用ORM来抽象数据库?哪一个?
  • 您是否在Linux上运行构建引擎?测试怎么样?
  • 您还在使用其他什么工具?
  • 除了Windows之外,目标Linux还有多少额外工作?
  • 你遇到了什么丑陋或令人愉快的惊喜?

3 个答案:

答案 0 :(得分:34)

我工作的公司将Linux上的Mono作为我们的主要部署环境。因此,没有“额外”的工作 - 我们提供从硬件到操作系统(定制和修剪)到应用程序的整个堆栈。使用开源为我们和我们的客户带来了巨大的节省(是的,我们确实回馈了我们依赖的OS项目。)

重要的是要不断测试你的实际目标(抱歉,Windows上的Mono不计算在内)。当然,开发人员使用Visual Studio,但是在Windows和Linux上进行连续集成(使用CruiseControl.Net,你需要Mono 2.4.2在Linux上运行它),测试我们希望工作的所有Mono版本(它最近变得更加稳定,但仍然会在版本之间发生回归)。在一个* nix系统上运行parallel Mono versions非常容易,如果您希望尽早捕获上游回归,甚至可以包含svn快照构建。如果您没有推出自己的发行版,那么请记住大多数Linux供应商都会使用自定义补丁发布Mono - 这对我们来说已经造成了问题。此外,许多发行版都有很多延迟更新Mono,这是一个快速推进的项目。

对于数据库层,我们主要使用“普通”ADO.NET - Oracle(带dotConnect for Oracle,它们支持Mono)和SQLite(Mono带有工作连接器)。我也使用了官方ADO.NET Driver for MySQL (Connector/NET),它也运作良好。 ORM映射更棘手,但NHibernate可用(请记住,他们正式支持Mono)。

至于构建引擎和测试 - NAntNUnit是众所周知且经过充分测试的。最新版本的Mono xbuild(MSBuild的克隆版)实际上已经可以使用了,但是如果你决定将它用于更复杂的场景,那么你可以自己做出很多补丁。

编写测试。其中很多。准备好提供补丁和bug报告,如果你使用商业组件 - 确保供应商正式支持Mono。

答案 1 :(得分:4)

Nathan Bridgewater的博客上有一些很好的文章,其中包括:

  • 使用razor on mono
  • 运行MVC3
  • 将ASP.NET MVC从Windows / SQL Server迁移到Linux / MySQL
  • 安装并运行MonoDevelop
  • 从源代码安装mono

http://iws.io/get-mvc3-razor-running-on-mono/

答案 2 :(得分:1)

看看Mono project。这听起来就像你在寻找。如果我没记错的话,他们现在已经将ASP.NET MVC集成到了它中。

我从未与Mono合作,但根据我的理解,差异不大。