Edit and Continue in Whidbey…


Soma has just announced that C# will support Edit and Continue in Whidbey.

Waaay back when we first planned Whidbey, one of the questions we asked was “is refactoring or edit and continue more important”? We knew that our users wanted both, but we didn’t have schedule time to do them.

The answers we got back were along the lines of “refactoring, but we’d also like E&C as well”.

At the time, it was an either/or choice, and we did refactoring. After talking with customers at the last PDC, it was apparent that the desire for E&C was pretty high. We explored if there was any way to do E&C in Whidbey, and came up with a way to make it happen. And now, thanks to the hard work of many on the C# team (excluding me, who didn’t really do much of anything), the feature will be available in the next community preview.

So why didn’t we tell you earlier? Why did Eric lie to you when you came up to him at TechEd and asked about E&C?

Well, the fact is, it was a very near thing. If a few technical details or schedule points had come out a bit different, it wouldn’t have made it into the product. We decided to delay announcing until things were firm rather than risk having to de-announce a feature.

Comments (37)

  1. Dave Arkley says:

    This is fantastic news. My opion has been that E&C was always going to give me a much bigger productivity boost than refactoring.

    I guess it comes down to programming styles which is more important to an individual, but to get both is excellent news.

    Nice one guys

  2. Horst Richter says:

    This was the best news that I heard about Whidbey and Longhorn since the PDC.

    Thanks and Congratulations to the guys who made it happen!

    Horst

    P.S.: It was a shame that only VB had it so far 😀

  3. Frans Bouma says:

    But this also means that the C# team apparently had time left to do this feature, or are there features dropped because of this?

  4. Wow! This is awesome news, a long-awaited feature that almost anyone who uses C# will be drooling about. and yes as Frans asked, has anything being dropped because of E&C?

  5. B Miller says:

    Wahooo!!!! Thank you!!!!

    We were thinking about switching to VB.NET just because of E&C. I can’t tell you how happy I am that we’ll now be able to stick with C#.

  6. Ray says:

    Wow! Awesome! Finally! Now everyone can benefit from this and use it constantly from it being just written once. I am glad they were able to put this in.

  7. meow says:

    old news. This was mentioned in a keynote speech months ago.

  8. Tom Gardner says:

    As someone that first used edit-and-continue 18 years ago [1], and currently uses it in Java environments, edit-and-continue is:

    (a) nice to have, so long as it is used in a disciplined way

    (b) much less useful than a good refactoring environment

    [1] in Apple’s Smalltalk; yes, Apple did implement Smalltalk on the original Mac – 1MB RAM, no hard disk! It has taken other environments 20 years and 100 times the ram to catch up :)

  9. blk says:

    great guys, go on lying about future thechnolgies, it’s better than having to tell it’s not possible…because someone else could then take advantage of it

  10. Chris says:

    Good work !

    I am primarly a C & C++ dev or *nix and Windows, but I have been getting into C# (after not having any fun with java) alot. The company I work for now supports .net 100% in all our software API’s.

    Its great to see you guys hit things head on!

    *again…good job*

  11. Tom Gardner says:

    <quote>

    I am primarly a C & C++ dev or *nix and Windows, but I have been getting into C# (after not having any fun with java) alot.

    </quote>

    Er, you’re in for a nasty surprise. C# *is* Java with different libraries, slightly different syntax, and a little bit of syntatic sugar (e.g. autoboxing).

    Except that C# also has "unsafe", thus making the code slightly faster (in some cases), but blowing away the ability to guarantee security and freedom from BSoDs.

  12. jlewin says:

    Fantastic!

  13. Jignesh Patel says:

    Hats Off…for making E&C feature available when it will be needed most to fulfill market demands along with quality, efficient and productive output.

  14. abi says:

    this is really nice, imo the greatest whidbey news ever :)

  15. RichB says:

    Thankyou

  16. RichB says:

    Tom Gardner wrote: "C# *is* Java with different libraries, slightly different syntax, and a little bit of syntatic sugar"

    That’s so untrue. Properties, Attributes, Generics (properly implemented), unsafe, anonymous methods, iterators, events are all huge features that ultimately make your C# code look as different to Java as Java does to C++. For examply, in what possible way does the following code look like Java?

    [CLSCompliant(false)]

    public IEnumerable<Individual> All() {

    foreach(XPathNavigator indiPointer in _individuals.Values) {

    Individual indi = CreateIndividual();

    indi.Load(indiPointer, _dateExpr);

    yield return indi;

    }

    }

    We have attributes, generics, the foreach statement and iterators. The corresponding Java code would be at least double the size and more likely 5x as big (if you were to fully implement the Enumerator)

  17. Tom Gardner says:

    Tom Gardner wrote: "C# *is* Java with different libraries, slightly different syntax, and a little bit of syntatic sugar"

    RichB wrote:

    That’s so untrue.

    Properties, Attributes, tg: both are syntatic sugar. Arguably save a few keystrokes iff you are doing things that have been done many times before.

    Generics (properly implemented), tg: arguable either way, but I suspect the C# implementation is better in that it is closer to C++’s templates

    unsafe, tg: if you or a library use that, then the useful guarantees offered by the CLR all disappear. I don’t like unsafe code!

    anonymous methods, iterators, events, tg: equivalents are in Java; see Java5

    are all huge features that ultimately make your C# code look as different to Java as Java does to C++.

    tg: I wrote "SIMILAR syntax", not identical!

    We have attributes, tg: syntatic sugar

    generics, the foreach statement and iterators. tg: so does Java

    The corresponding Java code would be at least double the size and more likely 5x as big (if you were to fully implement the Enumerator) tg: why on earth would you want to reimplement enumerator?

    tg: sure C# != Java. But it is *much* closer to Java than it it to C++ or VB, and Anders Heljsberg wisely learnt the benefits of Java. Shame he had to drill a hole in the bottom of the boat and put a bung in it (i.e. unsafe :).

  18. VS 2005 – C# でもエディット&コンティニューをサポート

  19. Ulixes says:

    Goood work guys!

    Thank you very much!

  20. 7uuuuuuu says:

    tyyyyyyyyyyyyyyyyyyyyyy

  21. Philip says:

    I’m interested in programming in C# and would like to purchase VC#.NET 2005 Standard Edition. Where can I find infomation on when this would be released? Also, would the pricing be similar to that of the 2003 edition ($109)?

  22. paul says:

    To brings some facts to this discussion, here is what the equivalent Java code would look like (though obviously CLSCompliant doesn’t make much sense for Java).

    As you can see 5x is a bit of an exaggeration. The only reason this code is larger than the C# your example is because of your use of yield, which is the only feature in C# that does not have a straightforward equivalent in Java. It’s a nice feature, but not one that I would use regularly.

    @CLSCompliant(false)

    public Iterator<Individual> all() {

    return new Iterator<Individual>() {

    Iterator<XPathNavigator> i = _individuals.getValues().iterator();

    public Individual next() {

    Individual indi = createIndividual();

    indi.load(i.next(), _dateExpr);

    return indi;

    }

    public boolean hasNext() {

    return i.hasNext();

    }

    public void remove() {

    i.remove();

    }

    };

    }

  23. paul says:

    Hmm, is there any way to get this site to preserve whitespace?

    &nbsp;&nbsp;&nbsp;&nbsp;Test

    <pre>

    Test

    </pre>

  24. paul says:

    No, guess not 😉

  25. Henry Nguyen says:

    Awesome,

    I’m falling in loving with Viual C# like Mr. Gates loves VB :)

    But, I thinks Mr. Gates has been having an affair with C# lately 😀

    Just wanted to express my excitment for the soon to be released Whidbey. Didn’t mean to offend anybody.

    Later all.

    HN

  26. Greg says:

    This is outstanding. Thanks guys!

  27. MBA says:

    Helpful For MBA Fans.

  28. MBA says:

    Helpful For MBA Fans.