Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

.Net 3.5 Dll's in a .Net 4.0 application any issues

We are planning to move a legacy application which uses enterprise library 4.1 which uses .Net 3.5 in a .Net 4.0 web application.

We are wondering will this cause any performance problems? Will the .net 3.5 code run in a different application pool?

like image 527
Shiraz Bhaiji Avatar asked May 18 '11 20:05

Shiraz Bhaiji


2 Answers

I have finally found answer to this. The performance problem I previously mentioned my team discovered is due to something else. Not loading .NET 3.5 on .NET 4.0 App Domain.

Reading this article: http://msdn.microsoft.com/en-us/magazine/ee819091.aspx

In-Proc SxS does not solve the compatibility problems faced by library developers. Any libraries directly loaded by an application--either via a direct reference or an Assembly.Load--will continue to load directly into the runtime and AppDomain of the application loading it. This means that if an application is recompiled to run against the .NET Framework 4 runtime and still has dependent assemblies built against .NET 2.0, those dependents will load on the .NET 4 runtime as well. Therefore, we still recommend testing your libraries against all version[s] of the framework you wish to support. This is one of the reasons we have continued to maintain our high level of backward compatibility.

So, there's no problem loading .NET 3.5 assemblies directly into .NET 4.0 apps without recompiling them into .NET 4.0.

like image 147
oazabir Avatar answered Sep 19 '22 12:09

oazabir


4.0 is a superset of 3.5 so there should be no challenges. All of you 3.5 code will work as it had when built with VS 2008. You need to follow this first
There is a MSDN link What's New in the .NET Framework 4
Migration Guide to the .NET Framework 4
.NET Framework 4 RTM Application Compatibility Walkthrough

If you do a Google search you'll find many articles titled something like "What's new in 2010". You won't find things like "What's Different"

Except for this little tidbit From MSDN:

The .NET Framework 4 is highly compatible with applications that are built with earlier .NET Framework versions, except for some changes that were made to improve security, standards compliance, correctness, reliability, and performance.

The .NET Framework 4 does not automatically use its version of the common language runtime to run applications that are built with earlier versions of the .NET Framework. To run older applications with .NET Framework 4, you must compile your application with the target .NET Framework version specified in the properties for your project in Visual Studio, or you can specify the supported runtime with the Element in an application configuration file.


like image 36
jams Avatar answered Sep 18 '22 12:09

jams