0

最近轉移到mvc 4我想知道是否有辦法加速那些「改變逗號並更新瀏覽器以查看它是否有效」的開發過程中的情況類型。開發速度 - 編譯mvc web應用程序「在飛行中」

經過十多年的專業編程,我已經習慣了某些習慣。 對於我一直使用的主要是asp.net網站項目,webforms,它允許我更改代碼隱藏,ctrl + s,alt-tab到瀏覽器,點擊f5,並查看結果。 有時(但並非總是),它會回收應用程序,銷燬我的會話,併發送回登錄頁面。

在邊學邊做mvc 4項目上工作我對編譯循環感到慚愧 - 我想主要是因爲它不是我習慣的。

作爲一個例子,假設我們正在編寫一個Action來處理文件移動和複製。

string rootpath = HostingEnvironment.MapPath("~/uploads"); 
string targetpath = HostingEnvironment.MapPath(Path.Combine(rootpath, TargetDir.Substring(TargetDir.LastIndexOf("/")))); 

編譯沒有問題,但測試時,它拋出一個異常,因爲「ROOTPATH」已經是絕對的,不能再次映射。 代碼更改爲

string rootpath = HostingEnvironment.MapPath("~/uploads"); 
string targetpath = Path.Combine(rootpath, TargetDir.Substring(TargetDir.LastIndexOf("/"))); 

也編譯罰款和可能的實際工作。但是你有這些「什麼是我寫作」的時刻之一,並更改爲

string rootpath = HostingEnvironment.MapPath("~/uploads"); 
string targetpath = Path.Combine(rootpath, Path.GetDirectoryName(TargetDir)); 

現在都很好。

與使用網站項目進行開發相比,代碼更改,等待編譯,刷新瀏覽器,登錄,測試功能(和重複)的步驟似乎比以前要花費更多的時間。 有什麼辦法可以加速這些類型的反覆試驗? 或者我只是想說錯了嗎?

+1

網站項目非常奇怪。我建議不要使用它們。 –

+0

嗯,謝謝@John Saunders ......但這個評論怎麼樣有建設性? –

+0

它有望使你不再使用它們,使你從悲傷中解脫出來,併爲你的生活增添了許多年。 –

回答

2

我建議一種完全不同的方法。使用單元測試。

MVC的巨大優勢在於基本上所有的代碼都可以通過單元測試(控制器,模型,...)。 通過這種方式,每次更改時只需運行一個或一組單元測試(像Ctrl + R,Ctrl + L或類似的關鍵字這樣的鍵盤快捷鍵是您最好的朋友,可以獲得最高速度:-))。

只有在最後,您將運行完整的項目以查看最終輸出。

當然,其他的加速開發/調試時間,您還將受益於在開發(爲了更好地設計代碼)和迴歸測試期間可能非常有用的全套測試。

+0

我同意,除了補充說,正確書面的網頁形式代碼也可以有所有重要部分的單元測試。 –

+0

我設法爲該項目設置了單元測試。我可以看到這是如何產生的,並可能加快調試速度。但是,Server.MapPath有點麻煩。 http://www.vfstech.com/?p=149幫助我。 –