FYI: .NET Source Code to Become Available

  • Thread starter Jani Järvinen [MVP]
  • Start date
J

Jani Järvinen [MVP]

Hello,

for your information in case you didn't yet notice the Microsoft has
announced plans to give developers the ability to view .NET class library
source code. This is announced here:

http://weblogs.asp.net/scottgu/arch...rce-code-for-the-net-framework-libraries.aspx

Says the blog:

----------------
"...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. [...]

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). [...]

The source code will be released under the Microsoft Reference License
(MS-RL).

You'll be able to download the .NET Framework source libraries via a
standalone install (allowing you to use any text editor to browse it
locally). We will also provide integrated debugging support of it within VS
2008."
----------------

Sounds great to me!

Other posts related to this:

http://www.eweek.com/article2/0,1759,2191696,00.asp

http://www.regdeveloper.co.uk/2007/10/04/microsoft_dot_net_opensource_license/

--
Regards,

Mr. Jani Järvinen
C# MVP
Helsinki, Finland
(e-mail address removed)
http://www.saunalahti.fi/janij/
 
M

Mads Bondo Dydensborg

Jani said:
Hello,

for your information in case you didn't yet notice the Microsoft has
announced plans to give developers the ability to view .NET class library
source code. This is announced here:

[...]

Sounds great to me!

Please note though, that looking at MS source code under that license may
place you at risk for been ligiated (hope that is the correct word, english
is not my first language), in case MS thinks part of your code looks a bit
too much like their code.

Contributing to e.g. the Mono project will not be a possibility for you, if
you have looked at the MS code.

Regards,

Mads

--
Med venlig hilsen/Regards

Systemudvikler/Systemsdeveloper cand.scient.dat, Ph.d., Mads Bondo
Dydensborg
Dansk BiblioteksCenter A/S, Tempovej 7-11, 2750 Ballerup, Tlf. +45 44 86 77
34
 
J

Jeff Gaines

for your information in case you didn't yet notice the Microsoft has
announced plans to give developers the ability to view .NET class library
source code.

Is this so we can debug it and correct the problems ourselves?
 
F

Frans Bouma [C# MVP]

Mads said:
Jani said:
Hello,

for your information in case you didn't yet notice the Microsoft has announced plans to give developers the ability to
view .NET class library source code. This is announced here:

[...]

Sounds great to me!

Please note though, that looking at MS source code under that license
may place you at risk for been ligiated (hope that is the correct
word, english is not my first language), in case MS thinks part of
your code looks a bit too much like their code.

Contributing to e.g. the Mono project will not be a possibility for
you, if you have looked at the MS code.

Exactly, and also consider that a lot of the code might be patented,
so looking at it might make you vulnerable for a patent lawsuit if you
re-use the ideas in your own code.

Keep in mind that reverse engineering is allowed in a lot of countries
(e.g. by using ildasm or reflector) IF you don't have access to the
sourcecode.

As soon as that's the case, the reverse engineering of compiled code
isn't allowed anymore for cases where you want to re-use ideas (if
they're patented, they're off limits anyway).

Software patents aren't valid in the EU (thankfully) but in the US
they are, so consider this please.

All the cheers of joy from people are IMHO a bit weird, as the license
is very restrictive and IMHO makes the whole pile of code rather
meaninless, in fact, I advice everyone to not look at the code at all.

FB

--
------------------------------------------------------------------------
Lead developer of LLBLGen Pro, the productive O/R mapper for .NET
LLBLGen Pro website: http://www.llblgen.com
My .NET blog: http://weblogs.asp.net/fbouma
Microsoft MVP (C#)
------------------------------------------------------------------------
 
F

Frans Bouma [C# MVP]

Jeff said:
Is this so we can debug it and correct the problems ourselves?

You can debug it, but you can't correct it. You aren't allowed to
rebuild the code, alter it, re-use it etc.

In fact, by debugging it, you're looking at it and therefore you can
never write such a class yourself unless it looks totally different.

FB

--
------------------------------------------------------------------------
Lead developer of LLBLGen Pro, the productive O/R mapper for .NET
LLBLGen Pro website: http://www.llblgen.com
My .NET blog: http://weblogs.asp.net/fbouma
Microsoft MVP (C#)
------------------------------------------------------------------------
 
K

Kevin Spencer

All the cheers of joy from people are IMHO a bit weird, as the license
is very restrictive and IMHO makes the whole pile of code rather
meaninless, in fact, I advice everyone to not look at the code at all.

I think you're missing out on some very important values inherent in being
able to view the code to the assemblies. First, working with Microsoft .Net
assembly classes is working with black boxes, which can make diagnosis of
problems extremely difficult at times. Being able to view the code and run a
debugger through it would be very helpful in this regard, just as using
WinDebug is useful for diagnosing problems in unmanaged applications that
use the Windows API.

In addition, one may learn how to use a number of features that are not
well-documented by observing how they are implemented in the Microsoft
assemblies, such as design-time features for Windows Forms Controls, and
attributes of various kinds.

None of this requires that one does anything with the code but study it, and
learn from it. The release of the code will very probably benefit Microsoft
in terms of lowering their support overhead.

--
HTH,

Kevin Spencer
Microsoft MVP

DSI PrintManager, Miradyne Component Libraries:
http://www.miradyne.net
 
V

vanilla

I read the reference license and took note of the employer-specific
provisions. I am so glad I found that out before I installed. Anyone who is
thinking about taking advantage of this admittedly very great resource needs
to read the reference license very carefully. Every sentence.

http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx

vanilla


Frans Bouma said:
Mads said:
Jani said:
Hello,

for your information in case you didn't yet notice the Microsoft has announced plans to give developers the ability to
view .NET class library source code. This is announced here:

[...]

Sounds great to me!

Please note though, that looking at MS source code under that license
may place you at risk for been ligiated (hope that is the correct
word, english is not my first language), in case MS thinks part of
your code looks a bit too much like their code.

Contributing to e.g. the Mono project will not be a possibility for
you, if you have looked at the MS code.

Exactly, and also consider that a lot of the code might be patented,
so looking at it might make you vulnerable for a patent lawsuit if you
re-use the ideas in your own code.

Keep in mind that reverse engineering is allowed in a lot of countries
(e.g. by using ildasm or reflector) IF you don't have access to the
sourcecode.

As soon as that's the case, the reverse engineering of compiled code
isn't allowed anymore for cases where you want to re-use ideas (if
they're patented, they're off limits anyway).

Software patents aren't valid in the EU (thankfully) but in the US
they are, so consider this please.

All the cheers of joy from people are IMHO a bit weird, as the license
is very restrictive and IMHO makes the whole pile of code rather
meaninless, in fact, I advice everyone to not look at the code at all.

FB

--
------------------------------------------------------------------------
Lead developer of LLBLGen Pro, the productive O/R mapper for .NET
LLBLGen Pro website: http://www.llblgen.com
My .NET blog: http://weblogs.asp.net/fbouma
Microsoft MVP (C#)
------------------------------------------------------------------------
 
J

Jon Skeet [C# MVP]

vanilla said:
I read the reference license and took note of the employer-specific
provisions.

I'm not entirely sure what you mean by "the employer-specific
provisions". Could you elaborate?
 
V

vanilla

Of course ... the reference license includes a definition that states: "Your
company" means the company you worked for when you downloaded the software.

Also, this definition: "Reference use" means use of the software within your
company as a reference, in read only form ... snip ... and specifically
excludes the right to distribute the software outside of your company.

This license is not for the hobbyist. This should be used by professionals
only. In the past, it has been customary for end users to fly through EULAs
and license agreements without really reading them. Those of us who have
downloaded the free Express editions of Visual Studio to learn programming,
are not ... how to put this ... if we are not professionals who work for a
company that produces software products, then I don't think we should be
looking at code that has this type of license. I don't mean to be putting
anyone down, please, it is just that, once I read the reference license, I
knew I was not the "target audience", so to speak.

If some one else who is a beginner/hobbyist coder, hears about this great
news that source code from Microsoft is now available, and they don't read
the EULA, the license agreement, and don't understand that they can't
"borrow" the code they are reading, they might end up in a situation.

My comments are not meant to be punitive or negative ... just sober about
the ramifications ... thank you ... vanilla
 
J

Jon Skeet [C# MVP]

vanilla said:
Of course ... the reference license includes a definition that states: "Your
company" means the company you worked for when you downloaded the software.

Also, this definition: "Reference use" means use of the software within your
company as a reference, in read only form ... snip ... and specifically
excludes the right to distribute the software outside of your company.

Were you planning to distribute the software at all? If not, you're not
violating the licence, are you?
This license is not for the hobbyist. This should be used by professionals
only. In the past, it has been customary for end users to fly through EULAs
and license agreements without really reading them. Those of us who have
downloaded the free Express editions of Visual Studio to learn programming,
are not ... how to put this ... if we are not professionals who work for a
company that produces software products, then I don't think we should be
looking at code that has this type of license. I don't mean to be putting
anyone down, please, it is just that, once I read the reference license, I
knew I was not the "target audience", so to speak.

I think you're over-reading things. We can ask MS to clarify, of
course, but I doubt that they truly intend to stop individuals from
using the reference licence.
If some one else who is a beginner/hobbyist coder, hears about this great
news that source code from Microsoft is now available, and they don't read
the EULA, the license agreement, and don't understand that they can't
"borrow" the code they are reading, they might end up in a situation.

Anyone who thinks they can start copying code from the framework
without having read the licence is *very* naive.
My comments are not meant to be punitive or negative ... just sober about
the ramifications ... thank you ... vanilla

As I say, I think you're reading things into the licence which aren't
intended.
 
V

vanilla

Were you planning to distribute the software at all? If not, you're not
violating the licence, are you?

Good point. Especially if all you are doing, at least at first, is ASP.NET
for the Web for personal home server or personal websites for
family/friends.
I think you're over-reading things. We can ask MS to clarify, of
course, but I doubt that they truly intend to stop individuals from
using the reference licence.

I don't know, Jon ... the language is pretty specific. Not much wiggle room
that I can see.

Bottom line is, I was very surprised by the language when I read it. I would
not have expected it. I appreciated the link to it that was provided in the
newsgroup I was reading at the time. My understanding of Open Source may
have given me a skewed perception of what to expect and it is, no doubt, me
who is very naive and needs to learn how things are done. And I thank you
for your comments and kindness ...

vanilla
 
J

Jon Skeet [C# MVP]

vanilla said:
Good point. Especially if all you are doing, at least at first, is ASP.NET
for the Web for personal home server or personal websites for
family/friends.

Regardless of what code you're writing, I can't see why you would want
to give the .NET framework code to anyone else. You can give *your*
source code to whoever you like - that's not the code that the licence
is applied to.
I don't know, Jon ... the language is pretty specific. Not much wiggle room
that I can see.

On the contrary - it's very specific, which is why it shouldn't be a
problem to you. It's prohibiting you from doing something you weren't
planning on doing anyway, so it's not a problem.
Bottom line is, I was very surprised by the language when I read it. I would
not have expected it. I appreciated the link to it that was provided in the
newsgroup I was reading at the time. My understanding of Open Source may
have given me a skewed perception of what to expect and it is, no doubt, me
who is very naive and needs to learn how things are done. And I thank you
for your comments and kindness ...

The reference licence is certainly not "open source" in any of the
traditional meanings of the term.

However, for the purposes of debugging your code, I don't think you
should have any problems with the reference licence.
 
R

Rad [Visual C# MVP]

In addition, one may learn how to use a number of features that are not
well-documented by observing how they are implemented in the Microsoft
assemblies, such as design-time features for Windows Forms Controls, and
attributes of various kinds.

Kevin, this is precisely the problem ... if you know how Microsoft
implemented a particular feature and that feature happens to be
patented, you are setting yourself up for the high jump.

There are some cases where ignorance is bliss. This just might be one
of them.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top