任何有过Silverlight& WPF?

时间:2009-02-18 07:11:48

标签: wpf silverlight

是否可以使用相同的源代码针对Silverlight和WPF进行开发?也许在必要时使用一些#define块。

5 个答案:

答案 0 :(得分:3)

理论上它应该是可行的。这对代码来说不是一个大问题。但是,您必须非常小心使用XAML并仅使用WPF和SL(1)的交叉子集,因为XAML没有#if/#endif

(1)与普遍看法相反,SL不是WPF的合适子集。它有some features that WPF does not have,但正在进行中。

答案 1 :(得分:1)

顺便提一下,PRISM(来自模式和实践的复合应用程序块)现在支持Silverlight,并且有一个C9 video,其中包含使用WPF和Silverlight中的代码的快速示例。

我认为如果你坚持使用MV-V-VM(或类似的东西)那么你的许多后端代码将是可重用的,但是如果你想要一个完整的“富有”的话,可能需要分叉XAML本身经验,除非您愿意为WPF使用VSM测试版。

答案 2 :(得分:1)

我没有这方面的经验,但是我使用了一个以相同代码同时针对WPF和Silverlight环境的组件(只有很少的差异)。

该组件是来自Visifire的图表,它是开源

也许你可以看看它

答案 3 :(得分:0)

您可以使用Visual Studio文件链接来包含Silverlight中的WPF项目中的类 - 但前提是它们不执行任何基于UI或XAML的内容(因为这是您通常会发现两者之间的不一致)...

因此,请将其保留为业务逻辑等。

答案 4 :(得分:0)

Flashcards.Show应用程序是这个WPF / SL / WP7代码共享和跨平台可能性的一个很好的例子。 http://windowsteamblog.com/windows_phone/b/wpdev/archive/2011/03/03/flashcards-show-planning-a-cross-platform-solution.aspx

跨平台的概念非常简单,因为一切都适用于.NET和类似的XAML绑定系统。我的建议是在MVVM和其他抽象方面投入更多时间在应用程序的体系结构上,以隔离平台依赖性。因此,大部分代码可以重复使用,而某些XAML可能需要重写,这取决于不同平台中应用程序的视觉复杂性。