Asp.net

在 Linux 上部署 ASP.NET MVC:最佳實踐、工具和驚喜

  • July 23, 2009

我想知道開發 ASP.NET MVC 應用程序的最佳實踐,可以選擇在 Linux 上部署。如果您正在創建這些類型的 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 版本(它最近變得更加穩定,但仍然會在版本之間發生回歸)。執行並行 Mono 版本非常容易在一個 *nix 系統上,如果您希望儘早擷取上游回歸,您甚至可以包含一個 svn 快照建構。如果您不推出自己的發行版,請記住大多數 Linux 供應商在發布 Mono 時都帶有自定義更新檔——這曾經給我們帶來過問題。此外,許多發行版在更新 Mono 時有很多滯後,這是一個快速推進的項目。

對於數據庫層,我們主要使用“普通”ADO.NET - Oracle(帶有dotConnect for Oracle,它們支持 Mono)和 SQLite(Mono 附帶一個工作連接器)。我還使用了MySQL 的官方 ADO.NET 驅動程序(連接器/NET),它也執行良好。ORM 映射更棘手,但 NHibernate 是可用的(請記住,它們支持 Mono)。

至於建構引擎和測試 - NAntNUnit是眾所周知的並且經過良好測試。使用最新版本的 Mono xbuild(MSBuild 的複製)實際上可以使用,但如果您決定將其用於更複雜的場景,請準備好貢獻大量更新檔。

編寫測試。其中很多。準備好提供更新檔和錯誤報告,如果您使用商業組件 - 確保供應商正式支持 Mono。

引用自:https://stackoverflow.com/questions/1172429