熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

提升C#和Visual Studio生產率的10個提示

2013-11-13 09:53:06  來源: .NET編程 

  By John W Powell

  Link tipstoboostyourproductivitywithcandvisualstudioaspx

         學習快捷鍵

  明顯而又簡單但是節省時間尤其是對於那些你每天都要執行上百次的操作例如構建和調試下面是一些每個Visual Studio都應該知道的一些基本的快捷鍵


構建: CTRL + SHIFT + B
單詞完成: CTRL + SPACE
開始調試: F
執行: CTRL + F

  即使專家可以從學習新快捷鍵中受益下面Visual C# Keybinding Reference Poster並掛在你的工作台上

         使用GhostDoc生成XML注釋

  讓GhostDoc幫您生成XML注釋而不是手動輸入雖然使用宏和代碼段看起來也比較有效但是我推薦Ghost Doc而不是其它方案這個免費的插件基於上下文使用自定義模板生成連貫的英文文檔要使用它右擊(或者使用CTRL + SHIFT + D)為當前元素添加文檔例如

  

  這會生成下面的文檔(注意GhostDoc將屬性名拆分為單詞並創建一個語句)

  

         自動完成屬性

  利用C#的一個新特性autoimplemented properties讓編譯器而不是你親自為屬性創建一個後台私有域吧下面的例子展示了這個語法

  

  使用代碼段更為有效輸入prop(自動完成屬性的快捷鍵)然後連續敲擊TAB TAB然後填入數據類型和屬性名字

  

         Refactor

  Visual Studio中的重構可以完成很多任務特別是重命名但是我更喜歡的一個更有效率的特征是Encapsulate Field如果你沒能使用自動完成屬性而是聲明了一個私有域那麼讓VS幫您生成屬性吧要使用這個特征右擊域並選擇Refactor > Encapsulate Field [NextPage]

  

  它會為你生成如下的屬性

  

           向VS添加命令

  安裝PowerCommands for Visual Studio 以添加幾個提高生產率的命令例如


Close all documents 關閉所有文檔
Copy and paste a class (automatically renames) 拷貝和粘貼一個類(自動重命名)
Remove and sort using statements projectwide
Copy and paste references (including a project reference) 拷貝和粘貼引用(包括項目引用)

  安裝以添加幾個提高TFS生產率的命令例如


Find in source control
Open source folder in Windows Explorer
Work item templates (can be used to set values on multiple work items at once)

  添加自定義命令例如添加Reflector它在當前項目中自動打開


Select Tools > External Tools
Click Add
Name it Reflector and browse to the executable
Enter $(TargetPath) for the Arguments

           使用項目配置加快編譯

  在一次編程中你可能編譯數十次因此不要使能那些不是必不可少的東西例如代碼分析和XML文檔在Debug配置下開發只是在checkin之前切換到Release配置以運行代碼分析和生成XML文檔在一個大的解決方案中這會節省不少時間 

  下面的代碼展示了在Debug配置中禁止代碼分析[NextPage]

   

  下面的代碼展示了在Release配置中使能代碼分析

  

         讓Visual Studio生成單元測試代碼

  雖然VS還不能全部自動化單元測試(check out Pex)但是VS可以生成positive unit test代碼從而為你提供一個起點為了使用這個特征右擊一個想測試的元素並選擇Create Unit Tests

  

  VS生成下面的測試方法

  

         使用接口驅動設計

  你可能從沒將一個接口作為一個提供生產率的方法但是如果由契約而不是實現來驅動你的開發過程那麼它的確是讓我舉一個簡單的例子一個開發者開發業務層另一個開發數據訪問層並且他們需要在如何實現一個新的特征達成一致在一些業務對象設計中業務組件將初始化數據組件(或者調用一個靜態方法)站在設計的角度這會產生問題因為二者是緊耦合站在生產率的角度看也有問題因為業務層開發者依賴數據訪問層的實現接口驅動設計解決了這個問題[NextPage]

  不是讓業務組件開發者等待數據組件開發者而是讓他們一起設計和實現接口於是兩個開發者可以並行實現他們的組件IDD也讓業務開發者可以mock數據訪問組件因此消除了任何計劃依賴下面展示了設計

  

         Make a Mockery of Dependencies

  雖然你的組件可能依賴於不同的開發者開發的層或者特征但是不要讓這成為減緩你開發腳步的理由假設你負責業務邏輯層它依賴於數據訪問層訪問層又依賴於數據庫表和存儲過程Mock數據訪問層而不是等待於是你可以實現和對業務層實現單元測試順便說一下你應該使用mocks否則你的單元測試看起來更像是集成測試我推薦Rhino Mocks

  下面是一個使用mocks的單元測試示例

  

  [NextPage]

      數據驅動單元測試

  如果你的單元測試需要多個輸入才能進行完全的測試那麼你可能需要為每個可能的組合都編寫一個測試方法但是數據驅動單元測試更有效率當運行單元測試時它從表中裝載數據為每行調用單元測試你可以使用TestContextDataRow屬性訪問當前行的數據

  

  一旦測試完成你可以查看結果

  

   


From:http://tw.wingwit.com/Article/program/net/201311/11859.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.