360

The Microsoft .NET Framework 4.0 full installer (32- and 64-bit) is 48.1 MB and the Client Profile installer is 41.0 MB. The extracted installation files are 237 MB and 194 MB respectively, and once installed, they are 537 MB and 427 MB.

This is a difference of 110 MB. What difference is there between the two packages?

When is it preferable to install the Client Profile instead of the full .NET Framework?

Peter Mortensen
  • 28,342
  • 21
  • 95
  • 123
Click Ok
  • 8,402
  • 16
  • 66
  • 98
  • 52
    A 7.1 MB difference? Developers get frustrated with [compile errors](http://stackoverflow.com/questions/4764978/the-type-or-namespace-name-could-not-be-found) because Microsoft thought 7.1 MB was worth splitting it in two? Awesome. – JYelton Jun 28 '12 at 21:03
  • 18
    Old thread but with the [.NET framework 4.5, the client profile has been discontinued](http://msdn.microsoft.com/en-us/library/cc656912.aspx) – bart s Mar 07 '13 at 07:50
  • 14
    `A 7.1 MB difference? Developers get frustrated with compile errors because Microsoft thought 7.1 MB was worth splitting it in two?`   That’s just the *installer*. When unpacked, it’s 43MB more. Once it’s installed, it’s 110MB more. You can forget about embedded or low-profile systems; cost and architecture aren’t the only reasons Rπ doesn’t support Windows. – Synetech May 06 '13 at 02:50

4 Answers4

365

What's new in .NET Framework 4 Client Profile RTM explains many of the differences:

When to use NET4 Client Profile and when to use NET4 Full Framework?
NET4 Client Profile:
Always target NET4 Client Profile for all your client desktop applications (including Windows Forms and WPF apps).

NET4 Full framework:
Target NET4 Full only if the features or assemblies that your app need are not included in the Client Profile. This includes:

  • If you are building Server apps. Such as:
    o ASP.Net apps
    o Server-side ASMX based web services
  • If you use legacy client scenarios. Such as:
    o Use System.Data.OracleClient.dll which is deprecated in NET4 and not included in the Client Profile.
    o Use legacy Windows Workflow Foundation 3.0 or 3.5 (WF3.0 , WF3.5)
  • If you targeting developer scenarios and need tool such as MSBuild or need access to design assemblies such as System.Design.dll

However, as stated on MSDN, this is not relevant for >=4.5:

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, such as smaller download size and faster deployment, have eliminated the need for a separate deployment package. The single redistributable streamlines the installation process and simplifies your app's deployment options.

Callum Watkins
  • 2,444
  • 2
  • 27
  • 42
Cameron MacFarland
  • 65,569
  • 20
  • 98
  • 130
  • 12
    This blog entry also talks about the different framework file sizes: http://www.hanselman.com/blog/TowardsASmallerNET4DetailsOnTheClientProfileAndDownloadingNET.aspx – M. Dudley May 12 '10 at 19:58
56

You should deploy "Client Profile" instead of "Full Framework" inside a corporation mostly in one case only: you want explicitly deny some .NET features are running on the client computers. The only real case is denying of ASP.NET on the client machines of the corporation, for example, because of security reasons or the existing corporate policy.

Saving of less than 8 MB on client computer can not be a serious reason of "Client Profile" deployment in a corporation. The risk of the necessity of the deployment of the "Full Framework" later in the corporation is higher than costs of 8 MB per client.

Community
  • 1
  • 1
Oleg
  • 217,934
  • 30
  • 386
  • 757
  • The link in Cameron's answer specifies a bunch of reasons. – Ade Miller May 10 '10 at 08:00
  • 13
    @Ade. Of cause we are speaking all about the same things. The differences between two packages are well known. I want only clear say, that the only serious reason of usage of "Client Profile" is the **requirement to deny ASP.NET** on the client computers. All other technical details are not really important. – Oleg May 10 '10 at 09:06
  • @Martheen: Thanks! I'm glad that you agree with my arguments. – Oleg Dec 07 '12 at 09:45
  • 1
    `Saving of less then 8 MB…`   That’s only the installer; it’s 110MB more once installed. – Synetech May 06 '13 at 02:52
  • 2
    110Mb-8Mb in this age of 1Tb drives, etc. who cares? – Liam Jun 17 '13 at 13:50
  • 1
    @Oleg, If your answer is true, then why does .NET 4.5 onwards no longer support Client Profile? – Pacerier May 12 '14 at 19:24
  • I really want to add something to this: while this may be true inside a corporation, in a B2C scenario, adding 8Mb to an installer (or making customers download much more data than they really need with a web installer) can be a deal-breaker. Since only .Net 4.0 is supported on WinXP, and it can be still a huge portion of the audience depending on your product (about 10% for us last I checked), this small difference can be really important. – thomasb Aug 11 '15 at 13:02
  • @Pacerier : the reason is stated in Cameron's answer: the full .Net 4.5 installer has been deemed small enough to not create a smaller one. – thomasb Aug 11 '15 at 13:03
  • @cosmo0: I think that the main reason of "Client Profile" instead of "Full Framework" only the case when one want **denying of ASP.NET on the client machines**. The reducing of the size of setup sources is not a real problem in my opinion. All my customers have installed full framework only. So I understand that there are now **only one full** .Net 4.5 installer and **one** .Net 4.6 installer (see [KB3045557](https://support.microsoft.com/en-us/kb/3045557) or [here](http://blogs.msdn.com/b/dotnet/archive/2015/07/20/announcing-net-framework-4-6.aspx)). "Client Profile" is dead. – Oleg Aug 11 '15 at 14:22
48

A list of assemblies is available at Assemblies in the .NET Framework Client Profile on MSDN (the list is too long to include here).

If you're more interested in features, .NET Framework Client Profile on MSDN lists the following as being included:

  • common language runtime (CLR)
  • ClickOnce
  • Windows Forms
  • Windows Presentation Foundation (WPF)
  • Windows Communication Foundation (WCF)
  • Entity Framework
  • Windows Workflow Foundation
  • Speech
  • XSLT support
  • LINQ to SQL
  • Runtime design libraries for Entity Framework and WCF Data Services
  • Managed Extensibility Framework (MEF)
  • Dynamic types
  • Parallel-programming features, such as Task Parallel Library (TPL), Parallel LINQ (PLINQ), and Coordination Data Structures (CDS)
  • Debugging client applications

And the following as not being included:

  • ASP.NET
  • Advanced Windows Communication Foundation (WCF) functionality
  • .NET Framework Data Provider for Oracle
  • MSBuild for compiling
Richard Szalay
  • 78,647
  • 19
  • 169
  • 223
20

Cameron MacFarland nailed it.

I'd like to add that the .NET 4.0 client profile will be included in Windows Update and future Windows releases. Expect most computers to have the client profile, not the full profile. Do not underestimate that fact if you're doing business-to-consumer (B2C) sales.

Peter Mortensen
  • 28,342
  • 21
  • 95
  • 123
Simon P.
  • 502
  • 1
  • 3
  • 7