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 .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 application.

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 .NET framework bits. That smaller peices 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 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.