将 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的主要内容,如果未能解决你的问题,请参考以下文章