Understanding .NET Client Profile


A .NET Client Profile is supported by .NET Versions 3.5 and 4.0. It is designed for client applications like Windows Forms. The Client Profile version of the .NET Framework is a lightweight subset of the framework. This enables quicker deployment and small installation packages.
Why .NET Client Profile
There are many types of applications and hence what is required by one application may not be necessarily required by other applications. For example System.Web is only used by ASP.NET whereas System.Web is of no use for Windows Forms applications.
Now if you think from a deployment point of view, you would want your installer package to be as optimized and small as possible, so it requires a minimum of what is required on the client machine. This can be done by the Client Profile flavor of .NET 3.5 and 4.0.
Web application projects don't support the Client Profile version of the Framework.
Let's see how Microsoft made the .NET Client Profile
To build a smaller footprint of a .NET package deployment, Microsoft chose to remove some of the features from the .NET framework bits. That smaller pieces of the .NET Framework bundle results in a smaller and optimized way of package deployment.
Features that Microsoft removed from the .NET Client Profile Project include ASP.NET features, MSBuild compiler features, Advanced WCF Features and Data Provider support for Oracle. By cutting these features from the .NET Framework; the package size becomes much smaller and optimized.
Why no more Client Profile with .NET 4.5 and onwards
Later with the release of .NET Framework 4.5, Microsoft has removed the Client Profile as shown in the image below.
The reason for the Client Profile being removed from .NET 4.5 is that it already optimized and tuned for quicker deployment and requires smaller disk space. Hence, the Client Profile is no longer required in your application being built using .NET 4.5 or higher.