2010-01-28 86 views
6

我們已經在ColdFusion工作了10年,現在正在切換到ASP.net MVC。我們的目標框架是使用VS 2010 BETA 2的.net 4.0 BETA 2.我們設置了Windows Server 2008的兩個實例(分段和生產),並將使用我們現有的數據庫服務器(SQL Server 2008)。將ASP.net MVC應用程序部署到使用SQL進行分段和生產

我們都沒有太多的ASP.net本身的經驗,雖然我們都非常適合C#和MVC模式。編碼本身並不是什麼大問題;但部署過程是。我們的目標是能夠擁有CI設置,可以自動將應用程序下拉並測試應用程序,然後在網站通過質量檢查時選擇在生產站點上標記並切換檢出。

我在這裏遇到的一些問題是ASP.net應用程序的概念以及它如何集成到SVN中。與PHP或RoR一樣,CF都是腳本語言,因此不需要構建過程(將源代碼複製到生產中非常簡單)。但在這種情況下,應用程序需要編譯 - 這是我們開始遇到問題的地方。我們是否需要創建另一個服務器(或使用現有的服務器),該服務器具有某種類型的應用程序,用於下拉代碼,編譯它,然後以某種方式將它推送到實時服務器上?如果是這樣,什麼被認爲是實現這一目標的最佳方式?我想如果我們最終使用像Nant這樣的構建工具,那麼添加額外的步驟來遷移數據庫將是微不足道的,但實現這一目標的最好方法是什麼?

另一個稍微不相關的問題是我們的設計師如何使用我們的代碼。他們大多數在Mac上,使用VS並不是一個很好的選擇。他們如何能夠輕鬆地編輯aspx,css和圖像文件?我們的目標是儘可能使這些對他們透明。

我們已經做了大量的購物活動,並且就我們熟悉的語言和我們當前的平臺而言,ASP.net MVC似乎是最好的選擇。我們只需要弄清楚一個好的構建過程,所以一切都儘可能透明。我知道這裏有很多可用的資源,但我想從第一手經驗中獲得人們的意見。

回答

2

微軟TFS內置了一個美妙的構建解決方案。這是昂貴的,但有效的。另外,您可以通過查看免費的CruiseControl進行輸入。 JetBrains的TeamCity也是一個不錯的選擇。所有這些持續構建和集成解決方案將爲您的研究提供一個良好的起點。

http://msdn.microsoft.com/en-us/teamsystem/dd408382.aspx

http://www.cruisecontrol.com/

http://www.jetbrains.com/teamcity/

即使Draco.net是一個不錯的考慮:

http://draconet.sourceforge.net/

+0

我應該提到這一點,但我們已經看了TFS,並決定不要因爲成本而去用它。它看起來像一個很好的軟件包,但我們不能在爲現有的基礎架構(SVN,JIRA,FishEye)付出如此多的努力之後繼續使用它。感謝您的鏈接,雖然:) – nlaq 2010-01-28 19:52:59

+0

TeamCity過去對我來說效果不錯,值得一看。希望其他鏈接爲您提供一個開始。作爲一個方面,確保你在你的web.config中使用 ...它會爲你節省你的痛苦。 – 2010-01-28 19:57:06

0

我們使用http://www.cruisecontrol.com/(CC)我們的SVN /構建服務器上運行。您可以通過自己的配置/腳本文件配置CC以從SVN中下載最新的源代碼,然後生成一個或多個可執行構建和部署的Nant或MSBuild腳本。

我們將所有的數據庫更改都編寫到SVN中的更改腳本中。然後,我們有一個自定義命令行工具,它將在網站部署期間將更改腳本部署到SQL Server。所有這些都在Nant腳本中完成。

因此,每個項目的Nant腳本處理構建,網站部署和SQL更改腳本部署。

棘手的部分是處理回滾,如果/當出現可怕的錯誤。我會建議發佈有關該特定問題的另一個問題。