760 likes | 927 Views
. 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
E N D
2. Visual Studio.NET: Tips, Tricks, & Toysby Kevin GrossnicklausArchitectNow
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!