While an interview I caught in words due to this question.
Suppose I have a DLL developed in a newer version of any technology (say in .NET) and I use an older machine and want to use that DLL in my application which is again say a .NET application. Will .NET framework allow me to use the DLL which target an older version of the framework? Or do I need to install a newer .NET framework?
I answered: we need to check machine compatibility for respective .NET framework and then it should allow us to use that dll. But it is possible only when compatible version and machine requirement fullfillment. Cross question was, but why do we need compatibility? If .NET framework has feature like CLR and dll nature is platform independent?
What should my answer be?
In short, the answer is:
Referencing an older (i.e. .NET 2.0) DLL from a newer (i.e. .NET 3.5) app, while still not a great idea, is a lot less problematic.
See the Version Compatibility in the .NET Framework topic on MSDN for more information.