views:

363

answers:

3

I've recently been looking into targeting the .NET Client Profile for a WPF application I am building. However, I was frustrated to notice that the Client Profile is only valid for the following OS configurations:

  • Windows XP SP2+
  • Windows Server 2003 Edit: Appears the Client Profile will not install on Windows Server 2003.

In addition, the client profile is not valid for x64 or ia64 editions; and will also not install if any previous version of the .NET Framework has been installed.

I'm wondering if the effort in adding the extra OS configurations to the testing matrix is worth the effort. Is there any metrics available that state the percentage of users that could possibly benefit from the client profile? I believe that once the .NET Framework has been installed, extra information is passed to a web server as part of a web request signifying that the framework is available. Granted, I would imagine that Windows XP SP2 users without the .NET Framework installed would be a large amount of people. It would then be a question of whether my application targeted those individuals specifically.

Has anyone else determined if it is worth the extra effort to target these specific users?

Edit: It seems that it is possible to get a compiler warning if you use features not included in the Client Profile. As I usually run with warnings as errors, this will hopefully be enough to minimise testing in this configuration. Of course, this configuration will still need to be tested, but it should be as simple as testing if the install/initial run works on XP with SP2+.

+1  A: 

I believe that once the .NET Framework has been installed, extra information is passed to a web server as part of a web request signifying that the framework is available.

On IE, yes. It sends the .NET Framework version as part of the UA string, e.g.:

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; .NET CLR 2.0.50727).
Sören Kuklau
+4  A: 

Ultimately, it will not hurt any users if you target the Client Profile. This is because the client profile is a subset of the .net framework v3.5 sp1, and if v3.5 sp1 is already installed you don't need to install anything.

The assemblies in the client profile are the same binaries as the full framework, so unless you're loading assemblies dynamically, then you shouldn't need to do any additional testing.

My thinking is that unless you must use assemblies which are NOT in the client profile, then you should target it.

As for the OS requirements, WPF won't run on pre-XP sp2, so if you need to run on other OSes, then you'll have to use WinForms anyways.

EDIT:

On IE, yes. It sends the .NET Framework version as part of the UA string, e.g.:

Actually so does FF3+3.5sp1:

Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1 (.NET CLR 3.5.30729)

Eric Haskins
+1  A: 

I think it is important to target as many users as you can, have you ever considered shipping your application without any managed code at all? You can convert your managed applications to pure machine code using tools such as http://www.xenocode.com/ or http://www.remotesoft.com/linker/ so you won't need any .NET framework on the client machines at all.

Erick Sgarbi