According to the .NET Blog, .NET Framework 4.5 is an in-place update that replaces .NET Framework 4.0 (rather than a side-by-side installation). The goal is for .NET 4.5 to be fully backward compatible with applications built for .NET 4.0 (.NET 3.5 and .NET 4.5 will be side-by-side).
One of the first things you’ll notice about .NET 4.5 is the version number of the CLR (4.0.30319) is the same as .NET 4.0; this is the practice used by other in-place updates. (read more)
In fact, if you compare a system with .NET 4.5 with a system with .NET 4.0 you’ll see that 4.5 is just an update to 4.0:
|Registry key: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full |
|Value ||.NET 4.0 ||.NET 4.5 |
|Version ||4.0.30319 ||4.5.40805 |
|CBS ||1 ||1 |
|TargetVersion ||4.0.0 ||4.0.0 |
|Install ||1 ||1 |
|Servicing ||0 ||0 |
|Release || ||368485 |
|InstallPath ||C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ ||C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ |
One of the major additions to the framework is the support for the Task-based Asynchronous Pattern. All classes with asynchronous APIs have be augmented with a Task-based asynchronous API.
Task exception handling has also changed in .NET 4.5 to accommodate the new async keywords in C# and VB. (read more)