Partager via


What do you want in the next version of VS/C# (part 3)

Ok, a day passed and there were very few updates made so I thought I'd push this forward.  Now it's time for everyone to vote to help get an idea about how interested people are in these features.  Use the contact link to send your votes in.  I'll tabulate them and let everyone now what the results.  Of course, this doesn't mean we'll definitely do them, but it will help us understand better how people feel. 

Here's how I'd appreciate the votes to come in:

  1. Put the word "voting" in the title of the message (like "voting on c# features"). It will help make sure that i don't miss any messages
  2. Break the features into things you definitely want and things you definitely don't want.  If you leave something out I'll assume it's something you don't care about.  I'd also appreciate comments on this as well.  If you want something, why you want it.  If you don't want it, why you don't want it.  Those of you who already gave reasons in the thread are exempt from this.  This part is totally optional, but it will help tremendously in understanding the reasons why people want the feature.  The “why” part is really important for us so that we can examine everything we're doing and determining if they're things that will help you.
  3. For the features you want rank them in the order of how important they are to you.  Make the feature you want to see the most as '1', then the one you'd want to see next with '2', etc.

That's it.  Just pick the features and then rank them :-)

If you don't see what you want in the list just include it in the email.

Comments

  • Anonymous
    June 22, 2004
    I want a "with" statment in C#.

    Missing it is the only thing that sometimes makes me whish I was progrmamming in Pascal again
  • Anonymous
    June 22, 2004
    Kees, what would you do with the "with" statement.
  • Anonymous
    June 22, 2004
    Please, no "with" statement. In theory a good idea, I simply have read too much bad code MISusing "with".
  • Anonymous
    June 22, 2004
    I'd like to see something like forall(<collection>|<array>) do function(<object_param>). It would cut code and mabye more efficient than foreach() { call fn() }.


  • Anonymous
    June 23, 2004
    The comment has been removed
  • Anonymous
    June 23, 2004
    What do I want in the next version of VS?

    An espresso maker powerful enough to land a donkey on the Moon.
  • Anonymous
    June 23, 2004
    My biggest pet peeve with VS right now is how slow the Forms designer gets with a complicated GUI. I'm on a reasonably fast machine (Pentium 4, 1.8 GHz) and sometimes it's taken up to 30 seconds to go between the designer and the code because it is updating. (Although on one hand it does force you to separate as much stuff from the GUI as possible :-) )

    One thing I like in Snippet Compiler is when you select or highlite a bracket of some kind (ie. { [ () ] } ) it outlines both the opening and closing bracket for that set. I don't necessarily like the way Snippet Compiler highlites the bracket (a red outline), and prefer just a simple bold like VS uses when a bracket is closed.

    Speaking of brackets, the ability to collapse a region from the ending bracket would be awesome.

    Another thing would be an easier way to create modeless dialog boxes.

    Thanks for the ability to vocalize this!
  • Anonymous
    June 23, 2004
    Did somebody already mention Aspects? like AspectJ?
  • Anonymous
    June 23, 2004
    tail recursion
  • Anonymous
    June 23, 2004
    Laura: How is:

    forall (collection) do function(blah) better than.

    collection.ForAll(function);

    ?

    That's supported with the new Whidbey generic collections
  • Anonymous
    June 23, 2004
    The comment has been removed
  • Anonymous
    June 23, 2004
    Kevin: We can land a haiku on the moon. will that work?
  • Anonymous
    June 23, 2004
    The comment has been removed
  • Anonymous
    June 23, 2004
    Sam: Yes, we've been discussing aspects. What are you interested in aspects for? We're thinking about more powerful systems that would be able to do more than aspects are currently capable of.
  • Anonymous
    June 23, 2004
    Andreas: Tail recursion is supported in the runtime.
  • Anonymous
    June 23, 2004
    please say no to the vb style with statement. There are already enough code obfuscators available.
  • Anonymous
    June 23, 2004
    Right-click close to a brace and select command "Select block" or "Highlight block". This could inclusively select everything from the brace to the matching one.
  • Anonymous
    June 23, 2004
    > Laura: How is:
    >
    > forall (collection) do function(blah) better than.

    > collection.ForAll(function);
    >
    > ?
    >
    > That's supported with the new Whidbey generic collections

    Sorry, I did not read the docs very well. I missed the ForAll() method.

    But still I'd see forall()..do a better, first of all for readability. For me (IMHO) the collection.ForAll reads 'collection, do this'. forall() I'd read 'for every x in y do this', which describes better what I'm doing. For me. Also forall() doesn't imply only collections..?

    Also, with forall() (as I'd imagine it), i could put a function inside the forall() to return a filtered collection, forall(getXCollection(baseCollection)) do x().

  • Anonymous
    June 24, 2004
    Laura: Whoops. I meant to say:

    collection.ForEach(function);

    not ForAll. ForAll takes a predicate and returns true if teh predicate is true for every element in the collection.

    Does that name work better for you?
  • Anonymous
    June 24, 2004
    Aleksei: ctrl-shift-] will do what you're asking. It will inclusively select everything from the brace to the matching one :-)
  • Anonymous
    June 24, 2004
    The comment has been removed
  • Anonymous
    June 24, 2004
    The comment has been removed
  • Anonymous
    June 24, 2004
    The comment has been removed
  • Anonymous
    June 24, 2004
    The comment has been removed
  • Anonymous
    June 24, 2004
    The comment has been removed
  • Anonymous
    June 24, 2004
    Laura: Too true...

    What's funny is that I'm usually the one voting for "let's just have one way to do this!!"

    The problem is when you have the existing feeatures that you'd like to get rid of. For example, I'd just prefer to get rid of "foreach" and have "ForEach" instead. :-)

    However, with the blog I like to play devil's advocate a lot. If you can convince me, then I'm going to definitely push for those features more.
  • Anonymous
    June 24, 2004
    Laura: Too true...

    What's funny is that I'm usually the one voting for "let's just have one way to do this!!"

    The problem is when you have the existing feeatures that you'd like to get rid of. For example, I'd just prefer to get rid of "foreach" and have "ForEach" instead. :-)

    However, with the blog I like to play devil's advocate a lot. If you can convince me, then I'm going to definitely push for those features more.
  • Anonymous
    June 24, 2004
    Oh, and yes, lots of responses so far. When it dies down I'll give out the results.
  • Anonymous
    June 24, 2004
    Cyrus: I know, existing base is quite often a sad story.
    I might not have convinced you (?) but at least we do agree.
    Hopefully the release date remains the same. ;-)

    Laura
  • Anonymous
    June 25, 2004
    The comment has been removed
  • Anonymous
    June 25, 2004
    The comment has been removed
  • Anonymous
    June 25, 2004
    Shadow: I completely understand the need for such an event. My comment about the virtual "Initialize" was prompted by teh current state of affairs (plus my experience with Objective-C). I believe that this is something the CLR is considering for this exact reason.
  • Anonymous
    June 26, 2004
    Cyrus: Regarding Aspects, in my current project, I have an MVC Controller in which every method basically does

    public void DoSomething()
    {
    // enter monitor
    // acquire read lock
    // check some state

    ...

    // release read lock
    // exit monitor
    }

    I have about 20 different methods which repeat this pattern. I couldn't think of any way to refactor this further other than creating some sort of before/after/around Aspect. I managed to wrap up all that logic in a using{} statement but Aspects would still be cleaner I think.
  • Anonymous
    June 26, 2004
    Sam: I am intrigued by this. The normal use of an aspect it to provide some orthogonal concept to your code that isn't related to the core idea. Like logging. I've never heard of threadsafety as part of that orthogonal concept.

    (BTW. Why do you need the monitor and the read lock?)

    I'm curious... with an aspect, it would be completely unclear to a reader of your code that it was threadsafe. Is that a good idea? (seriously)

    I'm quite curious...

    IMO (which could be very wrong), i would actually prefer to see:

    public void DoSomething()
    {
    using (thingThatMakesThisThreadSafe.Acquire())
    {
    Something();
    }
    }

    That way it's completely clear what's going on.
  • Anonymous
    June 28, 2004
    The comment has been removed
  • Anonymous
    June 28, 2004
    Microsoft.CSharp.CSharpCodeProvider.CreateParser should return a working CodeDom parser instead of null.
  • Anonymous
    June 29, 2004
    The comment has been removed
  • Anonymous
    June 29, 2004
    Rick: I've sent this feedback to our User Education team. They're trying very very hard in this area to make the docs correspond to what you intended.
  • Anonymous
    June 29, 2004
    Sascha: Yup, lots of people have asked for that as well
  • Anonymous
    July 10, 2004
    Concure with Microsoft.CSharp.CSharpCodeProvider.CreateParser and CreatParser
    but same for...

    Microsoft.VisualBasic.VBCodeProvider
    Microsoft.MCpp.MCppCodeProvider
    Microsoft.VJSharp.VJSharpCodeProvider

    Hay, do you see a pattern here...


    ALSO:

    Regex should support working with Streams natively (don’t just load the whole thing in memory, heck I can do that). Thus allowing Regex to be run against really large files.
  • Anonymous
    June 01, 2009
    PingBack from http://indoorgrillsrecipes.info/story.php?id=3685