WPF客户端开发流水账二三事——(一)兼容篇
嗯,开篇就是一个,很容易就,离题万里拐成巨型车祸现场的选题。

首先,什么是WPF?
缩略一段官方说明
WPF是.NET Framework的一个子集,开发者可用.Net Framework编程语言,如C#或Visual Basic,创建Windows桌面客户端应用程序
那,什么又是.Net Framework?
.NET Framework是由微软开发的主要在Windows上运行的软件框架
自2006年起,初代WPF(WPF 3.0)纳入DotNet全家桶(大雾)进入.Net大家庭以来,WPF的版本追随着母体.NET Framework的版本不断迭代,WPF的兼容性也与.NET Framework的兼容性密不可分。

WPF到底可以在哪些平台愉快的玩耍呢?
.Net Core?跨平台?
官方的说法是

emmmmm,WPF是基于Windows技术构建的,.Net Core不支持

下一个
Windows全平台?
先看两张图


从WPF层面说,WPF最重要的元属性DataBinding是从3.5版本才开始有的;而无论从稳定性还是API的丰富性上来说,.Net 4.0+是更优选择
从.Net FrameWork层面来说,XP系统原生不自带可供WPF运行的.Net版本。虽然经过微软的不断迭代(听说最高XP SP3可安装.Net 4.0版本,尚未找到官方明细佐证),独立安装.Net FrameWork,也可以运行 WPF程序。但由于底层组件的缺失(比如从VISTA才开始引进的Windows Aero效果),无论从UI体验还是运行效率,与Win7+系统上的运行体验相差甚远。
综上,如果想获得一个较佳的用户体验,发挥WPF基本的优势,请选择Win7及以上+.Net 4.0及以上的组合套装——假如你面对的是一个同意重装系统的用户

更多槽点?
回到标题,WPF客户端开发可远远不是只用WPF就能解决的,如果我们需要开发报表,我们可能需要用到Office组件;如果我们要开发客户端内嵌网页,我们可能需要和IE的兼容性打交道。


如果有谁能把微软全系产品的历史出一本书,不知道5000页够不够发挥?
