tags:

views:

146

answers:

3

I have very little experience with licensing issues. Let's say I'm developing an application for .NET 2.0. Is it OK to use (and distribute) some .NET 3.5 DLL's with my application?

For example, could I just copy "System.Core.dll" in my setup to the client's machine? Or could I even just extract some class (e.g. using Reflector), put its source code in one of my projects, and use it as-is?

I'm not sure whether using Reflector to do this would be legally OK, but what difference would it make from downloading the same class from Microsoft's Reference Source Server?

In any case, I guess I am just using the class, which is what the framework actually provides. Is there some misconception with my ideas?

+3  A: 

You definitely, definitely shouldn't start redistributing DLLs from one framework version to another.

For one thing it may well be illegal (even or possibly especially using Reflector to extract source) - but more importantly, you've then got a bit of code which was designed and written for one version of the framework running against another. Who knows if they've relied on a bugfix in mscorlib which was only implemented in .NET 3.5?

If you want LINQ to Objects in .NET 2.0, LINQBridge is your friend. For other issues, I would strongly recommend looking for a third party implementation or upgrading the version of the framework on the deployment machine.

Jon Skeet
Thank you. Your point is absolutely important. But I was just using this as an example, as I'm trying to learn a bit more about licensing.
Hosam Aly
I suspect if you look at the licence agreement for the framework it will explicitly say that you're not meant to redistribute individual DLLs. Check it closely though. If you want to do this for something other than the .NET framework itself, you'd have to check that licence.
Jon Skeet
A: 

Why would you need to distribute those dll's? You need an installation of the .Net framework on your client's machine anyway. That should include all relevant Microsoft dll's.

AFAIK a .Net ap can not be run on a machine without the framework, so you need it anyway.

Edit I just had a look at the .NET Framework 1.1 Redistributable EULA (could not find the one for 3.0 in Google). It does not specificly allow what you are proposing, so my guess is that you may not do it.

p.s.: IANAL ;-)

Treb
Well, assuming the target machine already has .NET 2.0, but not 3.5. So it wouldn't have the additional library classes. But regardless of the DLLs themselves, how "legal" would this act be?
Hosam Aly
I have read that LINQ requires .NET 3.5 for compilation and doesn't do that for running
abatishchev
A: 

I'm sure that you idea absolutely illegal for Microsoft license on .NET

abatishchev
May I ask why? I'm not arguing, but I just want to understand. Am I not just "using" their class, in the same way I do when the framework is installed?
Hosam Aly
Because you breaks the package, I guess. Microsoft is the software corporation (giant!), it has a lot of technical, marketing and other reasons. By-the-way, take a look to EULA: http://msdn.microsoft.com/en-us/library/ms994405.aspx
abatishchev
All I can see there is that it should be distributed in "object code form", which is normal since the application would be compiled. Am I missing something?
Hosam Aly