将WPF应用程序转换为SilverLight



是否可以自动/以最小的工作量将现有的WPF应用程序转换为SilverLight?

我认为您可以毫不费力地将Silverlight移植到WPF。我花了2个小时移植和应用程序,我花了3周的时间编写。我认为,这两个小时的花费将被归类为最小的努力。

当然,您需要创建一个新项目,将文件添加到新项目中并对其进行调整。

由于Silverlight是WPF的一个子集,因此从Silverlight到WPF的分配比其他方式更容易。

对于业务逻辑和非UI代码,您的代码应该几乎直接移植。我在身份验证方面遇到了一些小问题,因为Silverlight 2会在浏览器中获取任何身份验证信息,而在WPF中,你必须扮演自己的登录屏幕角色并管理cookie等。

对于XAML,如果您不设置控件样式,它将直接移植。如果您对控件进行样式设置,那么WPF中目前缺少的Visual State Manager的使用将使事情变得更加棘手。您可以使用触发器在WPF中重新设置控件的样式,也可以使用John Gossman完成的WPF的VSM实现。微软宣布,他们将把VSM添加到WPF中,以使这两个框架更加兼容。

也许最重要的再利用困难,是技能和经验。由于这两个平台非常相似,您将能够在WPF中重用您的所有技能。

我最近写了一篇关于Dive Log示例应用程序的博客文章,以及我如何将它从Silverlight2移植到WPF。可能会让你对这个过程有一些了解。

不是。我同时发现了一些关于WPF和Silverlight的多目标选项的文章。目前,如果你不使用PRISM,那么同时针对这两种情况是一个相当大的挑战,幸运的是可以实现。

您需要记住的是,Silverlight使用的库比WPF更小(因此更有限)。

针对评论:事实上,PRISM(v2)中已经支持silverlight。PRISM的理念是为开发应用程序提供指导,不仅要使用WPF,还要使用Silverlight——PRISM V2正式名称为WPF和Silverlight的复合应用程序指南。通过将PRISM用于silverlight功能,它可以保证您的代码在两个平台上都能以最小的更改运行,如果没有更改的话(除了visual studio的不同项目类型)。

但当然,如果您已经开始开发应用程序,则需要更改代码以使用PRISM。

Will和Bogdan的回答是正确的。这里的关键词是";最小";。Rob Eisenberg在这里列出了一系列不同之处(尽管这是在RTW之前)。

WPF&Silverlight

否。Silverlight在其自己的CLR精简版中运行。它也类似于WPF,而不是WPF。你必须做相当多的工作才能转换它。


时代变了。查看.NET 4.0现在支持的可移植类库。您可以构建可在不同支持的平台上使用的程序集:WP7、Silverlight WPF甚至XBOX应用程序。

这里有一个关于这方面的线程:http://silverlight.net/forums/t/3898.aspx

相关内容

  • 没有找到相关文章