10-4 Episode 5: Code Focused in Visual Studio 2010

Download this episode

Download Video


In this episode of 10-4, we look at the new code editor in Visual Studio 2010. We'll try out some of the new code navigation features that make it easier to move around in your source code. Then we look at how Visual Studio 2010 makes Test Driven Development a lot easier. Finally, we'll see how you can extend the new editor with your own functionality.

For more 10-4 episodes, be sure to visit:

Visual Studio Topic Area on Channel 9:

Visual Studio 2010 CTP VPC:

Managed Extensibility Framework Project

Visual Studio 2010 Training Kit

Over and out!




Available formats for this video:

Actual format may change based on video formats available and browser capability.

    The Discussion

    • Jarle Stabell
      Good stuff!

      One small comment:
      I noticed this in the code for the editor add-in:


      We've been doing the same thing in an in-house framework, specifying ordering constraints and letting the framework calculate a total ordering from the partial ordering. However, we concluded that a statement like:
      could sometimes, depending upon the time of the day, day of the week, the mood of the programmer, the weather etc,
      be interpreted as the current component being constrained to be before "Selection", other times to be interpreted as "Selection" being constrained to be before the current component. (ie, totally ambiguous)

      We fond the situation to improve a lot when we added a little 'Me' at the end of 'Before' (and 'After'), like:

    • Vitor Canova
      Visual Studio 2010 is being made with WPF?
    • warren
      Drew, the ever-present football logo is seriously distracting from the presentation of the video.  These videos should be 100% focused on Visual Studio, not your sports interests.  Thanks.
    • Rhapsody

      There's always something to complain about...right? :')

      If you're not able to keep your focus on the Visual Studio part, it's not the fault of the presenter.

    • spivonious
      I agree.  It really made the video seem amateurish, like he was filming it in his dorm room.
    • drewby
      Hi guys,

      The logo is from my college, not a football logo and its a sticker on the wall in my office, which is very much like a dorm room.  And yes, when it comes to video, I am an amateur and we intentionally keep these videos casual. We'll get better over time, but If you want professionally produced marketing videos, you'll need to find them somewhere else. Smiley

      Lets use the comments to discuss Visual Studio 2010.


    • drewby
      Yes, the Visual Studio shell and the code editor will be largely based on WPF. That is going to allow for some great visual enhancements to the environment that will, for example, help you better manage the screen real estate, and provide different ways to visualize your code.
    • jeffhunsaker

      Well done. Really appreciate you putting these short videos together. With all the tech demands and trying to learn VSTS 2010, this is a great quick-hit. Can't wait for RTM!

      Ummm, and for the record, Go Bucks! Wink
    • Rhapsody
      When I heard of the 'new editor' in WPF I was a little bit shocked. because after all, it is a code editor. So there's no need for fancy things like gradients and pictures. But this video made it a lot clearer. Though it is a CTP, I hope that the editor will be as good as the plain old RichTextBox. (For example tooltips look horrible now as well as some flickering when selecting text)

      But the extensibility of it is great. Especially the usage of MEF. I'm playing arround with MEF a little bit and it looks very very promising. I like the other features, like the navigation, as well!

    • Vaso
      How rude to keep these videos casual!! Smiley ha ha

      Thank you, all sounds good!! Well Done!

      I think I suggested already on one Microsoft's website (in 1874) to have the optional coloured editor's tabs so when you work with more projects it would be easier to recognize quickly where the opened document belongs to.. not sure if it makes sence to anybody ha ha Smiley


      Cheers, Vaclav.
    • andrgin
      1.) I think its better to concentrate on the content and not on the quality of the video. If I like a professional marketing video I go to Youtube and watch Steve Ballmer (developers, developers, developers) Big Smile

      2.) Is there a way to change the color of the marked references, because in the current color I cant see anything.
      I love huge monitors, but unfortunately you can only get them with a cheap TN Panel if you dont want to pay >1K $. So I can not really decide between white and a very light gray like in this case (tested with my 28" Hanns.G at home, but also with my cheap standard 22" Acer monitor at work), if you are looking from the wrong side and I think I am not the only one.

      3.) Making the editor in WPF is a good thing. I love this new zooming function. I was searching for this the whole time (and maybe also buy larger monitors to get more resolution and more code on the screen).
    • dm3281
      I found the video very blurry.   The others were crystal clear.

      I agree, the logo and the large PIP is distracting -- plus a 4th of the IDE is hidden by the PIP.   Please stop using the PIP!
    • drewby

      I'm not sure why the lower quality version got linked again - I originally had the high quality version set. I switched it back and you should have clear video again like before. Thanks for catching that.

    • adarshbhat
      The quick search feature is handy. As you probably know, IDEA does all this and more. In particular, what IDEA does is display the fully qualified name or path in parantheses, so that similarly named files in different directories may be differentiated. It would be good for Studio developers to have the same feature.

      PS - I don't think there's any harm in promoting your sports team. Hey, it just happened to be on your wall. Smiley
    • Solarding
      Well it's nice, again,  to see VS2010 embracing (borrowing) the nice features from others.
      If you have any experience with ReSharper from JetBrain, you will see what a huge COPY has MS made this time...
      anyway, as a MS Dev, there is nothing to lose though ... Wink
    • Vaso

      I have been using ReSharper only for 5 days and I can see some nice benefits but in my opinion most of them were supposed to be in Visual Studio anyway. Visual Studio evolves Smiley, demands increase and new features will be implemented in Visual Studio anyway if there is ReSharper or not and even the features are same or similar... Smiley

    • andrgin
      1.) Yes please stop the PIP or find a better position. You often cant read anything.

      2.) I dont think its a good idea to use hundreds of external tools. The most important features should be included in VS directly. If there is a nice feature that another application used, then why not copy it. On the other side I dont see a problem if someone else copies a feature of VS like Java did with the for each loop from C#.
    • Jamon

      I think we need a more revolutionary editing ideas. It has no Xfactor! At least the extensibility will possibly make some of the following features possible.

      What about ?

      Code Snippets should have context http://tinyurl.com/aovnnl

      Abstract the codefile from the language http://tinyurl.com/cs77mc

      More CodeGen, and 1 reason why CodeGen does not get used as much as it should
      (why is it not integrated with RTE?)  http://tinyurl.com/dle6cm

    • Jamon

      I think we need a more revolutionary editing ideas. It has no Xfactor! At least the extensibility will possibly make some of the following features possible.

      What about ?

      Code Snippets should have context http://tinyurl.com/aovnnl

      Abstract the codefile from the language http://tinyurl.com/cs77mc

      More CodeGen, and 1 reason why CodeGen does not get used as much as it should
      (why is it not integrated with RTE?)  http://tinyurl.com/dle6cm

    • drewby
      I agree there is more that could be in the IDE and the new extensibility will make it easier to add those features. The trick is finding the broadly applicable features and get them out of the box and then allow developers to add the tools they are comfortable using. I find that devs tend to be very passionate about those tool choices, based on their style, what they build, etc.

      Enjoyed reading through your articles.
    • jonathanp
      My thoughts:

      Variable navigation:
      • You could have a popup when selecting a variable which shows you the usages of that variable. Like a smart tag.
      • Callsites should be integrated into the call hierachy. When you double click on a method in the call hierarchy you are taken to the first call site in that method. F3 gets you to other call sites. Or just make call sites another node in the call hierarchy!
      • When you change the scope of the call hierarchy
        1) Having to manually hit refresh should be a VS option setting. The default should be auto unless it is too slow. If it's too slow then the items should load incrementally.
        2) When (if) you click refresh you should not have to re-expand the treeview. All nodes that were expanded that haven't been removed from the tree (due to the new scope) should still be expanded and the selected node (if it's still in the tree) should be selected. If not the next highest node should be selected.

      • Camel case is good but should also have an option for full-text-search which doesn't require camel case queries.
      • There shouldn't be a progress bar. Just load the results as they are found. ESC should cancel and hide the popup.
      • Should be able to right click on result and open containing folder, delete, rename. You'll have to think about differentiating between 1-1 class file mappings and 1-* file - class mappings. If it's a class then maybe rename. Also Call Hierarchy right-click menu item would be good!
      • Hiding full constructor method signatures should be a user setting. Probably default to on.
      Generally (this may be already possible) I'd love for keyboard shortcuts for:

      • Close current file
      • Close all files
      • Close all but this
      • Open recent file.
    • jonathanp
      On the unit testing features, have you considered having an "extension method" on non existent methods or classes that is called Generate. When you hit tab VS would then generate the method. Saves have to hit CTRL+. which would make it faster than you would think.
      Also not sure if it's great to navigate directly to the new method/class when its generated. You might want to just continue writing code.
      Also with MEF is there a good debugging experience. I noticed that you had to close VS and then drop the DLL in the folder.
      Is there no F5 experience for MEF at the moment?
    • andycook
      What I would love to see in Visual Studio in the future is the ability to use the editor as a "worksheet". Maybe the use of WPF to render the editing surface may allow this?

      An excellent example of this is Mathematica http://www.wolfram.com/products/mathematica/index.html. Regions of the page are code, regions are interactive, and regions are presentation output.

      In Visual Studio we could use this concept to include unit test results or generated HTML documentation. Imagine if you could have an interactive grid inline in the editor that you could use to test functionality of the method you're working on.

      Obviously there are plenty of times when this kind of bloat is undesirable, but I think it could be fantastic where you need code to be highly documented.

      In terms of the source, it could probably be added into the existing triple-slash XML comment system. Visual Studio could optionally render these features (allow it to be switched off for performance), other editors would see comments only.

    • nzkeith
      An interesting video on several counts: highlights of VS2010 code navigation improvements, an illustration of TDD style and how VS2010 will support that style, and the slick Silverlight presentation that excellently combined the presentation with the presenter video and 3D effects. Nice work and thanks.
    • Bill Richards


      I think that the comment was a valid one. 

      We understand that you are aiming to keep the videos casual, but at the end of the day you are representing a larger entity than yourself. I don't believe that anyone is asking you to change how you work, nor the environment that best suits your needs, my office also bears a resemblance to a dorm room, however when providing a showcase for a product on which I am working, it would look very amateurish and unprofessional if I were to bring my intended audience into "my world".

      I believe the point being made was a constructive criticism, to some the college logo is obviously a distraction, and since you now work for Microsoft and not your college, perhaps a Microsoft Logo might be a little more appropriate.

      With that said ... great video, thanks for the insight and keep up the good work :o)

    • Ottone
      I think the colored tabs would be pretty useful. Group them by colors. And have that match up with a project or folder or in a project, etc... I like that MS is giving us the tools to customize our development environments fairly easily. And there is no sense in MS bloating the application for everyone with all these options, when all these customizations are really based on the developer's preferences anyway. You put in what you need or what you like, while keeping Visual Studio lighter for the core application.
    • GadgetGeek

      Very Notepad++ and JetBrains Re-Sharper.

      I like the quicksearch, but one thing that I would still like to see (and haven't seen yet - or got hold of the CTP) is a function outline view for javascript files. Something like the drop down list for selecting methods in a code file and like the outline view in Aptana. Working with Javascript files in Visual Studio is still a pain.

    • kicker3082

      I guess I won't be paying for the next upgrade to Resharper! Oh well, it was a good company while it lasted. I hope you guys at least offered jobs to the lead developers from JetBrains.

    • Ted Kolovos
      From what I've seen so far, my favorites are:
      • Highlight references-this is intiuitive and subtle but will be a big help.
      • The code navigation features-I'm always interested in easier ways to navigate projects and solutions.  Who wants to waste time clicking around.
      • Code editor extensibility-This will encourage the general public to create code editor improvements that are like Wordpress plugins for the code editor.

      Keep the videos coming.

    • kkongchi
      New "Generate This" functionality is so cool!!  I will write article on this in VSTS2010.net which is a team blog for VSTS2010 in Korea and introduce this new cool functionality to Korean Developers. Thanks for nice job.
    • Daveee

      Where is the PianoKeys adornment sample located at?

      I can't seem to find it anywhere.

    • MT85

      Drew, maybe you'll read this and be able to help with an issue.

      When you type something like if ( true ) and hit <enter> it always tabs over in case you want a single statement, but then if you do { it moves back and then you have to hit <enter> and do } then <up-arrow> then <enter> again. It would be really super duper if VS would FINALLY allow you to simply type a { and then automatically provide the } and add a new line between them tabbed over!

    • Bronek

      Guess it's little late to comment on this video, nevertheless I will try to add my $.02. Selection of scope in "Call  hierarchy" should include 4th element "All open documents", similar to Search window. This makes possible to define "custom scope" of analysis (or search) - developer just keeps open the files he is interested in.

    Comments closed

    Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums, or Contact Us and let us know.