Speaking at DevDays 2010 in The Netherlands and TechDays in Belgium – Visual Studio Tips

Update:  You can watch the video of my TechDays Belgium presentation at http://www.microsoft.com/belux/techdays/2010/videos.aspx . Just search for "Sara Ford" as the speaker.

Update: I’ve updated the Visual Studio Tips Advance section for today’s talk. Cheers!

I’m speaking this week in the Hague, in The Netherlands at DevDays 2010. I’m giving several talks on Visual Studio this week, before we (speakers) head over to TechDays in Belgium for even more Visual Studio talks.

I always post all my content online before I give talks, so that those who attend my sessions do not have to rush trying to write down keyboard shortcuts or names of commands. They can simply sit back and watch.

This blog post will be updated over the next several days, as I continue to give talks. Consider this my personal wiki for the week =D

And make sure to follow Zain’s Visual Studio 2010 Tip of the Day series!

Visual Studio 2010 Tips – Part 1

Tip #0 Know your environment settings! For all my talks, I use the General Development Settings. (Tools – Options – Environment – Import / Export Settings)

Searching Tips

Tip #1 How to behold the power of incremental search

Command: Edit.IncrementalSearch

Shortcut: Ctrl+i

Tip #2 Ctrl+F3 to search for currently-selected word

Command: Edit.FindNextSelected

Tip #3 F3 to search for last thing you searched for

Command: Edit.FindNext

Tip #4 Customize what files to find in

Find In Files – Look in – Choose Search Folders

Tip #5 You can use a reg hack for customizing search results

HKCU\Software\Microsoft\VisualStudio\10.0\Find String Find=$f$e($l,$c):$t\r\n

Editing Tips

Tip #6 How not to accidentally copy a blank line

Tools – Options – Text Editor – All Languages – General, Uncheck Apply cut or copy to blank lines

Tip #7 How to cycle through the Clipboard ring

Command: Edit.CycleClipboardRing

Shortcut: Ctrl+Shift+v

Tip #8 How to use box/column selection in the editor

Command: Edit.LineUpColumnExtend, Edit.LineDownColumnExtend, Edit.CharRightColumnExtend, Edit.CharLeftColumnExtend

Shortcut: Shift+Alt+Arrow

Tip #9 How to use multi-line edit

Shortcut: Shift+Alt+Arrow (with nothing selected)

Tip #10 You can copy a file’s full path / open windows explorer from the file tab channel

Command: File.CopyFullPath

Tip #11 You can use Ctrl+. to show a smart tag

Command: View.ShowSmartTag

Tip #12 Drag and drop code onto the toolbox’s general tab

Shortcut: Ctrl+Alt+x for Toolbox, enter to insert text into Editor

Customizing Tips

Tip #13 You can insert a snippet by pressing Tab Tab

Type in snippet shortcut, then press Tab Tab

Tip #14 You can create temp or throw away projects

Tools – Options – Projects and Solutions – General, uncheck Save new projects when created

Tip #15 Change text editor font size via keyboard (Accessibility macros) or use the new Zoom control

Command: Macros.Samples.Accessibility.DecreaseTextEditorFontSize

Command: Macros.Samples.Accessibility.IncreaseTextEditorFontSize

Tip #16 How to open a file without any UI

Ctrl+/ (or whatever Tools.GoToCommandLine is bound to)

alias fo file.openfile

fo <filename>

Tip #17 Guidelines in the editor registry key hackYou’ll need an extension to do this for VS 2010. More after my Visual Studio 2010 Tips Advanced session

HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\10.0\Text Editor  String RBG(128,0,0) 5, 20

Tip #18 You can create a macro for your import/export settings

Tools – customize – commands – macros – drag and drop macro to toolbar

Tip #19 How to not show the start page (or have the last loaded solution open)

Tools – Options – Environment – Startup, At Startup

Tip #20 File tab channel registry hackNo longer needed for VS 2010!!! Tools – Options – Environment – Document, insert files from right

HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0 key, you can create a DWORD UseMRUDocOrdering = 1

Tip #21How to show Misc Files Project to keep your files around

tools – options – environment – documents, show miscellaneous files in Solution Explorer

Tip #22 Edit project file from within IDE (unload project)

Unload project, edit project, reload project

Debugging Tips

Tip #23 You can use tracepoints to log stuff in your code

Right-click in indicator margin, select breakpoints, select Insert Tracepoint

Tip #24 How to get the find source dialog backMuch better experience in VS 2010!!! In the “No source code” window, there’s now a “browse for source” link

Solution Properties, under Common Properties – Debug Source Files, Delete Do no look for these source files edit box contents

Tip #25 You can disable the exception assistant

Tools – Options – Debugging – General, uncheck Enable the Exception Assistant

Tip #26 XML Visualizers

Visual Studio 2010 Tips – Part 2 (Advanced)

This is still a deep dive into the IDE, and not about coding or actually writing extensions.

For this talk, I’m going to cover a few must-have extensions for Visual Studio 2008, and then go straight into new features and extensions.

Here’s the list of what I’m going to cover:

Must have Visual Studio 2008 Tips

Tip #1 – Behold the power of incremental search

Tip #2 – Customize Find in Files / Registry edit to simply Find results window

Tip #3 – How not to accidentally cut/copy a blank line

Tip #4 – How to open a file without any UI

New Visual Studio 2010 features

Make sure to follow the new Visual Studio 2010 tip of the day with Zain!

Tip #5 – How to use Multi-line edit

Tip #6 – How to insert files from Right to Left in File tab channel

Tip #7 – Automatic Highlighting of Symbols

Tip #8 – IntelliSense “Sub-String” and Pascal Casing searching

Tip #9 – IntelliSense consume first / suggestion mode

Tip #10 – They Fixed the VB Smart tag bug

Press Ctrl+<period> to invoke smart tag, but now in VB, the first option in list is automatically selected, so you can simply hit <Enter> without having to first press the down arrow.

Tip #11 – New HTML and JavaScript Code Snippets

Tip #12 – Improved Outlining Collapsing / Expanding

In VS2010, you can select anywhere within the code block to collapse the region. You no longer have to click just the ‘-‘ box in the outlining margin to collapse the region.

Tip #13 – Navigate To

Tip #14 – Call Hierarchy

Tip #15 – Mutli-monitor Support

You can now drag out file tabs from the file tab channel and treat them like tool windows. Also, both these file tabs and tool windows will listen to WindowsKey + Arrow to snap to the monitor’s edge. use ctrl+DoubleClick to put either file or tool window back within Visual Studio in the “tabbed document” state.

Tip #16 – Zoom / Ctrl+Mouse Wheel

Tip #17 – The New and Improved Datatips

Tip #18 – Labeling and Sharing Breakpoints

Tip #19 – Getting Started with IntelliTrace

Tip #20 – WPF visualizer

Visual Studio Extensions

Tip #21 – How to Install Extensions

Tip #22 – Walkthrough of a few extensions

Tip #23 – Getting started writing your own extensions

MSDN Sample used in today’s talk

Tip #24 – How to search project templates

Tip #25 – Add Reference Dialog Improvements

Thank you!

DevDays 09 – 24 Visual Studio Tips

Tip #0 Know your Keybindings! General Development Settings

Searching Tips

Tip #1 How to behold the power of incremental search

Command: Edit.IncrementalSearch

Shortcut: Ctrl+i

Tip #2 Ctrl+F3 to search for currently-selected word

Command: Edit.FindNextSelected

Tip #3 F3 to search for last thing you searched for

Command: Edit.FindNext

Tip #4 Customize what files to find in

Find In Files – Look in – Choose Search Folders

Tip #5 You can use a reg hack for customizing search results

HKCU\Software\Microsoft\VisualStudio\9.0\Find String Find=$f$e($l,$c):$t\r\n

Editing Tips

Tip #6 How not to accidentally copy a blank line

Tools – Options – Text Editor – All Languages – General, Uncheck Apply cut or copy to blank lines

Tip #7 How to cycle through the Clipboard ring

Command: Edit.CycleClipboardRing

Shortcut: Ctrl+Shift+v

Tip #8 How to use box/column selection in the editor

Command: Edit.LineUpColumnExtend, Edit.LineDownColumnExtend, Edit.CharRightColumnExtend, Edit.CharLeftColumnExtend

Shortcut: Shift+Alt+Arrow

Tip #9 You can copy a file’s full path / open windows explorer from the file tab channel

Command: File.CopyFullPath

Tip #10 Drag and drop code onto the toolbox’s general tab

Shortcut: Ctrl+Alt+x

Tip #11 You can use Ctrl+. to show a smart tag

Command: View.ShowSmartTag

Tip #12 You can insert a snippet by pressing Tab Tab

Type in snippet shortcut, then press Tab Tab

Customizing Tips

Tip #13 You can create temp or throw away projects

Tools – Options – Projects and Solutions – General, uncheck Save new projects when created

Tip #14 Change text editor font size via keyboard (Accessibility macros)

Command: Macros.Samples.Accessibility.DecreaseTextEditorFontSize

Command: Macros.Samples.Accessibility.IncreaseTextEditorFontSize

Tip #15 How to open a file without any UI

Ctrl+/ (or whatever Tools.GoToCommandLine is bound to)

alias fo file.openfile

fo <filename>

Tip #16 Guidelines in the editor registry key hack

HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\Text Editor  String RBG(128,0,0) 5, 20

Tip #17 You can create a macro for your import/export settings

Tools – customize – commands – macros – drag and drop macro to toolbar

Tip #18 How to not show the start page (or have the last loaded solution open)

Tools – Options – Environment – Startup, At Startup

Tip #19 File tab channel registry hack

HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0 key, you can create a DWORD UseMRUDocOrdering = 1

Tip #20 How to show Misc Files Project to keep your files around

tools – options – environment – documents, show miscellaneous files in Solution Explorer

Tip #21 Edit project file from within IDE (unload project)

Unload project, edit project, reload project

Debugging Tips

Tip #22 You can use tracepoints to log stuff in your code

Right-click in indicator margin, select breakpoints, select Insert Tracepoint

Tip #23 How to get the find source dialog back

Solution Properties, under Common Properties – Debug Source Files, Delete Do no look for these source files edit box contents

Tip #24 You can disable the exception assistant

Tools – Options – Debugging – General, uncheck Enable the Exception Assistant

Finally had lunch with my book editors, who are blogging and tweeting now

Last week, I finally got to meet my book editors. As I stated in the acknowledgements of my book, I never understood why book authors always profusely thank their editors. I used to think “aren’t they just doing their jobs?” until I had to go through the process.

People often ask me why did I go two months without sleeping in order to make my chapter deadlines. The obvious reason was to create the scholarship fund. But the non-obvious reason was to complete my chapters as soon as possible, as it was my only way of really thanking my editors and the powers-that-be at Microsoft Press for giving me the opportunity to write a book in 3 months. (yes, 3 months from offer to printer – my eyesight is still recovering. I never want to hear an eye doctor say “OMG what have you done?” ever again).

But what I really want to call out is that they are blogging (http://blogs.msdn.com/microsoft_press/) and tweeting (@MicrosoftPress). I really like the ideas they shared with me over lunch for blogging and twittering, so I want to give them some link love and hope you’ll do the same. I’m all for making Microsoft more transparent and (dare i say it) agile.

From Left, Melissa von Tschudi-Sutton, Devon Musgrave, and Me.

From Left, Melissa von Tschudi-Sutton, Devon Musgrave, and Me.

Shameless plug #2 for the day: If you go to their blog right now, you’ll see an article about my book and an excerpt of chapter 4.

ReMix Sessions (CodePlex, Visual Studio Tips) now available online

My 2 talks, plus my 20 Visual Studio Tips in 7 minutes micro-talk, are available at

http://www.microsoft.com/uk/remix08/agenda.aspx

I highly recommend checking out the 7 minute presentation, but don’t take my word for it. Thanks to Guy Smith-Ferrier for these kind words, “You should take 6 minutes 40 seconds out of your life to watch this when the videos are released.”   I put together the list of 20 tips, but other than that, it was totally impromptu. It took me a few tips to get the timing down. You’ll hear Dave screaming “NEXT” every 20 seconds.

The videos will be reloaded in the screen at the top of the page. In other words, after you click “watch this session” you’ll need to scroll up and hit play to watch the video.

20 tips in 7 minutes video:

  1. Go to  http://www.microsoft.com/uk/remix08/agenda.aspx
  2. Select Day Two
  3. Scroll down until you see 20/20 Talks. Click Watch this Session.
  4. Scroll back up and hit play to start video
  5. The timeline for my 7 minute talk is from 7:27 – 15:05.  I was the second talk =)

The CodePlex Talk and the full Visual Studio 2008 IDE Tips and Tricks talk are on Day One. They are the full recording.

Remembering ReMix08 UK – 3 talks in Brighton, England last week

Last week, my career-long dream of becoming an international speaker came true. I had the opportunity to speak at ReMix08 UK in Brighton, England. Thanks to Dave Sussman and Phil Winstanley, who ran the Community Track session, for inviting me out to speak. Also thanks to Mike Ormond for fitting me into the Developer track to deliver the VS tips talk.

This was an amazing conference. The logistics, the setup, and the organization reminded me of a conference the size of TechEd or PDC, yet I was completely relaxed and comfortable as a speaker. Kudos to everyone on the ReMix UK event staff and all the track owners who put this together. Your hard work definitely showed.

I gave 3 talks and sat on 1 panel during the 2-day conference. You can view my CodePlex talk slides and photos over on the CodePlex team blog. But since you are reading my blog, here’s are pictures from my Visual Studio Tips and Tricks.

Apparently, i rocked the house with my 20/20 session on VS Tips. In a 20/20 talk, you have 20 slides, and have 20 seconds each slide, lasting 7 minutes. Being the classic overachiever that I am (this summer has taught me nothing), I volunteered to do a 20/20 but using VS to demo tips instead of using slides. In other words, i demo’ed 20 tips, 20 seconds each. Dave screamed “Next” every 20 seconds, forcing me to move to the next tip. I cannot wait to get the recording and post it here. (again, thanks to Dave and Phil for organizing these talks!)

Here are pictures from my Visual Studio Tips and Tricks talk. I am still amazed how great the room looked.

Showing off cowboy hat from blog photo

Demo'ing on stage

And i’ll throw in a CodePlex photo that doesn’t appear on the team blog:

CodePlex and me

And lastly, I spent Saturday sightseeing in London, before flying home. And here is a picture of “tower bridge” and not “London bridge.” I’m curious when do people learn this in schools?

Tower Bridge in England

and of course the codeplex flag in front of Big Ben. Thanks to Scott Guthrie for taking the photo.

CodePlex and Me in front of Big Ben

Tips Inspiring Tips

I’ve been inspired by the Silverlight Tip of the Day series (which was originally inspired by this VS Tip of the Day series) to include the tip # in the titles.  Isn’t community cool?!  Here’s the first Silverlight tip to check out.

When the New Orleans Saints play tonight (provided they don’t attempt another double-reverse game-losing fumble again), i’ll begin updating these tips to reflect their tip #, as I truly have no clue what tip # we’re on.  So in case you see updates in your RSS feed, this is what is going on.

Enjoy!

VS Extensibility, VS SDK, and Shared Source

James Lau is a Program Manager for the VS SDK.  He describes the near future of community projects and activities for the VS SDK, including Shared Source and Power Toys (my new 4 favorite words).

Check out his post and leave him some feedback.  I’ve been advising them on how to do Shared Source releases and use CodePlex.  And yes, we’ve been chatting with them about Pack Installer too.

Just the other day, Dr. Ex (from the VS SDK team) and I were discussing the necessary values needed to generate a Package Load Key.  I could still remember the test cases i used 5 years ago to test the thing.  (Techincally the first feature i ever tested was the /safemode switch, but PLKs came soon after.)  It’s funny the things you don’t forget.

Power Toys as Shared Source, Collaborative Development Software – Where we’re at and where we want to be

Those who have been following my blog since my days on the VSCore team probably have noticed that I haven’t blogged much about my new job here on the Developer Solutions / Power Toys team.  The golden rule of blogging has always been to blog smart, which implies blogging about the stuff that you know about (or get the expert of those areas to double-check your understanding).  I guess I could have blogged about how little I know about how and why people contribute to Open Source Software, but it wouldn’t have made for an interesting read – trust me.

So, after countless meetings with the Shared Source Initiative team, Bill Hilf’s team, my fearless mentor on OSS down the hall, WiX’s Rob (including staying late one Tuesday night to watch the team code – it’s crazy what I’ll do to succeed), and the CodePlex team, I have an idea how to kick start the collaborative-development for our power toys.

Josh wrote a post asking what does it take to be successful with collaborative development, and then posted some feedback

Let’s see how we’re doing with our power toys:

  • Well-formed code / code comments – since day one, we’ve made sure we wrote all documents and source code with releasing it to the community as a top priority
  • Unit tests – we’ve provided unit tests that for all our projects, along with test scripts that kick off running the unit tests.  This way project contributors can rest assured that their changes didn’t break mainline functionality. Also, we chose to go with tools like FXCop and NUnit to ensure that anyone who wanted to participate was able to.
  • Scenario tests - we’ve also provided scenario tests to verify additional coverage than just at the unit level.  We really want to make sure check-ins are of high quality
  • Design documents – we’ve provided documents written by the project developer to give a high-level overview of the project
  • Test Plans – One of the things I’ve learned from my software testing category is that a lot of people out there would love to know more about how to do software testing.  And we’re providing another example of how to do it.  Also, our test plans allow contributors to think about the impact a check-in may have to other functionality. 
  • Documentation – We’ve gone with calling our docs Readme’s, although I’ve always felt that a readme is more about “how to install, uninstall, and any gotchas you need to know about; whereas documentation is more about how to actually use the application once it is installed.  You’ll see us use the term interchangeably, but just note that both sets of information are included in one doc.  
  • Vision document – We haven’t gotten to this quite yet, but what I would like each of the tools to have is a doc that describes the scope of the project, what works well, what doesn’t work so well, what features could be added (that are in-scope).  Also this doc would mention things that are not in-scope.  For example, MSBee should only contain tasks related to building against .NET 1.1, and not become a repository of .NET 2.0 tasks. 
  • A good project leader – Currently, we have several people as leaders on our projects, including the PM for the tool, the developer who wrote the tool, and me (whatever it is that I do besides getting licenses approved for use).
    Experts -  We’re looking for a few good experts (or those who want to become experts) to join our projects.
  • Popularity – So far, we’re doing pretty well here, especially with “power toys” in your project’s title.
  • Completeness – I’m very curious to compare how the different tools we’ve provided meet users’ needs.  This will give us a better sense of where to invest our time with future tools.

My Power Toys WishList

Since I started back in January, I’ve been doing what I’ll describe as JIT (just in time) spec’ing.  I’ve tried to do some further out thinking by spec’ing consistency guidelines and such, but there’s a lot to do when you’re an early adopter for a new v1.0 site.  So, here’s a stab at some of the ideas I’ve had floating around in my head, where I would like to see the power toys get to.

  • All documentation provided in a Wiki that everyone has access to modify.  Of course, the project coordinator should always retain the right to lock or moderate certain pages.
  • A reputation system to honor top contributors, including Power Toy ship-it awards.  If you have any ideas, please let me know.  I’ve been thinking about this since I joined the team, but haven’t come up with anything I’m proud to share… yet.
  • Screencasts for using each of the power toys.  I’d like to also do a screencast of how to use CodePlex to get your environment setup for building and to walk through the steps of checking in code, using both VSTS and Express Skus.  As I said earlier, we really want everyone to be able to contribute, and the more instructions I can provide (wikis, screencasts), the more successful we’ll both be.
  • A really cool power toys logo that people can display on the blogs, indicating they are members of our power toys.
  • A Power Toys for Visual Studio Collection getting started guide that describes how both for internals and customers can add their tools as Power Toys

Just like Accessibility, I never thought I would get an opportunity to do something this cool at Microsoft.  So please, send me your feedback, thoughts, etc.  Let me know what your experiences are, for good and for bad, so I can make them ever better.

I’ve moved to the Project / Solution Team!

As of a month ago, I’ve officially transferred to the Project and Solution team under VS Core!  I have now been on every feature team under VS Core back when we were called the VS Environment team.  It’s awesome that I’ve been able to impact every part of Whidbey that VS Core owns. 

I’m currently owning the following feature areas…

  • Item Management (including solution and project items, solution and project folders, renaming, moving, etc)
  • Build (configuration manager settings, solution and project configurations, solution and project platforms)
  • Source Code Control Integration (checking in and out projects, solutions, items, renaming items, etc)

To recap my feature areas since joining Visual Studio 4 years ago:

  • Environment SDK Samples 
  • Driving Accessibility 
  • Visual Studio Integration Program 
  • PIAs (only for a few months) 
  • Text Editor Object Model (only for a few months) 
  • Profiles – aka VS Settings found in the Tools – Import / Export Settings dialog  (my first feature from M0 – meaning that I owned it before it was coded)
  • Window Management, including tool window docking, IDE Navigator, etc. 
  • Command Window, Immediate Window 
  • Driving the UI Consistency Testing effort 
  • Statement Completion, quick tips and parameter info (Intellisense) 
  • Tracking Changes, Incremental Search, Fonts and Colors 
  • Basic Editor Functions, like Cut, Copy, Past, Undo, Redo, etc. 
  • Editor Emulations like Brief and Emacs 
  • Code Snippets (not the actual content of the code snippets, but the mechanism in which you apply and edit the snippets) 
  • And now Project / Build / Solution features

I should point out that moving around a lot isn’t typical of the environment here on the team. Almost everyone here has stayed on their feature team or has only moved once in the past product cycle.  I guess I’m just the exception to that rule.  =)

Introducing our first VS Core Community PowerToys Release – VS Editor Zoom Control

very big thank you to Henrik Stuart for writing this VS Editor Zoom control and updating it for Whidbey. I’ve zipped together some quick downloads of the control for Whidbey and Visual Studio .NET 2003 that you can find on the site.

Henrik will receive an “I love Visual Studio Core” t-shirt. I’ll post a picture as soon as the shirts come in.

Got a suggestion for a VS Core Community PowerToy? Want to help us write PowerToys? Let me know!