Full and Partial Profiles

What is the difference between the client and full framework profiles? Which one should I target?

The use of profiles has changed considerably from .Net 3.5 to .Net 4. In .Net 3.5 a client profile was introduced for Windows XP to be able to have a small web download that could run many applications that depended on new framework features. The full download of .Net 3.5 was very large. In .Net 4 the client profile is a more deliberate factoring of the framework into two pieces.

The client profile component is sufficient to run most applications. The features not included in the client profile are for programming ASP.NET applications, development tools, and libraries that have been deprecated. ASP.NET application development includes the IIS hosting and some of the REST components of WCF.

The extended component contains the remainder of the framework features. The full profile corresponds to having both the client profile component and extended component installed. Since the client profile component contains most of the features in the framework, the client profile is only marginally smaller than the full framework. However, both profiles are much smaller than .Net 3.5.

The client profile will be more broadly deployed so you should target that if possible. Client applications should have no problems with the client profile while a portion of service applications will need to require the full profile.