Roland said:
Actually, I found a possible answer on my question by reading the
post from Carl Daniel on Oct 17.
He stated that only one version of the CLR can be hosted in a process.
That's true.
If this is the case, there are major consequenses each time the
framework moves forward:
That's not true.
Other than a few rare cases, libraries compiled for 1.1 will run on the 2.0
CLR without any problems. Likewise going forward to .NET 3.0 and beyond:
existing libraries will continue to work.
All libraries that you bought from third parties need to upgraded, in
plain english: you have to buy them again.
No, not so.
You wil be forced to move to the latest version of the framework when
you want to buy a library fom a third party, because it will be
compiled against the latest version of the CLR, and it will probably
only run in that environment.
That will be true to some extent, just as it is with Windows versions.
Today, most .NET component vendors ship 1.1 and 2.0 versions of their
components (unless the component requires some 2.0 feature, of course).
Eventually they'll drop the 1.1 support, but it's in their best interest to
give you a smooth transition.
All libraries that you have developed yourself need to be recompiled
and tested again. Probably you'll need to maintain several versions,
unless you make sure that they are behaving well when running in an
earlier CLR.
Need to be recompiled? No. You'll probably want to recompile them for the
new framework eventually, but it's not required. Retested? Sure, just like
you would re-test your code when it's run on a new version of Windows.
At least there was some interoperability possible between the
framework and activeX, but now that we entered the world of managed
code, we are again facing the fact that (framework) dll's are not
backward compatible (back to the future of dll hell?)
..NET DLLs are backward compatible to at least as great a degree as plain
vanilla Win32 DLLs - more so, in some ways.
-cd