2009-12-11 122 views
2

問問專家的時間了,因爲我無法在其他任何地方找到好的答案,我冒險進入我剛剛學習的世界的一面。C#基準資源

我在一個主要的開源商店,最近開始採用基於.Net的許多內部工具和合作夥伴。這讓我想到,通過在特定空間中利用C#/ mono,我可能可以充分利用這兩個世界的優點。在小範圍內,我一直非常成功,而且工作得很好。然而,按下「Build」並將exe放到位並不會很好地擴展。

我想加強一點,並獲得更多的資源,所以這是我的問題;我需要什麼基礎資源來建立良好的開發/測試/分期環境。 我不需要詳細的信息,我願意考慮商業和開源解決方案,我想我更多的是尋找資源上的好建議。 OS線兩側開發的項目中有99%是服務項目。

推薦什麼樣的單位/迴歸測試工具,是NUnit的標準嗎?

對於服務級軟件,推薦什麼樣的部署機制?

在您的開發/設計工作中,您發現了什麼(如果有的話)其他工具是否有用或不可或缺?

前兩項是我感興趣的,因爲它們是我缺乏可行,可重複的開發和部署過程之前所缺乏的最後一件事。

回答

1

你可能想看看http://go-mono.com/monovs/ 它會讓你在Visual Studio中的Linux上進行調試。

在Visual Studio中的單元測試框架是相當不錯的,以及, 但如果你使用的標準或Visual Studio的免費版本,NUnit的是一個不錯的選擇,以及 (而且有Visual Studio集成的選項)

除此之外我來挺連接(由該公司和其他產品),以重構臨 http://www.devexpress.com/Products/Visual_Studio_Add-in/Refactoring/

至於scp'ing文件到你的Linux/Mac電腦,它可能更容易 配置MSBuild自動爲你做。 這可能幫助:http://bartdesmet.net/blogs/bart/archive/2006/04/13/3896.aspx

還有更多的MSBuild任務可以在這裏找到:http://msbuildcontrib.codeplex.com/

我希望這有助於。

+0

+1對於重構親!令人敬畏的工具,並大大提高生產力。 – GrayWizardx

0

對於構建和部署,您可能會嘗試使用NAnt。它會處理你的構建,並且擁有運行你的測試,乾淨的SVN簽出,壓縮版本等任務。你也可以嵌入C#。抓住夜總會而不是釋放,不要太擔心最近沒有活動。此外,nant-contrib項目充滿了額外的好東西。

另一個選擇是嘗試msbuild(我相信有一個單聲道等效,但我不知道什麼程度)。真相被告知兩者之間沒有太大的區別。

0

我已經建立了有效的構建/測試/部署具有下列基礎設施:

我們還使用subversion來管理源代碼控制以及de ployment(像CMS和網站系統的東西)

一些我們使用的開發工具是:

中當然這些工具中的任何一個都可以替代其他的工具ols你喜歡(perl,蟒蛇,紅寶石,螞蟻等)。

0

這大約是我如何設置我的環境中工作:

  • 我使用NUnit作爲單元測試平臺
  • 我使用TestDriven.NET作爲一個插件可以輕鬆地從運行我的單元測試我的IDE
  • 內我已經成立了一個獨立的計算機,它運行CruiseControl.NET

這CruiseControl.NET計算機檢查定期時間我的源代碼庫。當它看到某些東西發生了變化時,它會從源代碼庫獲取最新版本並構建它。它還執行單元測試,並在目標上運行fx-cop。

接下來,我已經配置它,以便它也執行夜間構建。這確實大致相同:
當一些白天發生了變化:

  • 刪除每一個本地存在
  • 得到從源庫中的最新版本的文件
  • 構建它
  • 運行單元測試
  • run fxcop
  • 使用sandcastle helpfile構建器創建文檔
  • w如果構建成功,則將構建輸出複製到名爲「build-yyyymmdd」的單獨文件夾。

我已經安裝了我的源代碼庫,以便我可以保留我的項目中不同的版本(分支)。 總之,我的源庫看起來是這樣的:

  • 我有一個被稱爲 「devtrunk」,其中包含了實際 代碼庫文件夾。 (我在積極開發 )
  • 我有一個文件夾calles'releases'。 每當我發佈一個新版本,我 作爲樹幹的一個分支,我把 這個分支放在 '新聞'下的一個新文件夾中。這使我可以修復 版本中已發佈的 版本的bug,而不會干擾我的主幹上的 實際工作。

由於我在Windows平臺上工作,我使用MSBuild創建我的構建腳本(由Cruisecontrol執行),但是,您可以使用NAnt來代替。 (我也用過)。