2016-03-26 10 views
4

У меня есть большое приложение LOB Silverlight, которую я пытаюсь портировать приложения рабочего стола WPF (из-за медленной смерти Silverlight в.)Портирование Silverlight в WPF

Часть XAML & C# код порта красиво, но оригинальное приложение использует Услуги WCF RIA. (Более 30 000 строк.) Мой вопрос: могу ли я использовать ту же службу WCF RIA с моим WPF-приложением?

Благодаря

+0

Короткий ответ: Да – Nkosi

ответ

4

Вот несколько ресурсов, которые можно использовать, чтобы решить, если вы хотите идти по этому пути

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)

Они в основном сосредоточены вокруг :

  1. Разоблачение SOAP конечной точки веб-службы WCF RIA

  2. Доступ к службе WCF RIA как веб-службы WCF с WPF

  3. Использование WCF SoapClient для доступа к WCF RIA DomainService

2

Да, вы можете, как я это делал раньше, но потому, что вы просто нажимаете на конечную точку и эффективно выполняете получение или публикацию, вы теряете функции отслеживания изменений, которые входят в службы ria wcf.

1

Я не разделяю другие склонности ответчиков на использование служб RIA для WPF без фактического клиента RIA Services: если вы не используете фактический клиентский компонент RIA Services, как они рекомендуют, это обычно означает переписывание больших частей вашего кода обработки данных на клиенте в любом случае.

Как правило, автоматически создаваемые классы в приложении RIA Services используются повсюду, и их поведение не просто реконструируется. На самом деле это было бы действительно очень сложно сделать, и вам было бы лучше просто переписать большую часть этой вещи. Например, ваше приложение не привязывает свойство Disabled свойства сохранения к XyzContext.HasChanges?

Если ваше приложение является типичным, вам действительно нужен настоящий клиент RIA Serives для чистого порта.

Полуприемники RIA Services открыли с открытым исходным кодом, а поддержка WPF находится в их дорожной карте: OpenRiaServices.

Я никогда не использовал его, и я ощущаю прогресс в этом, это немного медленно, но, учитывая ваши собственные наклонности, это может быть реалистичным вариантом использования этого. Вам просто нужно будет немного поработать, сделав это.

Кроме того, вы используете сторонние библиотеки, которые зависят от служб RIA? Например, если вы используете DevExpress, вам также придется переносить свои компоненты, которые используют службы RIA (RiaInstantFeedbackDataSource и т. Д.).

Если вы попробуете, оставьте комментарий о том, как это произошло. У меня есть приложение RIA Services примерно такого же размера.