It’s alive! IT’S ALIVE!!


C# Express; born this day At 1 am PST. Although one of a set of fraternal quintuplets, it is clearly the most beautiful and the one with the brightest future in front of it.


I hope the this is something everyone here can download it and try out. Another important thing to know about is the new ladybug system. Through this tool you can send us praise, money, even the occasional love letter. Please use it. We’re so lonely in here. They’ve had us locked up for the last two months, and the chains are really starting to chafe.


The best way to send one of these messages to us, right under the noses of our masters, is to disguise it through a suggestion or a bug report. I promise you that if one of those notes lands in my lap you’ll get a nice personal response from me. You’ll know through my oh so subtle use of code appended to every message:


”  — Cyrus (<a HREF=”/cyrusn”>Touch the monkey!</a>)”


For those who are interested, C# express is a pretty full featured experience for a C# hobbyist. It comes with the C# editor, debugger and compiler, and for many people that should be more than enough. In fact, I think it’s far more than anyone deserves. You should writeyour own compiler, (or just write in raw IL/assembly). And, as I’ve shown before a debugger is actually a hindrence to a good developer. So really what you get out of the express sku is a good C# editor. And in the end, that’s all you really need.


So run over and pick yourself up a copy. They make great stocking stuffers, and you know grandma and grandpa will love 25 MB of digital joy over the normal crap they usually get. Ah heck, take two, we won’t mind.


Comments (45)

  1. Luc Cluitmans says:

    Two questions:

    (1) Why does the ‘current readme’ for VS2005 beta 1 look so similar to the May CTP readme, including many references to itself as the May CTP? Is VS 2005 beta1 == May CTP? If not, what has changed (cannot find that anywhere!), and how to proceed getting Vs 2005 Beta1 instead of May CTP? Do I need to uninstall May CTP? Do I need to reformat my HD? Do I need to touch any monkeys 🙂 ?

    (2) Will the final version of C# express be installable on the same machine as a ‘full’ version of VS 2005? Or for that matter, can the current beta be installed on the same machine as the full beta 1? Reason: can I test if the program I am developing (using the full version), which uses C# as a plugin language, can somehow couple to C# Express as a fancy editor for my users’ plugin code?

  2. Luc: Probably because not enough time was spent on the readme, but rather on getting the software up to beta quality and getting it into your hands.

    One thing I can tell you is that the beta went through a lot of testing, unlike the CTP which was just a snapshot of our current progress.

    2) The current verwsion of C# exprss is a beta. While I dont’ think it will, it might be the case that because of problems you will be unable to install C# express final. I really doubt it though 🙂 (if that helps at all)

  3. Luc Cluitmans says:

    Thanks for your response!

    I assume a better version of the readme, including the procedure to follow when the May CTP is currently installed, will be linked on http://lab.msdn.microsoft.com/vs2005/get/currentreadme/default.aspx soon? (see for instance point 2.4 for an example that needs fixing)

    Now it is time for me to wait 6 weeks for the guy who has the key to our MSDN subscription to return from his holiday, so he can download the full beta, or wait for the next batch of MSDN CDs to arrive, whichever comes first 🙁 (assuming the beta would be included in the next MSDN shipment)

  4. Luc: I known you can download the express skus without an MSDN subscription 🙂

    No need to wait that long!!

    We really need your feedback on this, so the sooner you can try it out and tell us, the better

  5. Mis pleagarias han sido escuchadas! Visual Web Developer 2005 Express Edition is a lightweight, easy-to-use and easy-to-learn development tool focused exclusively on Web development. Inside, you will find everything you need to begin building exciting, dynamic Web applications with ASP.NET…

  6. fuzu says:

    great, like i need more things to distract me at work 😛

    the vb and webdev express tools would be neat for our devs to try out. yes, smear vb all you want, it’s still the best tool for what we need to do. while they’re at it, i’ll see if they want to try c#. it’s nigh impossible to convince an army of supar-fast vb coders to switch to something else, but it looks like these express packages are a good way to play around.

  7. I’ve never smeared VB 🙂

    VB’s excellent!!!

    It’s my goal to make the C# development experience to the kick-ass level (or better) that makes people love VB so much.

  8. Robert Björn says:

    I played with it when I got home last night and it seemed to work very well.

    Once or twice the documentation viewer locked up on me instead of taking me to the relevant chapter.

    Also, the designer support for the menu strip misbehaved once (the spacing between items got messed up, and more). It got fixed when I re-started VS and re-opened the project.

    Overall I was very satisfied. I think this is an awesome initiative. There are more than a few of us who, having spent a day at work coding, might want to play a little at home as well participating in some little project and in those cases we need an affordable alternative. Visual Studio Express 2005 looks VERY promising.

  9. Robert: excellent!!!

    Please file some of these bugs if you have a chance. If you have a repro, or a general idea of what you were doing that will go quite a ways in helping the devs and QA to find and fix the bug!

  10. Gheorghe Marius says:

    The installer doesn’t work :(((. I already reported about 8 crashes. Is something related to BITS. I, personally, think that the ideea of this "download – setup" thingie is kind of crappy. Make a regular setup so i can easely install it on multiple computers. The way it is now i have to download it each time……

  11. Gheorghe: I’ve sent your feedback to our setup team. I know they’re actively investigating getting a single file installer available.

    Thank you so much for reporting the crashes! I’m sorry it hasn’t been working for you 🙁

    BTW. Do you have a firewall? I’ve heard that it can cause problems with BITS.

  12. Note: I saw this at dan’s site:

    http://blogs.msdn.com/danielfe/archive/2004/06/29/168417.aspx#169223

    It might help you out with installing. Hopefully we’ll have a solution out for you _fast_ for you.

    Once again, I’m very sorry for the problems.

  13. Doug McClean says:

    Hey Cyrus,

    I have a feature suggestion that I guess I assumed would be in this version of the frameworks, but now that I have my grubby hands on it I can’t find it anywhere, so maybe it doesn’t exist.

    I understand why microsoft decided to define IEnumerable<T>, IEnumerator<T>, IList<T>, … and still keep the original non-generic versions so that old programs will still compile. BUT, could we get thunking classes from the new to the old in the framework? E.g., if I have an IEnumerator<int> and I want to pass it to an older method that requires IEnumerator, it would be nice to have one place in the frameworks to go for a static factory method that will give me a wrapper.

    What do you think? Know of anyone to pass this along to?

  14. Doug: If I’m not mistaken, IList<T> might implement IList. I’m going to download the express sku to check that out. However, i would think that there would be problems with covariance/contravariance by doing that. For example, IList.Add says it takes any object, but this will obviously fail on IList<int> etc.

  15. Doug McClean says:

    Yeah, it does violate LSP for IList<T>, I agree. But most of the existing programs that require an IList use it for a specific type, so the wrapper (carefully used and used in light of the semantic invariants of the methods it is passed to) still seems useful. Also there is no problem when wrapping an IList<object>.

    There is also clearly no problem for IEnumerator and IEnumerable, because no casts are involved for IEnumerator<T> to IEnumerator, and for IEnumerable<T> to IEnumerable the only cast is the always-safe construction of an IEnumerator wrapper around an IEnumerator<T>. At least we should have these two, I think, and while I agree the others (IList, ICollection) are debatable, I think that those wrappers have a strong case too.

    Looking at the C# express, and looking with reflector, IList<T> doesn’t implement IList (and per our previous discussion, I wouldn’t expect it to, since there is an easy default implementation of a wrapper and burdening every IList<T> type with redeclaring it seems unneccessary). The other reason why IList<T> isn’t IList is because of this case:

    class Weird : IList<Dog>, IList<Cat>

    {

    // oops, I am IList now. do my IList methods affect the dogs? the cats? both? neither?

    }

  16. Doug McClean says:

    On the other hand, List<T> is IList<T>, ICollection<T>, IEnumerable<T>, IList, ICollection, and IEnumerable. Which is helpful if you are using List, but not helpful if you have to use IList for one reason or another.

    Same goes for the new methods on List<T>, like ConvertAll, Find, FindAll, FindIndex, FindLast, FindLastIndex, RemoveAll, Sort, TrueForAll could all be defined statically in terms of IList<T> and save me a lot of work :). But instead, they are defined only as instance methods on List<T> (not that I am against defining them there too for discoverability and a touch of performance, but defining the same routines as statics somewhere that take an IList<T> argument would be very helpful).

  17. Doug: I’m more suprised that we don’t have:

    IList : IList<object>

    However, I’m guessingthat it’s because the interfaces have actually changed slightly. I.e. they’ve made the IList<T> interface slightly different in way that they don’t match up.

  18. Cyrus, two questions if i may – it’s easy to ask here, and you’re talkative, which means i might get an answer 🙂

    I’m yet to download the express packs yet, but i’ve been meaning to. However, i was reading about bookmarks, and they sound useful. The way they were described in the explanation, they sound like breakpoints that don’t cause a break, but you can jump around them to find code. Oh, and they’re blue instead of red. This is a nice plan indeed. Just wondering if whidbey brings in the same sort of thing for breakpoints? The way i see them, a breakpoint is basically a bookmark that causes the debugger to stop execution when debugging. Are they aligned by any chance? if not, can they be? I know i’ve wanted a ‘jump to next breakpoint’ feature. It’ll probably all become once i do actually get around to downloading express 🙂

    Question 2: non-whidbey related. I notice that a technical preview for the 1.1 .net framework sp1 is out. Is there any word on an expected timeline for final release?

    Thanks kindly,

    –Geoff

  19. Geoff: Good idea about unifying breakpoints/bookmarks for navigation. Unfortunately, i think they are differnt.

    _However_ you should be able to write a macro to iterate through all of them 🙂

    Sorry taht we dont’ support it, but hey… it might be good for learning how to do macros. Steep learnign curve to understand all the different packages provided thoug 😉

    2) No clue… sorry 🙁

  20. Cyrus:

    1) Well then, i’ll just have to tell someone to add it to their list for beta 2 🙂 Who would i talk to for that? The VSEditor team blog?

    2) Tis cool.

    Thanks for answerin 🙂

    –Geoff

  21. Geoff: Yup! They’d be the perfect people to talk about navigation all around the entire product. We’re the ones that can implement very specific C# type navigation. Like "goto defintion" and "go to references"

  22. [url=http://arts.20mbweb.com/lhc]六合彩|香港六合彩[/url]

    [url=http://arts.20mbweb.com/lhchk]六合彩[/url]

  23. 那人 says:

    [url=http://arts.20mbweb.com/lhc]六合彩|香港六合彩[/url]

    [url=http://arts.20mbweb.com/lhchk]六合彩[/url]

  24. 那人 says:

    http://arts.20mbweb.com/lhc 六合彩|香港六合彩

    http://arts.20mbweb.com/lhchk 六合彩|香港六合彩

    http://business.20mbweb.com/lhczt 六合彩|香港六合彩

  25. 434 says:

    http://www.jhcnc.net 全国杭州浙江网络电话包月

    http://www.7zj.net 说再见再见不会太遥远

  26. 434 says:

    http://www.hzbm.com 不要问不要说一切尽在不言中

    http://www.jhcnc.net 若有缘有缘就能期待明天