是否可以自动/轻松地将现有的 WPF 应用程序转换为 SilverLight?
5 回答
我认为您可以毫不费力地将 Silverlight 移植到 WPF。我花了 2 小时移植和应用程序,我花了 3 周时间编写。我会争辩说,花费的 2 个小时将归类为最小的努力。
当然,您需要创建一个新项目,将文件添加到新项目并调整它们。
由于 Silverlight 是 WPF 的子集,因此从 Silverlight 到 WPF 的分配比反过来更容易。
对于业务逻辑和非 UI 代码,您的代码应该几乎可以直接移植。我在身份验证方面遇到了一些小问题,因为 Silverlight 2 会在浏览器中获取任何身份验证信息,而在 WPF 中,您必须扮演自己的登录屏幕并管理 cookie 等。
对于 XAML,如果您不设置控件样式,它将直接移植。如果您为控件设置样式,则使用目前 WPF 中缺少的 Visual State Manager 会使事情变得有点棘手。您可以使用触发器在 WPF 中重新设置控件的样式,也可以使用John Gossman 为 WPF 完成的 VSM 实现。微软已经宣布他们将把 VSM 添加到 WPF 中,以使这两个框架更加兼容。
The perhaps most important reuse tough, is skills and experience. Since the two platforms are so similar you will be able to reuse all your skills in WPF.
I recently did a blog post about the Dive Log sample application and how I ported it from Silverlight 2 to WPF. Might give you some idea of the process.
并不真地。我同时发现了一些关于WPF 和 Silverlight的多目标选项的文章。目前,如果您不使用PRISM,要同时瞄准它们是一个相当大的挑战,幸运的是可以实现。
您需要记住的是,Silverlight 使用的库比 WPF 更小(因此更有限)。
回应评论:实际上,PRISM(v2)中已经支持silverlight。PRISM 的理念是为不仅使用 WPF 还使用Silverlight开发应用程序提供指导- Prism V2 正式称为 WPF 和 Silverlight 的复合应用程序指南。通过将 PRISM 用于 silverlight 功能,它可以保证您的代码可以在两个平台上运行,并且只需极少的更改(如果没有更改的话)(Visual Studio 的不同项目类型可能除外)。
但是,当然,如果您已经开始开发应用程序,则需要更改代码以使用 PRISM。
威尔和波格丹的回答是正确的。这里的关键词是“最小”。Rob Eisenberg 在这里列出了不同之处(尽管这是 RTW 之前的版本)。
WPF 和 Silverlight 的差异列表
不,Silverlight 在其自己的 CLR 精简版中运行。它也类似于 WPF,而不是 WPF。你必须做大量的工作来转换它。
时代变了。查看.NET 4.0 现在支持的可移植类库。您可以构建可在不同支持平台上使用的程序集:WP7、Silverlight WPF 甚至 XBOX 应用程序。
Here is a thread about this: http://silverlight.net/forums/t/3898.aspx