Where has Kevin been?

I'm still here, I've just been very busy.  We're in the thick of planning out what we'd like to do for the next version of Visual Studio.  If you have any suggestions, please drop them in the comments section.  I'm most interested in the sorts of features that would be Visual Studio features (as opposed to language features), and the ones that apply while you are actually editing C# code.

Also, I've changed roles a bit.  I'm now the dev lead for the C# IDE team, instead of an individual contributor on the team, so I'm learning what it's like to be a people manager.

I have a few ideas queued up for future blog posts, but I'm definitely interested in your questions too.  What parts of features in the C# editor are you curious about?  What about work at MS and our processes, is that a topic of any interest?

Comments

  • Anonymous
    February 14, 2008
    PingBack from http://www.biosensorab.org/2008/02/14/where-has-kevin-been/

  • Anonymous
    February 14, 2008
    I am very interest to have a notebook with diagramming and drawing as well as text recording features in Vs. So that I can disign, keep code fragments that I need to reuse and generally use it to collect things that I need for my coding. It should also autosave and be sharable amongst users, even at real-time so that multiple coders who work on a project can have a shared notebook right in VS with code fragments, design diagrams and shared ideas that they are working on. Also, I want to be able to compile a C# file without having to create a project and a solution first and all these supporting folders and files that litter up my harddrive just for a small test program. Finally, I want an addins center where I can find useful and free addins since its good to have choice but if you don't know where to search for those choices and if you are overwelmed with them then you use no addins. VS may have good addins but Google should not be the place that one goes to find them.

  • Anonymous
    February 14, 2008
    Hi. I'd love to see a "Recently Deleted" list. This is probably due to my coding style, but I find that I'm often deleting bits of code (when changing existing code) and then rewriting parts of it... and I want to see how it did something before I deleted it - or there's a bit of code that I can't be bothered to type out again. For major pieces of code you can (generally) take a look in source control, but I'm talking about little changes. What I propose is a list that can appear alongside the solution explorer/properties window etc. that has previously deleted text that you can select and copy text out of as required. It would behave slightly differently to how photoshop works, and would definately not behave the same as a recycle bin. You wouldn't want to "restore" the deleted text, just be able to access it and copy bits as required. It is different from Ctrl-Z in that if you want to see something you need to remove all of your  changes first, copy what you want, and then Ctrl-Y your changes back before copying in - a process which can get really awkward, and likely dangerous too. Cheers, Rob

  • Anonymous
    February 14, 2008
    Probably falls slightly outside of your remit, but i'd like the debugger to make hoisted values more discoverable. - see part way down on this page http://blogs.msdn.com/wesdyer/archive/2007/02/23/linq-to-ascii-art.aspx

  • Anonymous
    February 20, 2008
    I don't really have any suggestions, but I wanted to say that it was good to see you back. Congrats on becoming the team lead!

  • Anonymous
    February 21, 2008
    Thanks Corey.  It's good to hear from you again too!

  • Anonymous
    March 09, 2008
    How about a way to temporarily hide extension methods shown by Intelisense? You might do something like how Ctrl makes the list transparent. This would be nice if you are searching for a native method/prop of a list, an don't want to wade through the many extension methods. Or how about a way to sort the list shown by Intelisense (by return type, Paramter type, name, and of course the icon type.

  • Anonymous
    March 11, 2008
    Welcome to the forty-first Community Convergence. The big news this week is that we have moved Future

  • Anonymous
    March 11, 2008
    The comment has been removed

  • Anonymous
    March 11, 2008
    I'd be extremely interesting in an improvement of the Immediate window and Edit&Continue so that more dynamic-style programming could be achieved.  When algorithms are slightly too complex to keep in mind perfectly error-free, it's very useful to be able to run through code and "fix" or complete it as you go. A few specific limitations:

  • it's not currently possible to use Lambda expressions and thus LINQ in the debugger/immediate window.  That's unfortunate, because precisely in the debugger you're often faced with large object trees and complex structures where a query might help.
  • it's not possible to edit and continue in any method containing a lambda expression.  That's unfortunate.
  • You can't add methods&memebers to classes while their running.  That makes a more dynamic-like programming style impossible. A large part of dynamic languages appeal over C# are these features, and having them would be brilliant (though I can imagine they aren't easy to implement!).
  • Anonymous
    March 12, 2008
    Hi, i´m also a CodeGear Delphi user ( old Borland ), and in its IDE there is something really nice.  On tool palette i can type a control name, like "button" and tool palette filters its list show only controls containing "button" expression. This would be very nice on VS.

  • Anonymous
    March 12, 2008
    The comment has been removed

  • Anonymous
    March 12, 2008

  1. C# already implement structured comments such a param seealso etc..but it completely lacks the ability to reference images.  I want a <img href="myclassdiagram.gif" /> comment tag.  There is a lot of opportunity to add diagrams, charts, screenshots and visualization to source code.  An img tag embedded in the source  code would make that a log easier. Think of all the things tools groups could do with that....
  2. Implement a mode where C# xml comments blocks are "pretty printed".  So we hide all the xml formating but still display the code and comments. Now render the <img> in as part of my code.   I want a mode where I can see the diagrams as I browse code.
  • Anonymous
    March 12, 2008
    My number one request: Allow two programmers to edit the same code at the same time via a network connection. Aka add a "collaborative" or "networked" editor feature without the need for a separate server. See http://www.codingmonkeys.de/subethaedit/ for a terrific example of this. This would support paired up programming without having to actually sit next to each other and provide a great way to teach coding.

  • Anonymous
    March 12, 2008
    Visual Studio is missing some features that I use frequently inside Eclipse. It would be so wonderful if VS supported even a few of these.

  • Ctrl+Click code elements (methods, types, etc) to navigate to their definition.
  • Ctrl+O for a popup window of the class members.
  • Tab maximization from double clicking the tab.
  • Ctrl+Shift+R for a search by Type (i.e., class). Thanks!
  • Anonymous
    March 12, 2008
  1. rich(er) comment xml   - Why is it the year 2008 and I still have tons of ASCII art pictures in my comments?   - I want to put XAML or HTML in comments and have it rendered instead of the markup within the editor.     - Image paths should be relative to the file's path.
  2. ability to drag a "Reference dll" from the refereces of one project to another project in the same solution.
  • Anonymous
    March 13, 2008
    The comment has been removed
  • Anonymous
    March 13, 2008
    The comment has been removed
  • Anonymous
    March 13, 2008
  1. Fast keyboard macros.  Add a real macro engine - perhaps based on a hosted PowerShell runspace with variables exposing IDE elements - like the current source file as a string list that can be modified.
  2. Options to re-arrange the contents of a source file into regions according to some style/template (and implement this as a PowerShell script running on the PowerShell macro engine)!
  3. Implement the IDE as WPF for vector graphics, etc - allow code blocks to scale larger or smaller - perhaps based on some more advance #region statement. Cheers, -Matthew Hobbs
  • Anonymous
    March 14, 2008
    The comment has been removed

  • Anonymous
    March 17, 2008
    Use VS 2008's call tree to allow higher level refactoring like selecting a call subtree and making all functions in it into a single source code file.  Or allowing the user to select nodes in the call tree and making them into a single source code file. We're in need of many of the basic tools for refactoring large applications. I really like the emphasis on the IDE and compiler helping identify problem code and want  to see much more in that area.

  • Anonymous
    March 17, 2008
    The comment has been removed

  • Anonymous
    March 18, 2008
    Also, a way of seeing all state (member variables) together in one place - or at least a way of moving them all up together like an auto-regioning.  Or... some higher-level view of state variables and methods by scope.

  • Anonymous
    March 19, 2008
    Hey Kevin. Maybe you should provide a way to remove recent projects from the start page without needing to change the destination of the folder or change the name of the file.

  • Anonymous
    March 21, 2008
    Speaking of Powershell how about support for that language in Visual Studio.  I don't really want to learn two editors but I really like Powershell. A Powershell debugger (step through the code and have a watch window) would be really awesome too.

  • Anonymous
    March 22, 2008
    I use one class per file and name the class the same as the file name. I'd like this to be completely automated for me so I dont have to spend so much time creating and managing files. This is pure busywork most of the time. When I choose to rename a file in Solution Explorer do not automatically select the file extension. This would make renaming easier since you don't have to worry about changing the file extension. Some, if limited, support for Vista dictation. I have a slight RSI problem and it is helpful to be able to use my voice wherever possible.

  • Anonymous
    March 23, 2008
    An IDE mode that would allow a developer to see and work with a single procedure at a time would be a wonderful addition... what would it take... five minutes for MS to implement? I've been asking for this "feature" since dotNet 1.0 beta zero and, until I can find an IDE that lets me work the way I like to work, I won't touch it. I refuse to edit code in a treeview node. What other text based app in the world behaves the way the dotNet IDE does? None... there's a good reason for that. Also, a checkbox setting somewhere that forces "non case-sensitivity" (by changing the case for you, as you type, like the VB IDE does) would be an excellent feature. It would have zero effect on the code output so there can be no compatibility issues between IDEs. Since it already exists in the VB side, adding a checkbox that brings the functionality to C# would take, what... a day? Obviously a VB programmer here (MS-MVP 7 years straight)

  • Anonymous
    March 25, 2008
    CallHierarchy - Most Smalltalk browsers had/have similar capability. Beyond the OOP maintainability advantage, the ability to change code with full knowledge of the callers and senders of the method greatly reduces rework caused by prior rework.

  • Anonymous
    March 25, 2008
    One more: We have lots of legacy .NET code from 2003 that has common subexpressions duplicated repeatedly throughout.  Can we get a refactor that allows us to replace the common subexpression with 1 call to save its value in a local variable and then use the local variable in the function? This will help us un-cut and paste the code.  Why they cut and pasted duplicate code is beyond me but it closely follows their javascript code of repatedly calling document.getelementid('control_name').value in the same function.

  • Anonymous
    March 28, 2008
    Please add editing and refactoring support for TSQL scripts and stored procedures. This would save us many man-days each year. A good step so far was to include intellisense in SQL Server 2008's TSQL editor. I spend 1/3rd of my development time writing TSQL stored procedures. Powershell would be nice but is much less important than TSQL since we have more than 100,000 lines of TSQL stored procedures spread throughout our different systems.

  • Anonymous
    March 28, 2008
    How about using a different syntax color for local variables vs. member variables. Ex: private int m_nMyNumber = 42; public int GetMyNumberAndThenSome() {    // nNewNumber is a different color than m_nMyNumber    int nNewNumber = m_nMyNumber + 1;    return nNewNumber; }

  • Anonymous
    March 29, 2008
    Beeing a Swedish developer, the applications I develop often needs to support Swedish, English, and sometimes other languages as well. But the support for localization could be improved in Visual Studio:

  1. When renaming a control in a localizable form, the control's resources are only renamed in the default resource file. It would save a lot of work if it was renamed in the resource files for the other languages as well.
  2. There's no grouping of standalone resource files of different languages, so when renaming a resource in the default language, you must rename the corresponding resources for the other languages manually. Fixing this would also save a lot of work.
  3. Another improvement, not directly related to localization or Visual Studio, would be to make the auto-generated resource classes partial. This would make it easy to add methods that fills out placeholders in strings which makes it more type safe to use resource strings. For example, if you have the string resource name Found0Occurences1 with the string 'Found {0} occurences of {1}.', it would be nice to have the method: public string FoundOccurences(int number, string searchString) {  return string.Format(Resources.Found0Occurences1, number, searchString); } Then you could use it like this: MessageBox.Show(Properties.Resources.FoundOccurences(4, "Visual Studio")); This would also let IntelliSense give you help on the types and roles of the placeholders as they now are method parameters.
  • Anonymous
    March 31, 2008
    The comment has been removed

  • Anonymous
    April 06, 2008
    How about instellisense in the debugger watch window.  I want name completion when I step through the code.   It would enhance the already powerful expression evaluator.

  • Anonymous
    April 07, 2008
    Just a quick note, though I will respond to the full list more carefully in a new post.  Karl: you should already get IntelliSense in the watch window for VB and C#.  Are you not seeing it?  In C# it won't pop up when you first start a name, but it should appear after a '.'.

  • Anonymous
    April 22, 2008
    Please allow to search in the Toobox (like Borland Studio does). I just want to type "Button" and all Controls with the string "button" in the classname are in the list, all others are gone....

  • Anonymous
    May 12, 2008
    I think you need a Right Click COP since when you add new features, like Edit/Advanced was, no one adds this to the right click menu. Also an undo for the Dialog menu "Embed in toolStrip Container" as It took me a while to find what had been added to the code, so I could get it undone. Like once you have embedded it, the menu should read "Un-Embed..."

  • Anonymous
    May 12, 2008
    I would like to see more work done to enhance the installer portion of the IDE so that the work needed to create an installer for a project could be made easier.