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

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

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

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

    重要的是不断测试你的实际目标(对不起,Windows上的Mono不算)。 当然,开发人员使用Visual Studio,但持续集成(使用CruiseControl.Net,您需要Mono 2.4.2在Linux上运行它)既可以在Windows和Linux上执行,也可以测试我们期望使用的所有Mono版本(它最近变得更稳定了,但是,发布之间确实会发生回归)。 在一个* nix系统上运行并行Mono版本非常简单,如果您希望尽早捕获上游回归,则甚至可以包含svn快照构建。 如果你没有推出你自己的发行版,那么请记住,大多数Linux厂商都提供了自定义补丁 - 这已经给我们带来了问题。 另外,许多发行版都有很多滞后更新的Mono,这是一个快速推进的项目。

    对于数据库层,我们大多使用“普通”的ADO.NET - Oracle(带dotConnect for Oracle,它们支持Mono)和SQLite(带有工作连接器的Mono)。 我还使用了MySQL的官方ADO.NET驱动程序(连接器/ NET),它也运行良好。 ORM映射比较棘手,但NHibernate是可用的(请记住,它们不正式支持Mono)。

    至于构建引擎和测试 - NAnt和NUnit是众所周知的并且经过了充分测试。 使用最新版本的Mono xbuild(MSBuild的克隆)实际上已经可用,但如果您决定将它用于更复杂的场景,则需要做好相当多的补丁准备。

    编写测试。 其中很多。 准备贡献补丁和错误报告,如果您使用商业组件 - 确保供应商正式支持Mono。


    内森布里奇沃特的博客有一些不错的文章,其中包括:

  • 在单声道上使用剃须刀运行MVC3
  • 将ASP.NET MVC从Windows / SQL Server迁移到Linux / MySQL
  • 安装并运行MonoDevelop
  • 从源代码安装mono
  • http://iws.io/get-mvc3-razor-running-on-mono/


    看看Mono项目。 听起来就是你想要的。 如果我没有记错,他们现在已经集成了ASP.NET MVC。

    我从来没有与Mono合作过,但根据我的理解,没有太多的区别。

    链接地址: http://www.djcxy.com/p/90045.html

    上一篇: Deploy ASP.NET MVC on Linux: Best Practices, Tools & Surprises

    下一篇: How to run DNX 'console app' as a background service on Linux?