When working in an enterprise environment, utilising any software or package must be justified with logical reasons, feasible operational process and most importantly practical cost. Since the place I work for is only struggled to upgrade all PCs to Windows 7, and it is all to do with the discontinuation of XP, you can image it is a bit hard to simply roll out latest .NET 4.5 without any objections from IS and IT teams.
For this reason, and also luckily we have got XP SP 3 at least, a proven version of .NET 4 is more acceptable. Yet like its predecessor 3.5, the framework has two versions, one more conventional, and another called Client Profile. So what are the differences between them two and how to decide when to use any of them?
According to Microsoft:
"The .NET Framework 4 and earlier versions provided two deployment options: the full .NET Framework and the Client Profile, which was a subset of the .NET Framework that was optimized for client applications. The Client Profile enabled faster deployment and smaller app installation packages."
As obvious as it seems by their names.
So how does .NET 4 proof to work better under its targeting environment than .NET 4 (aka. .NET 4 Extended)?
1. Smaller in size
* The full one version is 48.1MB (32bit + 64bit)
* The Client Profile version is 41MB (32bit + 64bit)
2. Less server features to install (here is a list of features you miss in Client Profile)
* ASP.NET (not needed for desktop scenarios)
* Advanced WCF functionality
* .NET Framework Data Provider for Oracle
* MSBuild for compiling
3. Less points of failure while deploying, just by installing less
4. Less attack surface and further servicing events
That's why it is not so bad to be small sometimes, and Microsoft does provide more than what you need most of time.
For those who prefer VS 2010, here is a list of project templates targeting .NET 4 Client Profile by default.
- WPF Application
- WPF Browser Application
- WPF Custom Control Library
- WPF User Control Library
- Windows Forms Application
- Windows Forms Control Library
- Console Application
- Empty Project
- Window Service
- All Office 2007 and Office 2010 project templates
- WCF Service Library
- Activity Designer Library
- Activity Library
- Workflow Console Application
- F# Application
- F# Tutorial
For those who would like to move on and use VS 2012, unfortunately you don't get the headache of making sure your .NET framework is synchronised across the solution.
Because starting from .NET 4.5, the Client Profile has been discontinued! Instead, one the smaller in size, faster in deployment and units both framework versions .NET framework 4.5 is available. So it says by Microsoft, and we shall see in time.