圖片來源:https://pixabay.com/en/confused-muddled-illogical-880735/ 和 https://blog.xebialabs.com/2016/03/21/essential-devops-terms/ 最近在和同事聊天的時候,才發現到其實雖然我一直以來「以為」有多次強調該如何用Visual Studio run及進入debug比較節省時間, 但是其實有些同事還是不知道。
因此,準備一系列我個人認為大家應該都會的開發工具小技巧,這篇將會從開發每天都會做的事情,run及debug開始:在用Visual Studio開發的時候, 到底應該怎麼run和debug才是最有效率的方式,以及如何使用免費的套件ReAttach來讓debug流程更加的容易。
一般的開發及debug流程如何優化run及debug的方式以 Start Without Debugging(快速鍵 Ctrl+F5)的執行方式替代 F5當需要debug的時候以Attach Process方式進入debug模式以套件ReAttach讓attach process的流程更容易ReAttach小檔案結語一般的開發及debug流程 在我以前剛學會Visual Studio開發的時候,那個時候我學習到的做法都是:
改程式要測試的時候按下快速鍵:F5也就是 Start Debugging的動作(綠色的按鈕)開始測試功能,如果需要修改,由於在debug模式,需要先停下debug模式,之後才能改重複第一個步奏 在這個流程裡面,貌似沒有問題,但是實際上:
執行速度慢:debug模式因為要能夠debug,因此會load很多其他東西,因此造成了執行起來速度變慢需要消耗更多資源:同上一條一樣,因為load的東西多因此消耗的記憶體也多修改的流程消耗更多時間:由於在debug模式是無法修改,因此需要停下來才能夠修改如何優化run及debug的方式 既然上面知道了一般的做法有什麼問題,那能夠怎麼優化呢?以下分幾個步奏來執行:
以 Start Without Debugging(快速鍵 Ctrl+F5)的執行方式替代 F5當需要debug的時候以Attach Process方式進入debug模式以套件ReAttach讓attach process的流程更容易以 Start Without Debugging(快速鍵 Ctrl+F5)的執行方式替代 F5 很多時候把網站run起來的目的只是為了測試功能,因此其實不需要進入Debug模式。
題外話:養成不依賴debug功能其實是一個好的習慣,有發生錯誤先思考一下問題發生原因, 而不是直接debug一步一步走,在整個的思維鍛煉上其實很有幫助。 所以養成以Ctrl + F5替代F5。
F5及Ctrl + F5在Visual Studio選項位置不過如果測試過程要改東西怎麼辦?
這個時候可以用 Build (快速鍵 F6)來編譯修改內容。
如果有遇到Build好像沒有很成功,這個時候可以用Clean,或者Rebuild(Rebuild本質上就是clean + build)。
Build、Clean及Rebuild的Visual Studio位置 有些修改其實不需要build,因為這些是動態build出來。一般來說這種類型都是View。例如Asp.net裡面的aspx或者Razor view的cshtml。所以如果修改這種類型,連呼叫build都不需要,只需要存檔然後刷新頁面即可。 透過養成Ctrl + F5的習慣,可以減少很多啟動debug,然後停掉debug在修改所花的時間。
不過下一個問題是,如果遇到問題需要debug怎麼辦?
當需要debug的時候以Attach Process方式進入debug模式 當Visual Studioa用Start Without Debugging把網站run起來之後,這個網站會被IIS Express host起來。
而Visual Studio可以透過Attach to Process (快捷鍵: Cltr+Alt+P)attach到IIS Express達到用Visual Studio啟動debug模式。
啟動 Attach To Process 的畫面從Debug Toolbar找到選擇 iisexpress.exe 從Available Process找到iisexpress.exe,如果在清單裡面沒有,可以勾選Show process from all users選擇iisexpress.exe Attach完了之後,Visual Studio就會進入到一般的debug模式,剩下就和一般debug沒有什麼兩樣。
如果debug完了,停下來,網站是不會停,這個和一般F5不一樣,如果是F5啟動的,當停下debug模式的時候, 整個網站也會停下來。 如果attach上去之後,發現無法下中斷點,那麼最有可能是build沒有成功或者沒有乾淨,最好就是先clean,在Ctrl + F5。 了解了Attach To Process,換個角度說其實也可以attach到一般IIS網站,甚至Remote Debug。這個完全做的到,但是這篇就不介紹了。 以套件ReAttach讓attach process的流程更容易 了解了Attach To Process之後,下一個問題就是,每一次都要開那個畫面然後找到iisexpress真的很麻煩,是否有什麼方式讓找這個process更加容易呢?
有人因此建立了一個套件,ReAttach,甚至非常佛心的Open Source以及以Free的方式發佈出來。
ReAttach小檔案支援的Visual Studio版本:2012+官網:https://marketplace.visualstudio.com/items?itemName=ErlandR.ReAttach直接下載:https://marketplace.visualstudio.com/items?itemName=ErlandR.ReAttach最新版本:2.2Source Code:https://github.com/erlandranvinge/ReAttach ReAttach使用非常簡單,安裝了之後,在工具列會有一個紫色的播放按鈕可以按:
ReAttach的功能 在這個功能裡面,可以按旁邊下三角形看到最近的4筆曾經有Attach過的Process。
最新Attach的Process會以第一筆呈現。
只需要選擇要Attach的Process即可。
如果說上面的Process都沒有目前想要Attach的,那麼可以先用F5,然後停下來之後剛剛那個process就會出現在第一筆。
結語 如果養成了只以Ctrl+F5的方式在Run程式,真需要debug的時候在用Attach Process的方式進入debug模式, 不止能夠讓整個開發流程速度更快,也能夠鍛煉不debug情況下嘗試解決問題。
希望透過這篇,如果還沒養成這個習慣的可以先試試看,並且裝ReAttach讓整個流程變得更加順利。
如果有不同且能夠更節省開發時間的流程,也請用留言方式互相切磋切磋。
標籤: 「開發工具小技巧」,Visual Studio