Параметры миграции WPF XBAP - PullRequest
1 голос
/ 09 мая 2019

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

Мы оценили следующие варианты, и ни один из них не выглядит очень хорошо:

  1. Приложение ClickOnce - наиболее перспективное, но мы более склонны к веб решение на основе
  2. Переписать код в Anugular - последний вариант: Есть ли плагин, который может общаться с кодом C # через угловой. Также, Angular не позволит писать файлы на клиенте.

Буду признателен за вход / опыт миграции приложений XBAP.

Спасибо

RDV

1 Ответ

0 голосов
/ 10 мая 2019

Без особых изменений кода?

Веб-приложение от wpf будет полностью переписывать все, вплоть до уровня данных. Может быть, некоторые из них.

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

За некоторыми исключениями.

Они могут записывать файлы в локальное хранилище. Существуют различные плагины, которые делают его более удобным для разработчиков.

Вы могли бы рассмотреть cshtml. Это может конвертировать xaml в html5.

http://www.cshtml5.com/

Я понимаю, что это не 100% охват всех приложений WPF одним нажатием кнопки. Я прочел мелкий шрифт и внимательно его рассмотрел, прежде чем списывать все остальные варианты.

Для того, чтобы «общаться с c #» с веб-страницы, обычным подходом является вызов веб-службы.

Один из вариантов записи на локальный диск - установить эту службу на клиентском компьютере. Хотя, если вы можете сделать это, то веб-приложение вряд ли будет вашим лучшим вариантом.

Это c # веб-сервис.

Ваш c # будет веб-интерфейсом. Конечная точка веб-API - это в основном публичный метод на контроллере веб-приложения.

Если все ваши разработчики - c # и xaml, то вы, вероятно, обнаружите, что есть ОГРОМНАЯ кривая обучения для переключения на что-нибудь на основе JavaScript.

С Angular можно многому научиться.

Из фреймворков, которые вы можете выбрать, Angular является наиболее «самоуверенным». Вы подходите с этим. Вы могли бы найти альтернативу, такую ​​как React, более подходящую по этой причине.

С точки зрения c # на самом клиенте, ваши возможности довольно ограничены. WebAssembly - это новый материал. Если ваши пользователи не используют IE, то это вариант с Blazor. Проблема в том, что Blazor - это новая технология, которая не готова написать какое-то корпоративное приложение.

https://dotnet.microsoft.com/apps/aspnet/web-apps/client

В следующем году это все еще будет самым передовым. Вам все еще нужно учиться CSS и JavaScript.

То, что доступно сейчас, это формы Xamarin. Но вы должны установить их.

Скорее более очевидным, чем все это, является просто установленное приложение wpf. Я бы порекомендовал это как первый кандидат. Если вы уже отклонили его, тогда посмотрите еще раз, почему.

Может быть, вы могли бы положить его в магазине Microsoft.

Удачи.

...