Is .NET framework compületely included in .NET v2.0 (and this in v3.0) ?

S

Steven Prasil

Currently I have installed two (runtime) .NET frameworks on my WinXP system:

v1.1

AND

v2.0

Is this necessary or is v1.1 COMPLETELY included in v2.0 ?

The same questions applies to the relationship between .NET v2.0 and v3.0:
If I install v3.0 can I de-install v2.0?

Steven
 
G

Guest

To run application of .Net 1.1 you must have to have .Net Framework 1.1
installed and it'lll not run under .Net 2.0 so for running 2 applications
belonging to .Net 1.1 and .Net 2.0 you need to have both versions installed
on the machine.
But this time Microsoft kept the Backward compatibility meaning that
applications of .Net 2.0 are 100% compatible and executable under .Net 3.0
withuot needing .Net 2.0 to be explicitly installed.
Best Regards,
Rizwan aka RizwanSharp
 
J

Jon Skeet [C# MVP]

RizwanSharp said:
To run application of .Net 1.1 you must have to have .Net Framework 1.1
installed and it'lll not run under .Net 2.0 so for running 2 applications
belonging to .Net 1.1 and .Net 2.0 you need to have both versions installed
on the machine.

No, that's not true. .NET 1.1 applications *will* run with only 2.0
installed - there are some incompatibilities, but not *very* many. A
lot of 1.1 applications will run perfectly well without any
modifications on 2.0.
 
J

Jon Skeet [C# MVP]

RizwanSharp said:
I tried it many times but did not work.....

Well, it's certainly meant to and I've seen it working myself. I've
also seen it failing due to a few incompatibilities, but usually it
works.
And also found on the web that .Net 1.x application is not compatible
and runable on .Net 2.0.

Where exactly?

As I said, there *are* incompatibilities, but they should be relatively
rare.

See

http://msdn.microsoft.com/msdnmag/issues/06/03/CLRInsideOut/default.asp
x

(careful of line wrapping) for an article describing how backwards
compatibility works as well as side-by-side execution. A few quotes:

<quote>
Next in order of importance was that we wanted to ensure that
applications would run properly if only the latest runtime were
installed.
</quote>

<quote>
The result was that the vast majority of applications will not be
impacted by the installation of the .NET Framework 2.0, most
applications will work just fine on machines that only have the latest
version
</quote>

So certainly Microsoft intend it to work - and as I say, I've seen it
work myself.

Indeed, if you run a .NET 1.1 application on a machine with .NET 2.0
installed, it will run with the latest version *by default* unless you
specifically set a flag to run with a particular version.
 
K

Ken Blake, MVP

Jon said:
Well, it's certainly meant to and I've seen it working myself. I've
also seen it failing due to a few incompatibilities, but usually it
works.


Where exactly?

As I said, there *are* incompatibilities, but they should be
relatively rare.

See

http://msdn.microsoft.com/msdnmag/issues/06/03/CLRInsideOut/default.asp
x


That site says "on a machine running Windows VistaT with versions 1.1 and
2.0 of the .NET Framework installed, apps built against the .NET Framework
2.0 will run against the 2.0 version, while any older apps will still run
against the 1.1 version." If I'm interpreting that correctly, it seems to
say just the opposite of what you are saying.
 
J

Jon Skeet [C# MVP]

Ken Blake said:
That site says "on a machine running Windows VistaT with versions 1.1 and
2.0 of the .NET Framework installed, apps built against the .NET Framework
2.0 will run against the 2.0 version, while any older apps will still run
against the 1.1 version." If I'm interpreting that correctly, it seems to
say just the opposite of what you are saying.

Indeed it does. Looks like I had that part backwards, unfortunately -
apologies for that.

However, the point that you can run a 1.1 application on a machine with
only 2.0 installed still stands, I believe.
 
K

Ken Blake, MVP

Jon said:
Indeed it does. Looks like I had that part backwards, unfortunately -
apologies for that.

However, the point that you can run a 1.1 application on a machine
with only 2.0 installed still stands, I believe.


Well, I don't claim to be an expert on .net, but my understanding of this
has always been just the opposite. And again, returning to the quotation
above, it says "any older apps" (presumably what's meant is .net 1.1 apps)
"will still run against the 1.1 version" (and presumably that means "and
*not* against the 2.0 version").

So the way I read that the sentence is that you can *not* run a 1.1
application on a machine with only 2.0 installed. And that meshes with what
I had long thought was the case.
 
J

Jon Skeet [C# MVP]

Ken Blake said:
Well, I don't claim to be an expert on .net, but my understanding of this
has always been just the opposite. And again, returning to the quotation
above, it says "any older apps" (presumably what's meant is .net 1.1 apps)
"will still run against the 1.1 version" (and presumably that means "and
*not* against the 2.0 version").

They will run against 1.1 *if it is present*. Here's the sentence in
full:

<quote>
For example, on a machine running Windows Vista=3F with versions 1.1 and
2.0 of the .NET Framework installed, apps built against the .NET
Framework 2.0 will run against the 2.0 version, while any older apps
will still run against the 1.1 version.
</quote>

Note the "with versions 1.1 and 2.0 of the .NET framework installed"
part. In other words, that sentence doesn't say anything about what
happens when 1.1 isn't installed.

I apologise again for my mistake in what happens when two versions
*are* installed.
So the way I read that the sentence is that you can *not* run a 1.1
application on a machine with only 2.0 installed. And that meshes with what
I had long thought was the case.

No, it's not the case.

Here are another couple of pages:
http://msdn2.microsoft.com/en-us/library/47a587hk(VS.80).aspx

<quote>
The .NET Framework provides a high degree of support for backward
compatibility. For example, most applications created using version 1.0
will run on version 1.1 and applications using version 1.1 will run on
version 2.0.
</quote>

and

http://msdn2.microsoft.com/en-us/library/9w519wzk(VS.80).aspx
<quote>
If the version of the .NET Framework that the application was built
against is not present and a configuration file does not specify a
version in a <supportedRuntime> Element, the application runs on the
latest version of the .NET Framework that is present on the computer.
</quote>

So basically, in the case where a 1.1 application doesn't have a
configuration file, it will use 2.0 on a machine which has 2.0 but not
1.1 installed.
 
K

Ken Blake, MVP

Jon said:
They will run against 1.1 *if it is present*. Here's the sentence in
full:

<quote>
For example, on a machine running Windows Vista=3F with versions 1.1
and
2.0 of the .NET Framework installed, apps built against the .NET
Framework 2.0 will run against the 2.0 version, while any older apps
will still run against the 1.1 version.
</quote>

Note the "with versions 1.1 and 2.0 of the .NET framework installed"
part. In other words, that sentence doesn't say anything about what
happens when 1.1 isn't installed.


Yes, I know it doesn't say it. As I said "and presumably that means "and
*not* against the 2.0 version." Just "presumably." That was the way *I* read
it, apparently incorrectly (see below).

I apologise again for my mistake in what happens when two versions
*are* installed.


No, it's not the case.

Here are another couple of pages:
http://msdn2.microsoft.com/en-us/library/47a587hk(VS.80).aspx

<quote>
The .NET Framework provides a high degree of support for backward
compatibility. For example, most applications created using version
1.0 will run on version 1.1 and applications using version 1.1 will
run on version 2.0.
</quote>

and

http://msdn2.microsoft.com/en-us/library/9w519wzk(VS.80).aspx
<quote>
If the version of the .NET Framework that the application was built
against is not present and a configuration file does not specify a
version in a <supportedRuntime> Element, the application runs on the
latest version of the .NET Framework that is present on the computer.
</quote>

So basically, in the case where a 1.1 application doesn't have a
configuration file, it will use 2.0 on a machine which has 2.0 but not
1.1 installed.



Yes, those pages seem to be definitive, and make it clear that what you say
is correct. So my understanding of this has been wrong. Thank you for
straightening me out.
 

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