Microsoft Releases Source of .NET Base Classes
Disgruntled Fungus writes "A few months ago, we discussed Microsoft's intention to open source the .NET libraries. According to a developer's official blog, the source code is now available. The source to libraries such as System, IO, Windows.Forms, etc. can now be viewed and used for debugging purposes from within Visual Studio. Instructions for doing so have also been provided. The source code has been released with a read-only license and 'does not apply to users developing software for a non-Windows platform that has "the same or substantially the same features or functionality" as the .NET Framework.'"
Microsoft has just begun killing Mono.
(Think "oh, that implementation really looks like ours! you must have read it! here's a lawsuit for you")
we discovered a new way to think.
So you can look at the source all you want, unless you're a mono developer.
Blah blah sig blah blah blah irony blah blah
A few months ago, we discussed Microsoft's intention to open source the .NET libraries.
Yes, and as one of the first posters pointed out, unlike Java for instance, this is NOT being published under an open source licence, Microsoft even says so. So why do you keep using the term?
Being bitter is drinking poison and hoping someone else will die
Can't wait to see the best bits of it on The Daily WTF! \o/
You just got troll'd!
"So you can look at the source all you want, unless you're a mono developer."
Like they really needed to anyway?
My captcha is "ceases". Hmmm.
Too bad the library is written in VB....
Of course, anyone doing serious development with .NET has been looking at the source for years now in any case by using Lutz Roeder's .NET Reflector, which is a C# (etc) decompiler (not just a disassembler). It's the only way to reliably discover and work around the horrible bugs and misdesigns in MS's libraries. (Yes, WSE, I'm looking at you.)
:-)
Reflector is downloadable from http://www.aisto.com/roeder/dotnet/. And it's obfuscated, so it won't run usefully on itself
It has strings attached, as usual, in order to render it useless in any true Open Source project, but does its job of promoting a non existent support of Open Source from Microsoft.
IMO, the only reason for that PR is clearly showed in the nice graph at this page
* Each source file you debug into is dynamically downloaded once for each session and not retained.
* Setting breakpoints in the source is a multi-step process, because the source is different from the corresponding symbol files because the copyright banners they insert change the CRC. You have to tell the IDE to ignore that.
* You have to manually tell it to load symbols for each file.
* The symbols are also served up from an MS server (but they are cached beyond a single session).
* Some of these symbol files are 10MB, so VS "may be unresponsive" while you download them.
* "Go to Definition" doesn't work.
This in contrast to the same support in Eclipse, where all you have to do is
* Download the source
* Tell the IDE where to find the source 14) Can I point a web browser at the symbols URL and download the symbols directly?
No, you'll get an HTTP 400 (Bad Request) response. So in addition, you'll need a professional version of Visual Studio, because the Express versions don't support the Source Server feature.
Given that it all seems so inconvenient to use, I think I may be sticking to Reflector.
You can only *look* at the code and you cannot re-distribute the libraries not to mention the legal aspects (specifically mono).
.net sources anyway (I'm sure someone here will prove me wrong).
.net 3.5 has bloated because of the vista specific libraries have been added, and yet another series of APIs being included - typical Microsoft).
.net at work, at home I can use mono on Linux and my .net coding experience is relevant to both platforms.
This is probably only useful from an *educational* point-of-view and when you think about it, there is so much publically available code out there already how much more will you learn from the
I thought one of the major benefits of OOP was code abstraction - in theory there should not be a need to see the implementation.
In fact too much knowledge could be a 'bad thing'(tm) you may start relying on *how* something is implemented - if the implementation changes your code *may* break.
As for the mono project I believe only the implementation of libraries is the issue. The vm and c# are a public standard and 'patent free?'- maybe mono should diverse in a seperate direction rather trying to catchup with Microsoft (considering how
The major benefit of mono for me is that I can use Microsoft's
Microsoft is not releasing those libraries as open source. What they are doing is what they and other companies have been doing for a long time: releasing some of their source code in read-only form to "help" people debug.
In fact, the real problem with this is that, in case of ambiguities, people will code increasingly to Microsoft's source code instead of the specification. Furthermore, after having released it, Microsoft may attempt to claim that the Mono project copied some of their source code in violation of the license.
One can't prevent Microsoft from doing this, but it's not a good thing.
All things being equal, it's better if companies don't publish their proprietary source code under restrictive licenses.
However, don't be overly dramatic. This sort of thing isn't new and open source projects know how to cope with it. Microsoft would have a hard time making any claim actually stick, unless there was blatant infringement. Furthermore, the Mono project can now also simply have some independent third party regularly check their code against Microsoft's to make sure nothing sneaks in.
I thought it meant the developer who originally wrote them has been let out of his nice padded room.
It would still be prudent for the Mono developers not to look at it, but with that disclaimer, I think it would be pretty hard for Microsoft to make anything stick in court.
Beware of including mono in any Linux distro.
Death is life's great reward. R. Hoek
To my bearded friends from 1998: great work making an already confusing term "Free Software" even more confusing by rebranding it "Open Source Software".. this is the result. I know, I know.. you considered a whole lot of different alternatives but nothing really struck the chime like "Open Source" but maybe we all should have looked a little harder. How about "Unrestricted Software". It makes even more sense today, what with DRM and all. And the BSD trolls can still have their arguments about what "unrestricted" really means just as they do now about what "free" and "open" really mean.
How we know is more important than what we know.
I think .NET is an excellent framework.
- Miguel
Very different sound actually.
This release is not intended to benefit the Slashdot crowd. Of course it isn't "open source", and Microsoft never said it was. This is Microsoft assisting developers working with .NET on the Windows platform. There are a huge number of developers who fit that description. Sorry if you don't, but not everything is about you.
The CLR 2.0 source (the runtime, not just the BCL) code is up too, it's in C++, not managed code. Strangley the article and summary seem to completely miss that fact. I'm very surprised, because it's much more significant, and it can't be ascertained using the decompilers like the managed code can. THIS is probably the thing that can kill mono.
Speak for yourself.
I was stunned by the headline. Just imagining downloading the full source of the framework libraries. After reading the article it was more like, "insert the VS 2008 CD". Nice try, almost had me for a second.
Simply publishing the source is not the same as making this open source. It all comes down to the license granted by Microsoft. In fact, it could be an attempt to "poison the well". By exposing developers to the source but not granting third-part (re)use, or at least *potentially* exposing developers, that could open the door to lawsuits. Here's why: if a third-party developer were to implement a substantially similar solution or identical algorithm, Microsoft could claim that the sources were "copied/stolen/used outside of the granted license" and therefore the work-alike product is inelegible for sale or distribution. Attorneys get involved and everything grinds to a halt.
Sure, you and I see it as nonsense, but how a court (more specifically a jury of nontechnical everyday Joes) would view it is another matter entirely. Muddying the waters is sometimes an effective legal strategy.
(Disclaimer: I am not a lawyer. Obviously.)
Surely its written in C/C++? Or is it written in C# using a previous version of .NET? If thats the case doesn't that mean that the code manager is in turn being managed itself using the previous runtime? Or am I getting this completely wrong?
I love when a big company makes a huge fanfare about something that a little company has been doing for years. Borland Delphi used to come with the full source code for all its components. And it had a better IDE ten years ago than Visual Studio has today.
under US law (can't remember the exact case otherwise I would have put a link in).
If's the only thing that means you can't use a GPL library in propritory software if your only using late binding, i.e. your not actually copying the GPL code only the interfaces to it.
thank God the internet isn't a human right.