我想知道开发ASP.NET MVC应用程序的最佳实践,可选择在Linux上部署。如果您正在创建这些类型的MVC应用程序,
答案 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)。
至于构建引擎和测试 - NAnt和NUnit是众所周知且经过充分测试的。最新版本的Mono xbuild(MSBuild的克隆版)实际上已经可以使用了,但是如果你决定将它用于更复杂的场景,那么你可以自己做出很多补丁。
编写测试。其中很多。准备好提供补丁和bug报告,如果你使用商业组件 - 确保供应商正式支持Mono。
答案 1 :(得分:4)
Nathan Bridgewater的博客上有一些很好的文章,其中包括:
答案 2 :(得分:1)
看看Mono project。这听起来就像你在寻找。如果我没记错的话,他们现在已经将ASP.NET MVC集成到了它中。
我从未与Mono合作,但根据我的理解,差异不大。