.NET客户端配置文件是否值得定位?
最近,我一直在寻找针对正在构建的WPF应用程序的.NET客户端配置文件的目标。但是,我很沮丧地注意到客户端配置文件仅对以下操作系统配置有效:
- Windows XP SP2 +
- Windows Server 2003编辑:似乎客户端配置文件不会安装在Windows Server 2003上。
另外,客户端配置文件对于x64或者ia64版本无效。并且如果已安装任何早期版本的.NET Framework,也不会安装。
我想知道将额外的OS配置添加到测试矩阵中的努力是否值得。是否有任何可用的指标来说明可以从客户端配置文件中受益的用户百分比?我相信,一旦安装了.NET Framework,就会将额外的信息作为Web请求的一部分传递到Web服务器,以表明该框架可用。当然,我想如果没有安装.NET Framework的Windows XP SP2用户将会是很多人。这将成为我的申请是否专门针对这些人的问题。
还有其他人确定针对这些特定用户是否值得付出额外的努力?
编辑:如果我们使用客户端配置文件中未包含的功能,似乎可能会收到编译器警告。正如我通常将警告作为错误运行时一样,这有望足以最小化此配置中的测试。当然,仍然需要对该配置进行测试,但是它应该与测试安装/初始运行是否可以在带有SP2 +的XP上运行一样简单。
解决方案
回答
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.
在IE上,是的。它将.NET Framework版本作为UA字符串的一部分发送,例如:
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; .NET CLR 2.0.50727).
回答
最终,如果我们将客户端配置文件作为目标,它不会伤害任何用户。这是因为客户端配置文件是.net Framework v3.5 sp1的子集,并且如果已经安装了v3.5 sp1,则无需安装任何内容。
客户端配置文件中的程序集与完整框架的二进制文件相同,因此,除非我们动态地加载程序集,否则我们无需进行任何其他测试。
我的想法是,除非必须使用不在客户端概要文件中的程序集,否则应将其作为目标。
至于操作系统要求,WPF不能在XP sp2之前的版本上运行,因此,如果我们需要在其他操作系统上运行,则无论如何都必须使用WinForms。
编辑:
On IE, yes. It sends the .NET Framework version as part of the UA string, e.g.:
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)
回答
我认为,尽可能多地定位用户很重要,我们是否曾经考虑过完全不使用托管代码来交付应用程序?我们可以使用诸如http://www.xenocode.com/或者http://www.remotesoft.com/linker/之类的工具将托管应用程序转换为纯机器代码,因此客户端上不需要任何.NET框架机器。