Scott Guthrie has a blog post entitled Releasing the Source Code for the .NET Framework Libraries where he writes

One of the things my team has been working to enable has been the ability for .NET developers to download and browse the source code of the .NET Framework libraries, and to easily enable debugging support in them.

Today I'm excited to announce that we'll be providing this with the .NET 3.5 and VS 2008 release later this year.

We'll begin by offering the source code (with source file comments included) for the .NET Base Class Libraries (System, System.IO, System.Collections, System.Configuration, System.Threading, System.Net, System.Security, System.Runtime, System.Text, etc), ASP.NET (System.Web), Windows Forms (System.Windows.Forms), ADO.NET (System.Data), XML (System.Xml), and WPF (System.Windows).  We'll then be adding more libraries in the months ahead (including WCF, Workflow, and LINQ).  The source code will be released under the Microsoft Reference License (MS-RL).

This is one of those announcements I find hard to get excited about. Any developer who’s been frustrated by the weird behavior of a .NET Framework class and has wanted to look at it’s code, should already know about Lutz Roeder’s Reflector which is well known in the .NET devoper community. So I’m not sure who this anouncement is actually intended to benefit.

On the other hand, I’m sure Java developers are having a chuckle at our expense that it took this long for Microsoft to allow developers to see the source code for ArrayList.Count so we can determine if it is lazily or eagerly evaluated.

Oh well, better late than never.

PS: The ability to debug into .NET Framework classes will be nice. I’ve wanted this more than once while working on RSS Bandit and will definitely take advantage of it if I ever get around to installing VS 2008.

Now playing: TLC - Somethin Wicked This Way Comes (feat. Andre 3000)


Friday, October 5, 2007 4:33:22 AM (GMT Daylight Time, UTC+01:00)
Your response to this seems to make about as much sense as Scoble's. Really, what does this mean?

"I’m not sure who this anouncement is actually intended to benefit. ... I’ve wanted this more than once ... and will definitely take advantage of it".

And really... Reflector != source code, even if it comes damn close. Source code has comments, source code is debuggable, source code expresses the original intent instead of the intent the decompiler inferred.
Friday, October 5, 2007 9:11:18 AM (GMT Daylight Time, UTC+01:00)
Having just spent yesterday examining all bugreps against Sun's ThreadLocal type, then walking through the source code to conclude that people's claims are true: there is a WONTFIX re-entrancy bug in the Java5 and current java6 implementations, yes, exposing the source is good.

You dont find all concurrency bugs by testing; they happen in the field and people stepping through the source may identify where they happen. So yes, exposing the classes is good.

Will it help .NET? Dont know, dont care. But for those .NET developers, it makes getting stuff working easier, so it can only be a good thing.
Steve Loughran
Friday, October 5, 2007 2:47:36 PM (GMT Daylight Time, UTC+01:00)
Well source code is a little bit different that what reflector gives you and secondly the fact that Microsoft is trying to open some of their stuff is intriguing to me. Integrated debugging is also a nice idea and I'm sure there will be more features that just that. I'm just baffled about the read-only code - whats with that? If its open make it all open all the way!
Friday, October 5, 2007 3:18:35 PM (GMT Daylight Time, UTC+01:00)
As a .NET developer, the interesting part of the announcement is that there are now debug symbols being shipped for the .NET Framework class libraries.

Between MSDN documentation and Reflector, you have the source code and relevant documentation. Comments would be nice to have but they are icing on the cake especially since there usually aren't the kind of comments you want to see in such source code releases (e.g. the kind of detailed explanations for wonky behavior you see in Raymond Chen's blog).

I don't believe the point of the release is to be anything akin to Open Source. This seems to be a move to be on par with what Java has had since my college days. A way for developers to be able to actually figure out what's going on underneath the covers. Since pretty much every platform .NET competes with gives developers this ability [mostly by virtue of being Open Source], it's been an anachronism that Microsoft has waited so long to do the same thing.
Friday, October 5, 2007 7:02:39 PM (GMT Daylight Time, UTC+01:00)
Dare - you are becoming more cynical. Are you leaving Microsoft?
Friday, October 5, 2007 9:59:39 PM (GMT Daylight Time, UTC+01:00)
Microsoft is going to leave him.
Edward Leslie
Saturday, October 6, 2007 2:41:13 AM (GMT Daylight Time, UTC+01:00)
Dare: I completely agree with you. My comment is pretty much on the same train as yours.

It's pretty rare for Microsoft to step forward to support the community and I felt that what they are trying to do now is a good starting point, however, they could do much better. Are they afraid of loosing their market share? Does open source = value depreciation of software, what is MS waiting for? I believe new developers will jump in if they provide more community support other than forums. Anyway thats a new topic...I can't wait to get my hands on it.
Saturday, October 6, 2007 4:28:00 PM (GMT Daylight Time, UTC+01:00)
I, along with a gazillion other people, blogged about this topic. My thinking is that while the technical aspect of the announcement is what most people will focus on, I believe the bigger deal is the business perceptions that this can *start* to create. This is an initial recognition that Microsoft is starting to understand that the developer community is not just important, but it is *very* important. I think in general need this sort of stuff coming out Microsoft -- I mean being able to step into the .NET Framework code during debugging is useful.

As I said in my post, it takes baby steps to create positive perceptions, and Microsoft is beginning to toddle.
Sunday, October 7, 2007 3:04:31 AM (GMT Daylight Time, UTC+01:00)
Right on Joel!
Comments are closed.