【问题标题】:Using Silverlight with C#?在 C# 中使用 Silverlight?
【发布时间】:2010-07-21 02:38:35
【问题描述】:

我想开始使用 C# 和 Silverlight 进行编程。我已经阅读了很多关于 WPF 并且非常喜欢它(从我狭隘的角度来看)

这是我的问题:如果我正确理解 WPF 原理,那么我可以将 UI 与逻辑分开。

我还可以在我的应用程序中将逻辑与动画分开(使用 Silverlight 进行动画,C# 用于逻辑)

我的理解正确吗?

现在我正在浏览有关 Silverlight 的一些教程,但我希望获得一些关于如何使这些都相互交流的指示。在我的 WPF 应用程序中,如何使用 Silverlight 来制作动画?

如果有人有一本好书或资源,我真的很想读。感谢您的帮助:)

我拥有的工具是:Visual Studio 2010 和 Expression Studio 3(如果我应该使用它而不是版本 3,我可以获得 4 并安装试用版)

【问题讨论】:

    标签: c# wpf silverlight


    【解决方案1】:

    这里有一点误解。

    您不会在 WPF 应用程序中使用 Silverlight。这确实是一个或另一个 - Silverlight 是 WPF 的替代平台。

    如果您使用 WPF,则可以将 WPF 用于所有动画。如果您想在浏览器中运行,和/或拥有 silverlight 的部署优势(跨平台、简单部署等),那么以 Silverlight 为目标。 Silverlight 开发类似于 WPF 开发(许多概念是相同的),但它是一个轻量级平台,有点像 WPF 减去一些功能(也加入了一些额外功能)。

    【讨论】:

    • 嗯,可以在 WPF 应用程序中使用 Silverlight...但我认为没有任何理由这样做
    • @Thomas:是的,它是——尽管它充其量是非常笨重的。您实际上是在“托管”silverlight,它是整个运行时,在 WPF 应用程序中,您并没有使用 Silverlight 来“动画”WPF,不过,这正是 OP 的想法……
    • 我假设一个非平凡的应用程序具有一些分离的 c# 域模型实现是可重用的,并且 WPF 和 Silverlight 的视图必然不同,但是您的 ViewModels 怎么样?您是否尝试为两个平台重用代码,再次假设您的应用程序有理由同时在两个平台上,或者有不同的 vm 实现?干杯
    • @Berryl:您可以重用大量代码,特别是如果您坚持使用 WPF 的 Silverlight 子集。您甚至可以重用视图。查看 Prism 的源代码以了解一种方法(使用部分类和 2 个项目,但使用相同的 .cs 文件等)。
    【解决方案2】:

    查看www.silverlight.net 有很多不错的视频教程。

    【讨论】:

      【解决方案3】:

      Silverlight 是 XAML 和 WPF 技术的基于浏览器的实现。它代表 WPF 功能的一个子集。因此,您只需使用 WPF 即可完成桌面应用程序所需的一切。当您需要创建基于浏览器的应用程序时,您获得的经验将转化为 Silverlight 开发。

      【讨论】:

      • Silverlight 不再只是基于浏览器。它也运行 OOB。
      • @Reed,感谢您的澄清,我知道这一点。重点仍然是silverlight 是一个浏览器提供的平台,它具有WPF 功能的子集。这种区别很重要,因为使用完全不同的运行时来托管 silverlight 程序集,而 .net 4.0 允许 .net 具有一些引用 silverlight 程序集的能力,但类库的重叠很小。
      • @Berryl OOB = 浏览器外,或 OOBE = 浏览器体验外,请参阅channel9.msdn.com/posts/Charles/…
      【解决方案4】:

      是的,您需要在 Silverlight 或 WPF 之间做出选择。对于繁重的 Windows 图形或 GUI 客户端,我会选择 WPF。如果您正在寻找更多的 Web 应用程序。由于配置 WPF XBAP 应用程序的困难,我会选择 Silverlight。我可能会尝试在silverlight中编写它,然后如果遇到我在silverlight中无法完成的事情,请将其转换为wpf以从那里开始,因为silverlight重量更轻且跨平台。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-13
        • 2011-03-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多