1

Does anyone know why the .NET Framework version 4 is split into Client Profile and Extended?

Microsoft cites two reasons for having the Client Profile >

Can be serviced separately.

Does not need the .NET Framework 4 Extended component of the .NET Framework.

These seem flimsy at best to me, and I need to explain why I want both Client Profile and Extended installed on all our client desktops. My best answer now is "I don't know even know why Microsoft split them in the first place"

FrustratedWithFormsDesigner
  • 26,726
  • 31
  • 139
  • 202
Jonathan Beerhalter
  • 7,229
  • 16
  • 68
  • 78
  • 1
    Client Profile is much smaller. – John Saunders Oct 18 '11 at 20:06
  • .NET 4 Client Profile is 48MB, .NET 4 Full is 41MB - only 7MB difference. See http://www.hanselman.com/blog/TowardsASmallerNET4DetailsOnTheClientProfileAndDownloadingNET.aspx – g t Feb 03 '12 at 09:15
  • 1
    Here's a similar question with a bit more depth of the difference. http://stackoverflow.com/questions/2759228/difference-between-net-4-client-profile-and-full-framework-download Also, it seems to me that the Extended (or Full) framework is mostly needed on Servers, not client machines. – Mark Aug 24 '12 at 13:44

3 Answers3

6

Does your client application actually need the "full" framework? If not, only install the client part - which will be considerably smaller. That's the point of having the separate profile; it's a smaller install footprint and download time for applications which only use the parts of the framework typically required by client apps.

David
  • 208,112
  • 36
  • 198
  • 279
Jon Skeet
  • 1,421,763
  • 867
  • 9,128
  • 9,194
  • It's also my understanding (limited as it is) that the Client Profile target is more in line with Silverlight applications, which will be more inline with WinRT development. If something can be kept within the bounds of Client Profile, it's more likely that it will be easier to keep it portable going forward (unless things change, of course). – David Oct 18 '11 at 20:23
  • 2
    @David: Well, not really - the client profile still includes synchronous IO, full WPF and WinForms etc, as far as I'm aware. – Jon Skeet Oct 18 '11 at 20:38
  • I don't really know if I need it or not. I currently have an app targeting Framework 3.5. Theoretically I shouldn't need anything in Extended, but how can I know for sure without doing the upgrade to 4.0, which is gonna be a bit painful. – Jonathan Beerhalter Oct 18 '11 at 20:49
  • @JonathanBeerhalter: Why would the upgrade to 4 be painful? – Jon Skeet Oct 18 '11 at 21:06
3

The client profile began with .Net 3.5sp1. At this point, .Net had grown huge: (as much as 350Mb for common deployments, though 60Mb and 230Mb were more common)... large enough that deployment over the web was often slow and cumbersome. So for sp1 they introduced a client profile. This worked from a technical standpoint. They are able to successfully distribute only a portion of the framework, and developers can safely target just that portion of the framework. Unfortunately, for 3.5 the client profile failed to reduce the deployment size in a meaningful way. Yes, the client profile was smaller, even a lot smaller, but it was still too large to work well with web deployment scenarios.

Now with .Net 4, the client profile is down closer to 50Mb. That's still kinda large, but this new size, combined with increased average broadband speeds, is much more reasonable.

Joel Coehoorn
  • 399,467
  • 113
  • 570
  • 794
-2

Because Client Profile is easier to load, and contains the common features for client applications only.

It's easy to understand that the programs will load and run faster and you'll occupy less memory.

moongoal
  • 2,847
  • 22
  • 23
  • 3
    Eh? The CLR will only load the required assemblies. Performance has nothing to do with this. – Etienne de Martel Oct 18 '11 at 20:11
  • Try writing a program which references 20 random assemblies and running it on WinXP with both the FW versions. If you take it's time, it will be faster with CP. It's almost obvious that only the referenced assemblies will be loaded at start-up, I'm not talking about that. – moongoal Oct 18 '11 at 20:17