Blog - Title

Visual Studio 2013 Current Status

  • The Ultimate Visual Studio Tips and Tricks Blog

    Visual Studio 2012 New Features: Solution Explorer


    I love the title of this one because I’m sure someone will read this and wonder why I think Solution Explorer is a “new” feature.  I mean, haven’t we had this sucker for a billion years?  Aren’t there cave drawings in France about this feature?  So why is it “new”?  Let me show you!


    Search Solution Explorer (CTRL + ;)

    First and foremost, you can now search Solution Explorer!  I’ve been wanting a feature like this since before Solution Explorer was even invented back in my VB 3 days (about 19 years ago).  Here is what things looked like back then:



    And from then until Visual Studio 2010 we STILL couldn’t search items:



    But now you can!  Just type in any search term into the Search Solution Explorer textbox:



    And it will find anything that contains the search term in it:



    You can filter the search to choose how broad the search goes by clicking on the drop down arrow to the far right of the Search Solution Explorer textbox:

    (NOTE: searching within file contents doesn’t mean what you think it means.  See the section “More Than Physical” for information)



    One other cool feature is you can have Solution Explorer only show you the currently open files by clicking the drop down button just to the right of the Home button:




    More Than Physical

    In the past, Solution Explorer was relegated to only showing physical elements or those things that help contain / organize those elements (i.e. solution folders).  That’s out the window, too.  Now the experience doesn’t stop at the physical level but extends to logical elements as well:



    Which makes searching even more awesome:



    If you are using the Preview Tab then clicking on any item in Solution Explorer will go to the file and highlight code if applicable BUT you can’t double click the logical item to open the file for some reason and instead have to double click the filename to open it.




    Navigation is much improved as well. 


    Browser-Like Movement

    After a doing a search, like the one shown above, you can click the Home button:



    And Solution Explorer will go back to “normal”:



    Clicking the Back button:



    Takes me back to the search I just did:



    Here is the weird part:  If I reuse the search box and type another search right away it doesn’t remember the previous search I did and I can’t go back; BUT if I click Home between searches then it remembers all my old searches.  I’ve tested this up to 12 entries and it works fine as long as you remember to click Home between searches.


    Sync with Active Document

    Occasionally you may be looking at a file but Solution Explorer isn’t on that file.  When this happens a button appears that allows you to sync Solution Explorer with the document you are currently in so you can see where it is in the project structure.



    Right Click Experience

    The right click experience is, to say the least, incredible!  Depending on what you select the context menu changes appropriately.  So if I right click a code file this is what I get:



    But if I right click a class this is what I get:



    And this is the context menu for a method:



    Each option changes the view in Solution Explorer to better examine relationships.  The bottom line:  make sure to check out your context menus to change the elements you are viewing in Solution Explorer.



    New Solution Explorer View

    There used to be a button for creating a new instance of Solution Explorer which was excellent for multi-monitor viewing of code:



    The button is gone now (which is a mistake in my opinion) and you can no longer get an entire copy of Solution Explorer in a new window BUT you can get a copy of any project or file in a new Solution Explorer window which is what I have done in the example above.  Just right click any project/file and choose New Solution Explorer View:




    Team Foundation Server

    If you are using TFS then you can filter Solution Explorer to show you files with Pending Changes:



    And there you have it!  As you can see there are quite a few changes in the new, improved Solution Explorer so go explore!

  • The Ultimate Visual Studio Tips and Tricks Blog

    Visual Studio vNext IDE Enhancements



    Quick Housekeeping Note:  I’ve deprecated the old Visual Studio Tips extension and have tried to get it removed from the gallery so it isn’t available anymore but have had little success.  I am currently not planning to replace the tool with a new version but am open to suggestions as to a viable alternative.  For now I suggest you use your favorite RSS feeder or visit the blog directly.  Now on with the post…



    With the BUILD conference ( just around the corner and lots of announcements coming I thought now would be a good time to pause the usual posts and talk about the next version of Visual Studio (vNext) and how you can prepare for some of the goodness to come.  This is a high-level look at what is coming and I will be blogging in much more detail on the features throughout the vNext cycle.  With that said, I’ve intentionally left out any images of the IDE for this post in favor of brief feature descriptions.  Additionally, I will be blogging and tweeting directly from the BUILD conference while I am there to keep you up to date on the latest revelations that are coming out.  To get a sneak preview of some of the features make sure to see the following video:


    Microsoft Visual Studio IDE Futures



    Visual Studio 2010 introduced a great new extensibility model that made custom additions very easy to make.  You can find these extensions at the Visual Studio Gallery (  and, if you haven’t explored some of these great additions, I suggest you browse through the gallery to see the items there.  When asked which extension I suggest everyone download the number one answer I give is always been the Productivity Power Tools (  Download it now.  Seriously.  Now. 


    We have (and will going forward) use extensions to field test new features that will be included in future versions of Visual Studio and it is a safe bet that some of the Power Tools will find their way into the vNext.  If you watched the video mentioned above you will hear Weston Hutchins mention this as well.  What better way to see what people want than to let them vote by actually downloading and using a feature?  Granted it’s a little harder to focus on individual features when a lot are packed together but, even then, we get plenty of feedback on what people like and don’t like.



    Once we get beyond VS2010 then we can start looking at the new features that have been publicly revealed so far.  Here is a list of things you can expect in the next version:


    Project Round-Tripping

    One of the bigger pains in prior versions of Visual Studio is moving a project between versions.  It was an all-or-nothing proposition typically due to schema changes to the proj files.  If you opened a VS2008 project in VS2010 and converted it to the new project format then that project could no longer be opened in the prior version.  For those that have experienced this you know this wasn’t entirely true and you could do a little proj file hacking to go back but it wasn’t fun or intuitive to do so.  Visual Studio vNext will solve that issue.  You will now have the ability to open a project in the new version of Visual Studio and still go back to prior versions.  The net effect is you can have different teams on different versions of Visual Studio but still able to share projects with each other!


    Search the IDE

    With the dizzying array of menu items, toolbar buttons, options, files, etc… it is often difficult to remember where a particular item exists.  VS vNext adds the ability to quickly search the IDE for these things.  A good analogy would be to compare it to the ability to search programs and files when you click on the start button in Windows.  I don’t know about you but I don’t look for files anymore for the most part, I just hit my Windows key then type in what I am looking for then select what I want.  Imagine that level of functionality inside the Visual Studio IDE and you have an idea of what this new feature does.


    Solution Explorer Enhancements

    Multiple Instances of Solution Explorer

    vNext supports creating new instances of Solution Explorer so you can have focused areas (one project in one instance and another project in a second instance) for working on multiple monitors.  Additionally these instances can be nested inside windows that have been pulled outside the IDE for use on other monitors.



    In the Productivity Power Tools we introduced the Solution Navigator with some cool new features that have found their way into the new IDE.  The ability to drill down into the classes then members from Solution Explorer now exists.  You can right-click, say, a method in Solution Explorer and see some new terminology:  Calls, Is Called By, and Is Used By.  Calls represents the call hierarchy for the method; Is Called By represents a list of methods that call the current method; and Is Used By represents all the specific file, line, and column positions where the method is mentioned.



    Much like the new search for the IDE, we now have a new search for just the items in Solution Explorer.  You can quickly type in a file, class, reference, etc… and see a filtered list in Solution Explorer of the items you are looking for.


    Collapse All

    A long-awaited feature that will collapse everything in Solution Explorer so you can expand items “fresh” as you navigate though the various hierarchies. 


    Tab Well Enhancements

    Pin Tabs

    Another feature introduced in the Productivity Power Tools, this feature will let you keep interesting tabs surfaced on the left of the tab well while non-pinned tabs get pushed out of the visible area based on usage.


    Floating Tab Wells

    You can now rip off documents from the IDE and have multiple tabs grouped together in one or more floating tab wells.  This is great for multi-monitor situations where you want groups of related files on separate monitors.


    Search Toolbox

    There is now a dedicated search box for the Toolbox window so you can quickly filter items to find the controls you want.


    Add Reference Dialog

    The most notable change to the Add Reference dialog is speed.  It is way, waaaaay faster to add a reference with the new dialog than ever before.  Also, a search box has been added to allow quick filtering of assemblies.


    Streamlined Quick Find / Replace

    The Quick Find / Replace has been cleaned up and streamlined to make using the experience easier overall.


    Error List Window Enhancements

    Search Errors

    As with many other tool windows, the Error List window now sports a search box you can use to filter the list of errors, warnings, and information messages.


    Scope Filter

    The Error List window also now supports a scope filter that lets you show only those items in Open Documents, the Current Project, or the Current Document.


    Preview Tab

    Probably one of the coolest new changes is the Preview Tab.  Essentially it allows you to look at a preview of a file and decide if you want that file to be opened up in the tab well.  I’ll show much more on this feature later but wanted to mention it here to round out the list of items I will be covering in the short-term.



    There are a lot of very cool changes coming in Visual Studio vNext.  This post is meant to make you aware of the coming changes at a high-level to prepare you for a deeper discussion of each of these features in future posts.

  • The Ultimate Visual Studio Tips and Tricks Blog

    Visual Studio vNext Performance Enhancements


    Continuing on our odyssey of exploring the features in vNext, I thought we would look at some of the performance enhancements that have been publicly announced.  Naturally, at this time, I can’t go very deep into the inner-workings of the improvements but will endeavor to list them out and explain somewhat based on information currently available.  Also, be aware that this is a very early look at these features so there will be many improvements made as the product gets closer to RTM.  I’m actually running two versions of vNext currently; the one that will be made available to the public as a pre-release at some point and the one we build internally so I have a pretty good handle on what you will see and what is coming out.  I can say that there are some great things that are being done with the product you will definitely enjoy.  With that said let’s take a look at some of the things we have revealed so far…


    Microsoft Visual Studio IDE Futures

    First off, if you haven’t seen it yet, most everything I mention comes from the great TechEd session done by Weston Hutchins that can be found here:



    Performance: The Four Pillars

    For vNext we are focused on four areas of investment to improve the product:

    1. Overall Responsiveness
    2. Long Running Operations
    3. Memory Utilization
    4. Better Feedback


    Overall Responsiveness

    As I review the areas of improvement expect a great deal of overlap as many of the improvements fall into multiple categories.  With that said, this area is pretty self-explanatory:  We want vNext to enable users to quickly go about their work without waiting on the IDE.  These improvements manifest themselves in a variety of ways but all have the singular goal of making the product more responsive.  Below are some of the areas that address this goal that we have made public so far.


    Faster, Stronger, Better Add Reference Dialog

    One of the IDE enhancements revealed so far is Add Reference dialog box.  First and foremost it has been supercharged to load almost instantaneously.  How?  We index the assemblies beforehand to have a ready-made list on demand.  We haven’t gone into detail yet on what exactly is being done but expect that revelation in due course.  Also, as with most of the IDE, we have added the ability to search/filter the list so you don’t spend a billion years looking for the assembly you want.


    Out-of-Process Operations

    We have moved some activities out-of-process to give control back to the IDE quickly.  See Memory Utilization.


    Parallel Operations

    vNext will take advantage of multi-core systems much better than VS2010 which will result in more overall responsiveness.  See Long Running Operations.



    Long Running Operations

    Building and debugging are examples of a long-running operations that we are addressing.  For example, Visual Studio 2010, while a great improvement over previous versions, really doesn’t take full advantage of multi-processor machines.  Our goal is to speed things up so you can get your work done faster with less time spent waiting.


    Background Builds

    Build operations have now been moved to background threads so you can actually do other things in Visual Studio while a build is happening.


    Parallel Project Builds

    Another great new feature is the ability to build projects in parallel.  vNext comes with an option to have parallel project builds based on the number of cores your system has.  In fact, the default value is automatically set to the max cores on your system.  You can reduce this value if you want.



    Memory Utilization

    Responsiveness also includes the overall efficiency of Visual Studio.  We are working on reducing the memory utilization overall based on usage. 


    Virtual Memory Utilization

    vNext uses much less virtual memory internally.  Much of this is due to running builds out-of-process (see below) as well as other enhancements we have made that haven’t been released yet.


    Out-Of-Process Builds (C++, C#)

    C++ has had this feature for a while and we are now brining it to C# and, in a future release sometime after vNext, VB as well.  We now perform builds outside the Visual Studio process.  Instead of loading numerous referenced assemblies inside the VS process they are now loaded into an external process then discarded when we are done.  This results in significantly less memory usage inside Visual Studio which results in a more responsive, stable product.



    Better Feedback

    This one is really simple.  How do we get the best information possible when there are issues with the product so we can continuously improve it for you?  Solving for this question is never easy but we have devised ways of obtaining performance data from your actual use of the product to help strengthen our knowledge of areas that need to be addressed.


    PerfWatson, PerfWatson, PerWatson

    The number one tool you can download TODAY to give us feedback on VS2010 and vNext is PerfWatson.  You can get it from the Visual Studio Gallery here:

    This tool allows us to get up-to-date, immediate information on the issues that are impacting performance.  This tool is currently built into the pre-release version of vNext and, I suspect, we will include it in the RTM version as well with an option for you to turn it off if you don’t want it.


    Visual Studio Feedback on Connect

    If you haven’t gone to yet then you need to.  This is one of the main ways we have been getting directed feedback from you for some time now.  It’s a great way to get to see what others are saying and to communicate directly with the VS team.

  • The Ultimate Visual Studio Tips and Tricks Blog

    Visual Studio 2013: Organize Your Code with Named Regions



    This feature was first introduced in Visual Studio 2005 and, over the years, I’ve heard plenty of arguments for and against using it. Those “against” think this can be used as a crutch to hide bad code and not adhere to good coding techniques. Those “for” think this is a great way to organize your code and get clutter out of the way. I’ll show you how it works and let you decide which group you fall into.




    Creating Named Regions



    In C++ you create regions by using “#pragma region” with label and “#pragma endregion” (case-specific):

    5-16-2012 12-21-15 PM




    For C# you can eliminate the “pragma” keyword, as well as the quotes around the region name if you desire, and just use “#region” with label and “#endregion” (case-specific):

    5-16-2012 12-24-08 PM




    Visual Basic is just as easy as C# and uses a similar syntax of “#Region” with label and “#End Region” (not case-specific):

    5-16-2012 12-26-57 PM 

    Note that the quotes around the region name are required in this example.




    Value of Named Regions

    The value of creating Regions is twofold. First, they travel with the code so are shared by all team members when using source control. Second, they become part of document outlining and can be collapsed:

     5-16-2012 12-30-40 PM 


    or expanded to further organize you code:

    5-16-2012 12-29-04 PM




    Best Practice

    Special thanks to Marcus Rangell for reminding me of this tip. As a best practice you might consider putting the name of the region in the End Region line as well:

    5-16-2012 9-00-45 PM

    This technique will work with C++ and C# but not with VB regions.


    The best practice is particularly useful when you have nested regions:

    5-16-2012 9-22-04 PM


    The only down side is this doubles up the names in C++ when regions are collapsed:

    5-16-2012 9-24-18 PM

    You will not see this problem in C#.

  • The Ultimate Visual Studio Tips and Tricks Blog

    Visual Studio 2013 Preview: Code Map Debugger Integration


    5-16-2012 12-48-10 PM



    The original Code Map was introduced in the product with Visual Studio 2012 Update 1. You need to read my original post before moving on:


    My assessment at the time was that it was a good feature but had poor performance and didn’t really add much value relative to Dependency Graphs. With debugger integration however Code Maps have definitely come into their own and the performance is very good.


    Note: Code Map Debugger Integration is a feature in the Ultimate edition of Visual Studio.




    Code Map Debugger Integration

    Assuming you have a handle on Code Maps now let’s see how the debugger integration works. First, I’ll take the TailSpin Toys sample code and set a breakpoint within the code base (ShoppingCart.cs, line 61):

    5-16-2012 12-04-13 PM



    I’ll press F5 and add an item to my cart to trigger the debugger:

    5-16-2012 12-07-12 PM



    Ordinarily, we would step though the code and hope we remember how we got to a particular place. Those days are gone! Now we can turn on the Code Map feature while debugging:

    5-16-2012 12-12-27 PM



    You can also find this on the Menu Bar at Debug | Show Call Stack on Code Map:

    5-16-2012 12-13-37 PM



    You will see a Code Map in sync with the debugger at this point. You can create Code Maps in C#, VB, C++, JavaScript currently. Once activated all future debugging sessions will include a Code Map until you turn this feature off:

    5-16-2012 12-17-38 PM



    If we take a closer look at the current map, we can see that it shows how we arrived at the current call (the squares above the last AddItem call) and our current location (yellow arrow). Although the current location indicator is partially covering it, you can also see the breakpoint indicator:

    5-16-2012 12-27-35 PM



    Stepping through the code we see the map keeps updating so we don’t have to keep the path in our heads:

    5-16-2012 12-29-19 PM



    The Code Map will continue to update for our debugging session showing where we have been and where we currently are in the call stack:

    5-16-2012 12-35-58 PM



    The graphs can get quite large:

    5-16-2012 12-40-46 PM



    For this reason it’s important to use the map tools at your disposal. The context menu items when you Right Click any node are a great example of common tools:

    5-16-2012 12-45-23 PM



    You can Double Click any node to view the code from that location in the stack. A green arrow will indicate your current position:

    5-16-2012 12-54-27 PM



    If you happen to choose a node that isn’t part of the current active call stack then you will get a slightly different indicator:

    5-16-2012 12-57-41 PM



    When you stop debugging the Code Map will be preserved so you can save it if desired and keep a map of the code base you just went through. I think this is an exceptional addition to the debugging experience!

  • The Ultimate Visual Studio Tips and Tricks Blog

    Heroes Happen Here Launch Resources



    Welcome to the Launch Landing Page on my blog!  Here you will find all kinds of launch-related coolness for your use.


    Visual Studio Team System 2008 Virtual PC Images 


    Hands-On-Labs -- These things rock they are the harcore labs that you can do to get up so speed with the products.

    [UPDATE:  apparently there are source files missing from the hands on labs above so they are basically PDFs that suck.  You can grab them as a nice overview but use the link below for labs with source files you can actually use:


    And here you can find related webcast/podcasts/etc...:  ]


    Now to the good stuff!  here are the links to videos from the Dallas Launch.  Enjoy!

    Links to Session Videos:

    Ø  Keynote, Chris Sakolosky, Jon Roskill

    Ø  Virtualization and your Infrastructure, John Weston

    Ø  Exploring Windows Server 2008 Web and Application Technologies, John Weston

    Ø  Optimizing your IT Infrastructure with Windows Server 2008, Stephanie Doakes

    Ø  What is New in Windows Server 2008, John Weston

    Ø  Securing your IT Infrastructure with Windows Server 2008, John Weston

    Ø  Enabling Dynamic IT and Optimizing your infrastructure processes and people, Stephanie Doakes

    Ø  The Application Platform: Where IT meets business, Stephanie Doakes

    Ø  Exploring Business Intelligence and SQL Server 2008, Brad Nelson


    US Premier Launch Dallas MSDN Event Page:

    Ø  Keynote, Chris Sakolosky, Jon Roskill

    Ø  Simplify Management of Data Infrastructure, Sri Sridharan

    Ø  Breakthrough Challenges with Visual Studio 2008, Chris Koenig

    Ø  Creating Instantly Familiar Applications with Office System, Zain Naboulsi

    Ø  Mission Critical Application in SQL Server 2008, Sri Sidharan

    Ø  Next Generation Data Applications, Jonathan Swartz

    Ø  Reach end Users with Next Generation Web Applications, Chris Koenig

    Ø Defy Occasionally Connected Challenges with Smart Client Applications, Zain Naboulsi


  • The Ultimate Visual Studio Tips and Tricks Blog

    Win Some Swag: The Second Zain Blog Contest Begins!


    Yep, it's that time again.  I feel the urge to purge some swag and what better way to do it than with a contest?

    (Seriously cool image from

    To celebrate the coolness of Vista and Office 2007, I have decided do something around these products...but what?

    I think it would be cool to have YOU decide what the contest should be.  Hit me with YOUR suggestions for a contest that would be challenging yet fun to do. 


    [update 10/27/2008:  we have finally decided on what the contest will be and the details can be found here you have until Nov. 21st to submit your entry] 


    The prizes will be:

    1st Place:  4 vouchers for 50% off MS exams

    2nd Place: 2 vouchers for 50% off MS exams

    3rd Place:  1 voucher for 50% off MS exam

    Combined with the goodness I announced earlier ( I think this will be a VERY cool deal for some folks.

    So, the first phase is, based on your suggestions, I will create a contest and then the winners of that contest get the prizes listed above.  Sound cool?  Then get me some contest suggestions!!

  • The Ultimate Visual Studio Tips and Tricks Blog

    Announcing the Tips and Tricks SWAG Fest Beginning April 12th




    So, someone thought it would be a good idea to give me some money for SWAG to give to my readers.  Naturally, I loved the idea!  So I went and bought a whole bunch of $100 ThinkGeek gift certificates.  The problem is how to give them away?  After much thought (about 10 minutes, at least), I figured the best way was to give them away whenever I felt like it. 


    Okay so there you have it.  Beginning April 12th (Visual Studio 2010 Launch Day) I will be giving away ThinkGeek gift certificates.  I’ll be picking people who show love for the Visual Studio Tips and Tricks blog.  There are some basic ways you can do this:


    1. Leave some cool comments on the tip(s) you like the most
    2. Tweet about the Tips blog using the #vstips hashtag
    3. Show some blog love by cross posting to your blog if you have one

    Feel free to get creative and let me know about it.  That’s pretty much it.  Very simple really.  Look for the fun to begin on Launch Day.

  • The Ultimate Visual Studio Tips and Tricks Blog

    Select the Current Word


    Keyboard:  CTRL + W
    Command:  Edit.SelectCurrentWord
    Versions:  2008,2010
    Published:  4/5/2010
    Code:  vstipEdit0039


    Download the seriously cool Tip of the Day Extension to get the daily tips delivered to your Start Page!


    You can easily select the current word in Visual Studio by simply putting your cursor in the word to select:



    Then press CTRL + W and it will automatically select the current word:


  • The Ultimate Visual Studio Tips and Tricks Blog

    Split Your Windows


    Menu:  Window -> Split
    Command:  Windows.Split
    Versions:  2008,2010
    Published:  3/5/2010
    Code:  vstipEnv0004


    Did you know you can split your windows?  This feature has been available in a lot of Microsoft products for some time.  You can simply go to Window -> Split on the Menu Bar or you can use this mouse technique:


    1. Go the upper right-hand corner of a document window and look for the splitter control:
    2. Click and hold on it and drag it down to begin the split process:
    3. You can now see different places in your code to, for example, call a method while looking at the definition:
Page 4 of 135 (1,345 items) «23456»