是否可以自动/轻松地将现有WPF应用程序转换为SilverLight?
答案 0 :(得分:9)
我认为你可以轻松地将Silverlight移植到WPF。我花了2个小时移植和申请我花了3个星期写作。我认为花费的2小时将归类为最小的努力。
当然,您需要创建一个新项目,将文件添加到新项目并进行调整。
由于Silverlight是WPF的一个子集,因此从Silverlight到WPF的分配比其他方式更容易。
对于业务逻辑和非UI代码,您的代码应该几乎直接移植。我在身份验证方面遇到了一些小问题,因为Silverlight 2会在浏览器中选择任何身份验证信息,而in WPF you have to role your own login screen and manage cookies etc。
对于XAML,如果不设置控件的样式,它将直接移植。如果你设置控件的样式,那么当前在WPF中缺少的Visual State Manager的使用会让事情变得有点棘手。您可以使用触发器在WPF中重新设置控件样式,也可以使用VSM implementation for WPF done by John Gossman。微软已经宣布他们将把VSM添加到WPF中,以使这两个框架更加兼容。
也许最重要的重用难点是技能和经验。由于这两个平台非常相似,因此您可以在WPF中重用所有技能。
我recently did a blog post about the Dive Log sample application and how I ported it from Silverlight 2 to WPF。可能会让你对这个过程有所了解。
答案 1 :(得分:8)
不是真的。我在同一时间找到了一些关于multi-targeting的WPF and Silverlight选项的文章。此时,如果你没有使用PRISM,那么要实现两者都是一个挑战,幸运的是可以实现。
您需要记住的是Silverlight使用的库比WPF更小(因此更有限)。
回应评论: 实际上,PRISM已经支持silverlight(v2)。 PRISM的想法是为开发应用程序提供指导,不仅使用WPF,而且还使用Silverlight - Prism V2正式被称为WPF和Silverlight的复合应用程序指南。 通过将PRISM用于Silverlight功能,如果none (except maybe the different project types for visual studio),它将为您提供保证,即您的代码可以在两个平台上进行最少的更改。
但是,当然,如果您已经开始开发应用程序,则需要更改代码以使用PRISM。
答案 2 :(得分:7)
Will和Bogdan的答案是正确的。这里的关键字是“minimal”。 Rob Eisenberg有一个差异列表here(虽然这是RTW之前的版本)。
答案 3 :(得分:6)
没有。 Silverlight运行在自己的CLR版本中。它也是WPF,而不是WPF。你需要做大量的工作来转换它。
时代变了。查看{4.0}现在支持的Portable Class Libraries。您可以构建可在不同支持的平台上使用的程序集:WP7,Silverlight WPF甚至XBOX应用程序。
答案 4 :(得分:0)
这是一个关于此的主题: http://silverlight.net/forums/t/3898.aspx