37
votes

In Visual Studio 2008, the target framework settings for a project are

  • .NET Framework 2.0
  • .NET Framework 3.0
  • .NET Framework 3.5

However, in Visual Studio 2010 they are

  • .NET Framework 2.0
  • .NET Framework 3.0
  • .NET Framework 3.5
  • .NET Framework 3.5 Client Profile
  • .NET Framework 4
  • .NET Framework 4 Client Profile

What do the Client Profile settings mean?

Edit

A little more experimentation shows that with MVC, WebForms and WCF projects you don't get the Client Profile options. When creating WinForms and Console applications, the default target framework is .NET 4 Client Profile. Which makes sense.

3
Note: Starting with the .NET Framework 4.5, the Client Profile has been discontinued and only the full redistributable package is available. Optimizations provided by the .NET Framework 4.5, ... have eliminated the need for a separate deployment package. ...Martin Ba
Useful comment, thanks @MartinBa!Richard Ev

3 Answers

43
votes

The client profile is a smaller version of the full .NET framework that contains only the more commonly used content. Scott wrote a nice post about this. Here and here is an official introduction.

The client profile was added recently, so VS 2008 does not know about it yet. The client profile is one of the major features that come with .NET 4 and VS 2010. Since the Client Profile is a subset of the full .NET 4 framework, you don't need to install it if you already got the full .NET 4.

It can be an advantage to develop against the Client Profile since it exists on more machines than the full framework (and it is smaller in download size for your customers).

The disadvantage that comes along naturally - it does not include everything. If you are developing a server application or a program that uses uncommon parts of the framework, you'll need the full framework in any case. Typical client programs, however, are likely satisfied with the Client Profile.

4
votes

The Client Profiles are smaller, more compact versions of the .Net Framework. More info here.

4
votes

It is a subset of the .NET framework for CLIENT applications (i.e. applications installed on the client computer).

As such, they do not incorporate server technologies. THis allows the client download to only install a smaller part.

Server technologies are for example ASP.NET.

Using ".net client profile" as search on Google, first link leads to http://msdn.microsoft.com/en-us/library/cc656912.aspx which has a detailed explanation.

Also the local .NET documentation (F1 - I hope you are aware this exists) has the same content.