473,385 Members | 1,309 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,385 software developers and data experts.

legal to copy MS's code?

So is it legal to copy stuff out of the .NET framework and mix it into
your own code? I assume so, since I could call their function directly
if I didn't want to avoid the UI library reference in my server code.
Do I need to reference it?
Dec 21 '07 #1
11 1337
not_a_commie <no********@gmail.comwrote:
So is it legal to copy stuff out of the .NET framework and mix it into
your own code?
No, it's not.
I assume so, since I could call their function directly
if I didn't want to avoid the UI library reference in my server code.
That's not the same thing as being able to copy it yourself though.
Do I need to reference it?
Yup, or reimplement it yourself without looking at the original source
(or a decompiled version).

--
Jon Skeet - <sk***@pobox.com>
http://www.pobox.com/~skeet Blog: http://www.msmvps.com/jon.skeet
World class .NET training in the UK: http://iterativetraining.co.uk
Dec 21 '07 #2
And you might be "assuming" incorrectly. While Microsoft is making the source
code to the .NET Framework available it is, as I understand it, for debugging
purposes. So, read the licensing agreement carefully.
-- Peter
Site: http://www.eggheadcafe.com
UnBlog: http://petesbloggerama.blogspot.com
MetaFinder: http://www.blogmetafinder.com
"not_a_commie" wrote:
So is it legal to copy stuff out of the .NET framework and mix it into
your own code? I assume so, since I could call their function directly
if I didn't want to avoid the UI library reference in my server code.
Do I need to reference it?
Dec 21 '07 #3
want to avoid the UI library reference in my server code

Some useful methods are undoubtably in the wrong assemblies, due to
them being implemented first by a particular team. Examples would be
the cache functionality in System.Web (originally for web apps, but
enhanced in 2.0 so that it is reasonable to use from any caller), or
some simpler things like the Application class, or perhaps just the
MethodInvoker delegate*.

Now; I'm not saying that it is always OK to use any code in any
scenario, but if you are aware of what the code is doing (and why)
then I don't see any issue using a UI assembly from a server app etc.
But you *must* be aware of what you are doing and why (for instance,
System.Drawing has some big issues in service code).

In terms of deployment, since these assemblies are in the core GAC you
have no issues.

Just my tuppence.

Marc
Dec 21 '07 #4
Yes, it's the Reference License. You can only reference the source, you
can't distribute it in any way (like copying, recompiling, and deploying).

The .NET Framework technically has a no reverse engineering clause (the .NET
Framework 2.0 license is a supplement to the Windows EULA, and doesn't
explicitly grant license to reverse engineering). So, you can't distribute
anything you get from decompilation because you're not allowed to decompile
it.

I believe there's multiple MSFT sources that show reflecting on the .NET
Framework; so it may be an uphill battle to charge someone with decompilation
of the managed .NET code; but certainly charging someone for redistribution
of the .NET Framework, outside of running donetfx.exe, would be a easy win...

--
Browse http://connect.microsoft.com/VisualStudio/feedback/ and vote.
http://www.peterRitchie.com/blog/
Microsoft MVP, Visual Developer - Visual C#
"Peter Bromberg [C# MVP]" wrote:
And you might be "assuming" incorrectly. While Microsoft is making the source
code to the .NET Framework available it is, as I understand it, for debugging
purposes. So, read the licensing agreement carefully.
-- Peter
Site: http://www.eggheadcafe.com
UnBlog: http://petesbloggerama.blogspot.com
MetaFinder: http://www.blogmetafinder.com
"not_a_commie" wrote:
So is it legal to copy stuff out of the .NET framework and mix it into
your own code? I assume so, since I could call their function directly
if I didn't want to avoid the UI library reference in my server code.
Do I need to reference it?
Dec 21 '07 #5
the MethodInvoker delegate*.

Oops; I forgot to add my footnote:

*=yes, this is logically identical to ThreadStart, but I've found
repeatedly this causes confusion with some people who assume it
relates to threaded code. Of course, once I get the projects up to 3.5
we can switch to Action ;-p

Marc
Dec 21 '07 #6
Some useful methods are undoubtably in the wrong assemblies, due to
....
Just my tuppence.
I doubt that a technical thing (a bug in implementation, or whatever)
can trump a legal thing (the license).
If something is broken, you ask to be fixed, you cannot go ahead and
fix it yourself, then redistribute it.

When in doubt, read the license 20 times, then check with somebody
who can read legalese. Taking advide from random Joe on the net
(including me) might get you in trouble.
--
Mihai Nita [Microsoft MVP, Windows - SDK]
http://www.mihai-nita.net
------------------------------------------
Replace _year_ with _ to get the real email
Dec 21 '07 #7
Mihai - I agree with what you say, but I'm not sure how this relates
to your quoting me? I never said anything about bugs or re-deployment
- just that it is sometimes reasonable to reference a UI assembly from
service code...

Marc
Dec 21 '07 #8
Hi,

What do you think will be the benefit.

I know the other side, your program loading time will be longer and the
deployment packages will be larger.

I don't see any advantage in what you want to do?

While at least here in the EU you are most probably violating the copyright
laws.

Cor

Dec 22 '07 #9
Mihai - I agree with what you say, but I'm not sure how this relates
to your quoting me? I never said anything about bugs or re-deployment
- just that it is sometimes reasonable to reference a UI assembly from
service code...
Because of this:
<<Now; I'm not saying that it is always OK to use any code in any
scenario, but if you are aware of what the code is doing (and why)
then I don't see any issue using a UI assembly from a server app etc.>>

"Use any code" does sound like more than just reference.
But maybe I did not understand it (especially since English is not
my first language).

So, sorry for misquoting you.

But for whoever reads: even if quoting Marc was a misunderstanding,
what is legal and what is not might be tricky, and checking with
someone who can offer proper advice is best.
--
Mihai Nita [Microsoft MVP, Windows - SDK]
http://www.mihai-nita.net
------------------------------------------
Replace _year_ with _ to get the real email
Dec 23 '07 #10
Because of this:

Fair enough - I could perhaps have been clearer; I meant via a
standard reference, not by ripping the guts out of somebody else's
code ;-p

Marc
Dec 23 '07 #11
Fair enough - I could perhaps have been clearer; I meant via a
standard reference, not by ripping the guts out of somebody else's
code ;-p
It was probably not a big problem, but I tend to be a bit
paranoic about legal stuff :-)
--
Mihai Nita [Microsoft MVP, Windows - SDK]
http://www.mihai-nita.net
------------------------------------------
Replace _year_ with _ to get the real email
Dec 24 '07 #12

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
by: pakkocool | last post by:
¿Como ganar dinero en internet? Lee atentamente el siguiente texto, es super interesante y te hara ganar muchos dolares si sigues las instrucciones y le pones empeño: Hace unos días que...
7
by: __PPS__ | last post by:
Actually what I mean is that - if I have some memory buffer, lets say char a; and then I do like this: DWORD num = 0x1234; *(DWORD*)a = num; (1) *(DWORD*)(a+1) = num; (2) either...
3
by: Tor Inge Rislaa | last post by:
Copy, Cut and Paste How to code the Copy, Cut and Paste functionality in VB.NET. In VB 6.0 I used the following code: 'For Copy Clipboard.Clear Clipboard.SetText...
14
by: Frank Rizzo | last post by:
I realize that this maybe the wrong forum, but maybe someone has run into this situation before. I sell an app and I want to offer my customers a migration path from a competing product. However,...
7
by: lgbjr | last post by:
Hello All, I¡¯m using a context menu associated with some pictureboxes to provide copy/paste functionality. Copying the image to the clipboard was easy. But pasting an image from the clipboard...
1
by: cindypwl | last post by:
I was looking at some code in the MS NG, and I saw this code listed. template <class T>class List{}; template<class T> bool MySortFunc(List<T>& list){return true;} template <class T>struct...
17
by: lovecreatesbeauty | last post by:
1. In the following code, is the code (line 11) legal? Is there a notice in the document to tell callers that the parameter s1 should receive an array variable, i.e. type char, but not a variable...
10
by: flopbucket | last post by:
Hi, Is this legal? std::string foo() { std::string xyz = "FOO"; return xyz; }
0
by: FFMG | last post by:
Hi, I am trying to copy some variables from a struct to a derived struct. If I have something like, .... struct STRUCTA { int numA; long numB;
1
by: CloudSolutions | last post by:
Introduction: For many beginners and individual users, requiring a credit card and email registration may pose a barrier when starting to use cloud servers. However, some cloud server providers now...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 3 Apr 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome former...
0
by: ryjfgjl | last post by:
In our work, we often need to import Excel data into databases (such as MySQL, SQL Server, Oracle) for data analysis and processing. Usually, we use database tools like Navicat or the Excel import...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.