代码之家  ›  专栏  ›  技术社区  ›  Phil Wright

是否有针对Silverlight和WPF的经验?

  •  2
  • Phil Wright  · 技术社区  · 15 年前

    是否可以使用相同的源代码针对Silverlight和WPF进行开发?可能在必要的地方使用一些定义块。

    5 回复  |  直到 13 年前
        1
  •  3
  •   Franci Penov    15 年前

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

    (1)与通常的看法相反,SL不是WPF的适当子集。它有 some features that WPF does not have 尽管这些都在努力。

        2
  •  1
  •   Steven Robbins    15 年前

    顺便说一下,prism(模式和实践中的复合应用程序块)现在支持Silverlight,并且 C9 video 在WPF和Silverlight中使用代码的快速示例。

    我认为,如果你坚持使用mv-v-vm(或者其他类似的代码),那么你的很多后端代码将是可重用的,但是如果你想要一个完整的“丰富”的体验,XAML本身可能需要分叉,除非你愿意为WPF使用VSM测试版。

        3
  •  1
  •   Drake    15 年前

    我没有这方面的经验,但我使用了一个组件,该组件针对具有相同代码的WPF和Silverlight环境(只有很少的区别)。

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

    也许你可以看看

        4
  •  0
  •       15 年前

    您可以使用Visual Studio文件链接将WPF项目中的类包括在Silverlight中,但前提是它们不执行任何基于UI或XAML的操作(因为这通常是您发现两者之间不一致的地方)。

    因此,请遵循业务逻辑等。

        5
  •  0
  •   Jobi Joy    13 年前

    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可能需要重写,这取决于应用程序在不同平台上的视觉复杂性。