Differences between Microsoft .NET 4.0 full Framework and Client Profile
Solution 1:
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.
Solution 2:
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.
Solution 3:
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