簡體   English   中英

在Linux上部署ASP.NET MVC:最佳實踐,工具和意外

[英]Deploy ASP.NET MVC on Linux: Best Practices, Tools & Surprises

我想知道開發ASP.NET MVC應用程序的最佳實踐,可選擇在Linux上部署。 如果您正在創建這些類型的MVC應用程序,

  • 您定位的Linux / Mono平台是什么?
  • 你在Windows上做了多少開發,在Linux上有多少開發?
  • 您是否使用ORM來抽象數據庫? 哪一個?
  • 你在Linux上運行構建引擎嗎? 測試怎么樣?
  • 您還使用了哪些其他工具?
  • 除了Windows之外,還有多少工作要針對Linux?
  • 你遇到了什么丑陋或驚喜的驚喜?

我工作的公司將Linux上的Mono作為我們的主要部署環境。 因此,沒有“額外”的工作 - 我們提供從硬件到操作系統(定制和修剪)到應用程序的整個堆棧。 使用開源為我們和我們的客戶帶來了巨大的節省(是的,我們確實回饋了我們依賴的OS項目)。

重要的是要不斷測試你的實際目標(抱歉,Windows上的Mono不計算在內)。 當然,開發人員使用Visual Studio,但是在Windows和Linux上進行連續集成(使用CruiseControl.Net ,你需要Mono 2.4.2在Linux上運行它),測試我們期望處理的所有Mono版本(它最近變得更加穩定,但是,在發布之間確實發生了回歸)。 在一個* nix系統上運行並行Mono版本非常容易,如果您希望盡早捕獲上游回歸,甚至可以包含svn快照構建。 如果您沒有推出自己的發行版,那么請記住大多數Linux供應商都會使用自定義補丁發布Mono - 這對我們來說已經造成了問題。 此外,許多發行版都有很多延遲更新Mono,這是一個快速推進的項目。

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

至於構建引擎和測試 - NAntNUnit是眾所周知的並經過充分測試。 最新版本的Mono xbuild(MSBuild的克隆版)實際上已經可以使用了,但是如果您決定將它用於更復雜的場景,那么請准備好自己做出很多補丁。

寫測試。 其中很多。 准備好提供補丁和bug報告,如果你使用商業組件 - 確保供應商正式支持Mono。

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

  • 用單聲道剃刀運行MVC3
  • 將ASP.NET MVC從Windows / SQL Server遷移到Linux / MySQL
  • 安裝和運行MonoDevelop
  • 從源頭安裝單聲道

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

看看Mono項目 這聽起來就像你在尋找。 如果我沒記錯的話,他們現在已經將ASP.NET MVC集成到了它中。

我從未與Mono合作過,但從我的理解來看,並沒有太多差異。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM