Compatibility : .Net 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
.Net 4 also supports much more language in its client profile than its earlier versions.
Moreover it supports in process side by side execution which enables it to compile and run a project using components based on .net 4 as well as add ins based on earlier versions.
Performance monitoring : Using Earlier versions of the .NET Framework it was not possible to determine whether the application was affecting other applications or not.But .net 4 enables us to get processor usage and memory usage estimates per application domain.We can monitor CPU and memory usage of individual application domains.
Garbage Collection : The .NET Framework 4 provides background garbage collection. This feature replaces concurrent garbage collection in previous versions and provides better performance and memory utilization.
Other new features :- It support big integers(system.numerics.biginteger) which supports all the standard integer operations, including bit manipulation.
- it support complex numbers(system.numerics.complex) which supports arithmetic and trigonometric operations with complex numbers.
- It supports the feature of identifying a 64-bit operating system and a 64-bit process.
And there are lots more features packed into .NET 4 framework which makes a programmers friendly heaven.