.NET 3.5 SP1 introduces a new setup package option for developers building .NET client applications called the ".NET Framework Client Profile Preview." This provides a new setup installer that enables a smaller, faster, and simpler installation experience for .NET client applications on machines that do not already have the .NET Framework installed.

The .NET Framework Client Profile Preview setup contains just those assemblies and files in the .NET Framework that are typically used for client application scenarios. For example: it includes Windows Forms, WPF, and WCF. It does not include ASP.NET and those libraries and components used primarily for server scenarios. This setup package 28mb in size, and it can be downloaded and installed much quicker than the full .NET Framework setup package (around 6 minutes for most users on a typical broadband connection).

The assemblies and APIs in the .NET Framework Client setup package are 100% identical to those in the full .NET Framework setup package (they are literally the same binaries). This means that applications can target both the Client Profile Preview and full profile of .NET 3.5 SP1 (no recompilation required). All .NET applications that work using the .NET Client Profile Preview setup automatically work with the full .NET Framework.

A developer can indicate that the client application they are building supports both the .NET Framework Client Profile Preview and the full .NET Framework by pulling up the project properties page for a client application within VS 2008 SP1. Within the project properties page they can select a new checkbox that indicates it only requires those assemblies included in the .NET Framework Client Profile Preview:

image

VS 2008 will then ensure that the project can only reference those assemblies shipped in the Client Profile Preview setup package (and it will generate a compile error if you try and use a type in an assembly not included in the client redist). The compiled client application will then run on machines that have both the full .NET Framework installed, as well as machines that only have the .NET Framework Client Profile Preview installed.

If you have a machine that only has the .NET Framework Client Profile Preview installed, and you try and run a .NET application on it that did not mark itself as supporting the .NET Framework Client Profile Preview, then the CLR will refuse to run the application - and will instead prompt the end-user to upgrade to the full .NET Framework package. This ensures that applications always run correctly - and that developers do not need to worry about missing assembly exceptions at runtime if a user tries to run an application that requires the full .NET Framework on a machine that only has the .NET Framework Client Profile Preview installed.

A large class of .NET client applications will be able to use this new .NET Client Profile Preview setup to significantly speed up their installation, and enable a much more consumer friendly experience.