1 / 76

Visual Studio: Tips, Tricks, Toys by Kevin Grossnicklaus ArchitectNow

. Agenda. IntroductionGeneral TipsCode Editor TricksSearchingLayout and NavigationAdvanced Design-Time TipsDebugging TipsVS.NET Plug-InsExternal Development ToolsAdditional ResourcesQuestions?. Introduction. Kevin GrossnicklausArchitectNow- www.ArchitectNow.net (2009-Present)President

ralph
Download Presentation

Visual Studio: Tips, Tricks, Toys by Kevin Grossnicklaus ArchitectNow

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


    2. Visual Studio.NET: Tips, Tricks, & Toys by Kevin Grossnicklaus ArchitectNow

    4. Agenda Introduction General Tips Code Editor Tricks Searching Layout and Navigation Advanced Design-Time Tips Debugging Tips VS.NET Plug-Ins External Development Tools Additional Resources Questions?

    5. Introduction Kevin Grossnicklaus ArchitectNow- www.ArchitectNow.net (2009-Present) President Washington University - CAIT Program (2003-Present) Instructor SSE - www.SSEinc.com (1999-2009) Chief Architect Software Development Practice Leader Email: kvgros@architectnow.net

    6. Expectations What are we going to cover? Why is this something I should be aware of? Who can use this stuff? How detailed are we going to get?

    7. General Tips

    8. Managing Shortcuts Keyboard vs. Mouse Verify your current environment settings This talk assumes “General Development” Manage keyboard shortcuts here: Tools->Options->Environment->Keyboard All settings (including shortcuts) can be imported and/or exported from: Tools->Import and Export Settings

    9. Keyboard Shortcuts Standard Shortcuts: Ctl-K Ctl-Shift-O “Chords” = Two character shortcuts Written as: Ctl-K,D or Ctl-K, Ctl-D

    10. Shortcut Reference Posters C# 2008 http://www.microsoft.com/downloads/details.aspx?familyid=E5F902A8-5BB5-4CC6-907E-472809749973&displaylang=en Visual Basic.NET 2008 http://www.microsoft.com/downloads/details.aspx?familyid=255b8cf1-f6bd-4b55-bb42-dd1a69315833&displaylang=en

    11. Top Level Shortcuts Ctl-Shift-N = New Project Alt-Shift-N = New Website Ctl-Shift-O = Open Project Alt-Shift-O = Open Website Ctl-Shift-A = Add New Item Alt-Shift-A = Add Existing Item

    12. CODE Editor

    13. Cut/Copy/Paste Copy or Cut = Ctl-C or Ctl-X (respectively) If no selection, cuts or copies the current line to the clipboard If there is a selection, cuts or copies the selection to the clipboard Tools->Options->Text Editor->All Languages->General Uncheck the “Apply Cut or Copy Commands to Blank Lines When There is No Selection” option Current Line Ctl-L to cut the current line to the clipboard (including EoL) Ctl-Shift-L to delete the current line

    14. Cut/Copy/Paste (Cont.) Paste = Ctl-V Pastes the last item cut or copied into the editor at the current cursor location Clipboard “Ring” = Ctl-Shift-V Cycles through the previous 20 items cut to the clipboard and pastes them at the current cursor location Accidentally cut or copy something you didn’t mean to? Cycle through pasting until you get to the item you overwrote

    15. Misc Selection/Insertion Commands Ctl-Enter to insert a blank line above current line Ctl-Shift-Enter to insert a blank line below current line Ctl-W to select current word Ctl-Delete to delete next word Ctl-Backspace to delete previous word

    16. Drag/Drop Code Selections of code can be dragged around a code file or to different files Left click to cut/paste Right click to be prompted to Move or Copy Code can be dragged onto the Toolbox dock-window in the “General” section and then dragged back onto other editors These can be renamed to be more readable This is a handy way to reuse sections of code

    17. Weird Editor Shortcuts Ctl-T to transpose a character Ctl-Shift-T to transpose a word Alt-Shift-T to transpose a line Ctl-U to make current selection or character lowercase Ctl-Shift-U to make current selection or character uppercase

    18. Undo/Redo Ctl-Z to Undo Ctl-Y to Redo Use the dropdowns for more granular control and information

    19. Scrolling Use the scroll bars or mouse wheel Press mouse wheel to allow for 4-way navigation

    20. “Go-Back” Markers and Navigation What is a “Go-Back” marker? Ctl-Minus to navigate backwards Ctl-Shift-Minus to navigate forwards Optionally use the toolbar buttons and dropdown boxes for more info

    21. Navigation Bar What is the navigation bar? Ctl-F2 to select the navigation bar Tab or Shift-Tab to switch between combo boxes once selected Arrow keys to navigate down and enter to select To enable/disable per language: Tools->Options->Text Editor->All languages (or specific language)->General Set the “Navigation Bar” option

    22. Splitting Editor Windows Window->Split to split Window->Remove Split to remove Splitter can be resized via mouse F6 to switch between split panes

    23. Line Numbers Enable line numbers here: Tools->Options->Text Editor->All languages (or specific language)->General Check “Line Numbers”

    24. Track Changes Tools->Options->Text Editor->General Check “Track Changes” What does this do? Yellow – Lines were edited since last save. Green – Lines were edited prior to last save. Yellow becomes Green after one save, close and re-open a file and Green is gone

    25. Code Selection Click and drag to select code via the common “stream” mode Hold Alt-Shift and click and drag to select in “box” mode Shift-Arrow Keys to manually select code in “stream” mode Alt-Shift-Arrow Keys to manually select in “box” mode

    26. Formatting What does code formatting do? Where can I adjust the settings? Tools->Options->Text Editor->(Language)->Formatting Ctl-K,D to format the current document Ctl-K,F to format the current selection

    27. Outlining Ctl-M,M to toggle outlining around cursor Ctl-M,L to toggle all outlining in current file Ctl-M,P to turn off outlining Edit->Outlining->Start Automatic Outlining to turn back on Ctl-M,O to collapse to definitions Selecting a collapsed definition allows you to cut and paste it as a whole

    28. Remove Unused Usings Right click in editor and select: Organize Usings->Remove Unused Usings

    29. Bookmarks Ctl-K,K to toggle bookmarks on current line Ctl-K,N to go to the next bookmark Ctl-K,P to go to the previous bookmark Ctl-K,L to clear all bookmarks Ctl-K,W to view the bookmarks window Organizing Bookmarks

    30. Commenting Handy Shortcuts: Ctl-K,C = Comment Block Ctl-K,U = Uncomment Block XML Comments Task List Comments //TODO //HACK //UNDONE

    31. Intellisense Ctl-J to invoke statement completion (i.e. bring up Intellisense) Ctl-Space or Alt-Right Arrow for statement completion

    32. Smart-Tags Ctl-Period to drop down a Smart-Tag menu Enter to select the first item Resolve Context Menu

    33. Code Snippets Ctl-K,X to bring up Code Snippet menu Type-ahead supported Or enter the snippet shortcut keyword and press Tab-Tab Ctl-K,S to insert a code snippet around a selected block of code Tab and Shift-Tab to switch between “tokens” Ctl-K,B to bring up the Code Snippet Manager

    34. Refactoring Ctl-R,R to rename current item Ctl-R,M to extract the currently selected code into a new method Ctl-R,E to encapsulate field into a property Ctl-R,I to extract interface from current class Ctl-R,P to promote selected local variable to a parameter Ctl-R,V to remove parameters Ctl-R,O to reorder parameters

    35. Searching

    36. Searching - 1 Incremental Search Ctl-I Start typing Ctl-I again to jump to next occurrence Current Word Search Ctl-F3 to search for the currently selected word Ctl-Shift-F3 to search for the current word looking backwards Quick Find Ctl-F to bring up Quick Find with current word as the default

    37. Searching - 2 Quick Replace Ctl-H brings up the Quick Replace window with the current word as the default Find Symbol Alt-F12 brings up the Find Symbol dialog Shift-Alt-F12 searches for the current word using the Find Symbol functionality but skips the UI

    38. Searching - 3 Find in Files Ctl-Shift-F opens the Find in File dialog Replace in Files Ctl-Shift-H opens the Replace in Files dialog Find in Files options

    39. Layout and Navigation

    40. Document Windows Document Windows = Tabbed Documents Ctl-Alt-Down Arrow to drop down file tab channel Tab Context Menu Close All But This Copy Full Path Open Containing Folder Tab Groups Horizontal or Vertical Windows Menu

    41. Document Navigation Ctl-Tab to display the IDE navigator Ctl-Tab again to scroll through open documents Ctl-Shift-Tab to scroll in reverse Arrow keys or mouse to select a document or dock-window Ctl-F6 and Ctl-Shift-F6 to jump between currently open documents without using the IDE navigator (forwards and backwards) Ctl-F4 to close the current document

    42. Dock/Tool Windows Docking Targets Five “States” Dockable Floating Tabbed Hide Auto-Hide Alt-F7 and Alt-Shift-F7 to scroll (forwards or backwards) through all opened tool windows using the IDE navigator Alt-F6 and Alt-Shift-F6 to scroll (forwards or backwards) through all opened tool windows without the navigator

    43. Dock/Tool Windows (Cont.) Tool windows that are hidden can be shown via their shortcut key or most are found under one of the following menu locations: View View->Other Windows Debug->Windows

    44. Window Layouts Four Layouts: Design View Full Screen Debugging View File View Shift-Alt-Enter to toggle between Full Screen mode and Design View

    45. Toolbars Drag and drop customization Visible based on current context Right click to display any toolbar at any time Customization dialog “Show Shortcut Keys in Screen Tips” Full customization of all toolbars while this dialog is visible

    46. Context Menu Customization Complete editing of any context menus Tools->Customize Select Toolbars tab Check “Context Menus”

    47. Advanced Design Time Tips

    48. Output Window Right click to disable unnecessary messages

    49. Command Window Ctl-Alt-A to open the command window Enter a > to run any VS command from the command prompt Full Intellisense for commands, arguments, and even file paths Command aliasing ? = Debug.Print Enter “alias” by itself to see current aliases

    50. Task Window Custom Tasks Task Shortcuts Comment Tasks

    51. External Tools How to add external tools? Redirecting console output to Output Window Passing arguments

    52. Find Combo Box Ctl-/ to open the Find Combo Box with a “>” entered for you Once in the Find Combo Box enter a “>” and you can run any VS command with the same Intellisense as the Output Window Enter a function name in the Find Combo Box and press F9 and a breakpoint will be set on that function

    53. Code Definition Window Ctl-\,D to show the Code Definition Window This window is a read-only source view of any symbol currently selected in the live editor. Code can be copied from this window Breakpoints can be set

    54. Object Test Bench Opened via View->Other Windows->Object Test Bench Instantiate new instances of classes or call static methods to do quick testing (without writing test code) Can also be reached via: Class View tool window Class Diagram designer Right-click on a class in either of the above and select either: Create Instance Invoke Static Method

    55. Debugging

    56. Common Shortcuts F5 to start debugging Ctl-F5 to start without debugging F11 to step into the current line F10 to step over the current line Shift-F5 to stop debugging

    57. Breakpoints F9 to toggle a breakpoint Or, simply click in the left border of the code editor Ctl-Shift-F9 to delete all breakpoints Ctl-B to show Break at Function dialog

    58. Breakpoints - Advanced Breakpoint Context Menu Location Condition Hit Count Filter When Hit

    59. Next Statement Manipulation Yellow arrow = “NEXT” statement to execute Can be dragged to new location Within Limits Be careful

    60. Debugging Threads Ctl-Alt-H brings up the Threads tool window At breakpoints all threads break together Threads can be frozen/thawed from the Threads tool window This keeps them paused when execution continues Threads toolbar also exposes functionality

    61. Break On All Exceptions Ctl-Alt-E to bring up Exceptions dialog It is common to break when a CLR exception is “thrown” This will break even when the exception is caught by a try/catch block

    62. Variables Windows They Are: Locals (Ctl-Alt-V,L) Autos (Ctl-Alt-V,A) Watch (Ctl-Alt-W,1-4) Quick Watch (Ctl-Alt-Q) All have similar functionality All display values of variables and allow for in-place editing Provides access to debugging visualizers

    63. Runtime Variable Tooltips Provides ability to view all of an objects properties and manipulate the values directly in the tooltip Provides access to debugging visualizers

    64. Debugging Visualizers New to VS.NET 2005+ Special user interfaces used to view the values of specific data types in variable windows or runtime tooltips Noted by the magnifying glass icon near the value Click to open visualizer Notable visualizers: Datasets Test XML HTML

    65. Immediate Window Ctl-Alt-I to bring up the Immediate Window The immediate window can be used to execute statements and evaluate expressions in the context of the current statement Access to any variable in scope is granted Can assign values to variables, read values, execute methods, etc Use the “>” character to allow entry and use of any VS commands (as in the Command window) Command window has much of the same functionality

    66. Son of Strike (SoS) SoS is a debugger extension that is loaded with VS.NET and available from within the IDE from the Immediate Window To load SoS: Edit your project properties and, under the Debug tab, check the “Enable Unmanaged Code Debugging” Open the Immediate Window and enter: .load sos For help, enter: !help

    67. Debugging The BCL Microsoft has made many of the debug symbols for the Base Class Libraries available for public use What does this mean? Does this mean .NET is open source?

    68. Debugging into the BCL How can I hook this up? Options->Debugging->General UNCHECK “Enable Just My Code” CHECK “Enable Source Server Support” Go to Options->Debugging->Symbols and add http://referencesource.microsoft.com/symbols Select an offline cache location CHECK “Search Above Locations Only When Symbols are Loaded manually” Loading Symbols From the Modules window or the Call Stack, right click on a BCL DLL and select “Load Symbols”

    69. VS.NET PLUG-INS

    70. Add-In Demonstrations GhostDoc Source Code Outliner VS.NET 2008 Power Commands Snippet Designer RockScroll VsBuildStatus CodeProject Browser

    71. EXTERNAL TOOLS

    72. External Tools Demo Launchy SharpDevelop XAML Tools KaXaml XamlCruncher XmlNotePad LinqPad Reflector Process Monitor Graphics Tools Paint.NET Gimp Web Development Tools FireBug (for FireFox) Web Dev Helper (for IE)

    73. Additional resources

    74. Visual Studio Add-In URLS VSBuildStatus http://visualstudiogallery.com/ExtensionDetails.aspx?ExtensionID=2a2293b4-1808-44aa-b030-661f6803d8a1 XAML Power Toys http://karlshifflett.wordpress.com/xaml-power-toys/ Source Code Outliner http://www.codeplex.com/SourceCodeOutliner Snippet Designer http://www.codeplex.com/SnippetDesigner StyleCop http://code.msdn.microsoft.com/sourceanalysis VS.NET 2008 Power Commands http://code.msdn.microsoft.com/PowerCommands Ghost Doc http://www.roland-weigelt.de/ghostdoc/ RockScroll http://microsoftdev.blogspot.com/2008/05/rock-scroll-visual-studio-plugin.html Ora http://www.codeplex.com/ora CodeProject Browser http://www.codeproject.com/KB/macros/cpbrowser.aspx CodeRush Xpress http://www.devexpress.com/Products/Visual_Studio_Add-in/CodeRushX/

    75. External Tools URLs Launchy http://www.launchy.net/ Delicious http://delicious.com/ FxCop http://code.msdn.microsoft.com/codeanalysis/Release/ProjectReleases.aspx?ReleaseId=553 Kaxaml http://www.kaxaml.com/ XamlPadX http://blogs.msdn.com/llobo/archive/2008/08/25/xamlpadx-4-0.aspx LinqPad http://www.linqpad.net/ XamlCruncher http://www.charlespetzold.com/blog/2007/07/100411.html SharpDevelop http://www.icsharpcode.net/OpenSource/SD/ XmlNotepad http://www.microsoft.com/downloads/details.aspx?familyid=72d6aa49-787d-4118-ba5f-4f30fe913628&displaylang=en Reflector http://www.red-gate.com/products/reflector/ Paint.NET http://www.paint.net/ Process Monitor http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx ZoomIt http://technet.microsoft.com/en-us/sysinternals/bb897434.aspx Web Dev Helper http://projects.nikhilk.net/WebDevHelper FireBug http://getfirebug.com/

    76. Questions? kvgros@architectnow.net

    77. Conclusion Thank you for coming!

More Related