将 Silverlight 移植到 WPF

Posted

技术标签:

【中文标题】将 Silverlight 移植到 WPF【英文标题】:Porting Silverlight to WPF 【发布时间】:2016-07-13 22:52:57 【问题描述】:

我有一个大型 Silverlight LOB 应用程序,我正试图将它移植到桌面 WPF 应用程序(因为 Silverlight 的死机缓慢。)

xaml 和 c# 代码移植很好,但原始应用程序使用 WCF RIA 服务。 (超过 30,000 行。)我的问题是,我可以在我的 WPF 应用程序中使用相同的 WCF RIA 服务吗?

谢谢

【问题讨论】:

【参考方案1】:

这里有一些资源可以用来决定你是否想走这条路

How to access a WCF RIA web service from a WPF client application

How to use WCF RIA SERVICES with WPF application?

How to open a WCF RIA Services application to other type of clients: the SOAP endpoint (3/5)

他们主要围绕:

    向 WCF RIA Web 服务公开 SOAP 端点

    从 WPF 将 WCF RIA 服务作为 WCF Web 服务访问

    使用 WCF SoapClient 访问 WCF RIA DomainService

【讨论】:

【参考方案2】:

是的,你可以像我以前那样做,但是因为你只是点击端点并有效地执行 get 或 post,你失去了 ria wcf 服务附带的更改跟踪功能。

【讨论】:

【参考方案3】:

在没有实际 RIA 服务客户端的情况下,我不同意其他回答者倾向于将 RIA 服务用于 WPF:如果您不按照他们的建议使用实际的 RIA 服务客户端组件,那通常意味着重写大部分无论如何,您在客户端上的数据处理代码。

通常,自动生成的类在 RIA 服务应用程序中随处使用,并且它们的行为不容易重塑。事实上,这真的很难做到,你最好重写大部分内容。例如,您的应用是否没有将保存按钮的Disabled 属性绑定到XyzContext.HasChanges

如果您的应用程序是典型的,那么您确实需要真正的 RIA Serives 客户端来获得干净的端口。

幸运的是,RIA Services 已经开源,并且 WPF 支持也在他们的路线图上:OpenRiaServices。

我从未使用过它,我感觉这方面的进展有点慢,但是,根据你自己的喜好,使用它可能是一个现实的选择。你只需要期望通过这样做有点靠自己。

另外,您是否使用任何依赖 RIA 服务的第三方库?例如,如果您使用 DevExpress,您还必须移植他们使用 RIA 服务的组件(RiaInstantFeedbackDataSource 等)。

如果您尝试过,请在评论中说明效果。我自己也有一个大小相同的 RIA 服务应用程序。

【讨论】:

以上是关于将 Silverlight 移植到 WPF的主要内容,如果未能解决你的问题,请参考以下文章

Silverlight 图形像素侧位置?

Silverlight中2D游戏的最佳做法

将站点添加到Silverlight权限选项卡

将 Silverlight 应用程序迁移到 HTML 5

将 ComboBoxes 绑定到枚举......在 Silverlight 中!

Silverlight 如何将属性绑定到列表项值