【原文地址】Single source code base for Silverlight and WPF solutions
【原文发表日期】11 March 08 01:28

Mix08上,有几位向我询问了关于建立一个能够同时为Silverlight与WPF所用的,单一的代码库的可能性。在大家的脑海中所设想的场景,是提供一个Silverlight构建的解决方案,它要满足*所有*可能的用户。同时,还专门为某些用户提供一个完全由WPF (.NET Framework 3.0 或 3.5)所构建的,真正的丰富的解决方案。

这是一个对Microsoft用户体验平台来说显而易见的好处……我们也为了在Silverlight与WPF之间获得一个平滑的持续性而努力工作着……基本上来说,如果在Silverlight上能够正常工作,那么你就应该确信在WPF上也会运作正常。

我和David Anson (Silverlight 2 控件的开发者之一) 聊过天,并且他提到,在当前发布的版本中,ListBox与ScrollViewer正是以这种方式编写的!是的,为了彻底检验这种持续性的信息,David以一种能够让ListBox与ScrollViewer能够同时运行(并已通过单元测试)在Silverlight与WPF上的方式创建了Silverlight版本的这两个控件。

虽然现在来说,这个消息本身并不是那么有趣,因为WPF已经有了ListBox与ScrollViewer控件。但它确实可以作为一个好的测试案例,来示范你怎样创建能够同时支持Silverlight与WPF的控件与应用。

ListBox and ScrollViewer

因为我们已经发布了Silverlight控件的源码与单元测试,你可以自己查看它

另外,David发布了一篇帖子详细地描述了他做的工作和理由,并且发布了对应的测试项目。你同样可以试验一下。

友情提示,确认你已经查看了ScottGu的Silverlight 2 教程最后一个步骤,注意从中创建一个WPF版本的应用对他来说有多简单。

Digg sample in WPF