Introduction
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. The web is only used by ASP.NET whereas System. The 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.
How does Microsoft make the .NET Client Profile?
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. The smaller pieces of the .NET Framework bundle result in a smaller and more 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 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 is 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.