Here is my scenario:
I am currently upgrading a web site I maintain from the .Net Framework 3.5 to 4.0. All of my assemblies with my code I changed the target framework on, they compiled fine and the site works.
Here’s my problem/question. I’m using Crystal Reports 2010 provided by SAP. Their library is called “Crystal Reports for the .Net Framework 4.0” but that library actually targets the 2.0 runtime (and what makes me even more grumbly is that the client controls have 1.1 dependencies… seriously).
I will run 3.5 (2.0 CLR) and 4.0 (CLR) together because I have to have Crystal Reports, but I want understand these issues:
- What performance impact if any does it have including this 2.0
assembly in an ASP.NET 4.0 site (does it cost additional overhead
having to load that)? - Have I completely missed something and are there actual CR2010 4.0
assemblies that target 4.0? - If I were isolate my wrapper class outside of my main business logic
library, would 2.0 be loaded/used only when it was called then (or
would the site load the assembly when the web-site is loaded into
memory causing them both to be loaded anyway)? Part of this is my
ignorance on how the different CLR’s are loaded/interact with each other.
Since .net 4 and the release of the DLR, .net installs multiple versions to run side by side. When v4 receives a pre v4 assembly, it will delegate the execution to the pre v4 framework (All pre v4 frameworks are fully backwards compatible)