Дизайн приложения UWP в Windows 10 со службой Windows

Мы создаем вспомогательное приложение UWP для устройств с Windows 10 и Windows Mobile. В Windows 10 мы хотим предложить пользователю какое-то обеспечение безопасности, например. убедиться, что его антивирус обновлен и так далее. Это должно быть сделано через Powershell с правами администратора.

Вопрос. Как лучше всего подойти с точки зрения архитектуры и взаимодействия с пользователем?

Идея 1. Архитектура. Приложение UWP взаимодействует со службой (которая написана как .NET Core web.api и предлагает простой интерфейс REST) ​​и использует эту службу через http-клиент.

Служба работает как локальная система. Мы хотим разместить его в веб-службе Kestrel, так как это поддерживается при нацеливании на .net 4.6. До сих пор прототип работал, но все работает в режиме отладки, и не уверен, что возникнут проблемы с изоляцией приложений UWP.

С моей точки зрения, приложение UWP использует службу через обычные HTTP-запросы, которые ни в коем случае нельзя изолировать или перехватывать, верно? Нет никакой разницы в использовании локального веб-интерфейса webapi по сравнению с облачным API-интерфейсом с точки зрения изоляции UWP, верно?

Идея 2. Взаимодействие с пользователем. Пользователь загружает приложение из общедоступного магазина. Приложение проверяет, работает ли оно в Windows 10, и если да, то оно проверяет, установлена ​​ли уже вспомогательная служба Windows (через вызов API в веб-службе). Если нет, он предлагает пользователю возможность загрузить услугу с веб-страницы и установить ее (оценочная подсказка).

Как лучше всего это сделать? Просто дать ссылку для скачивания пользователю? Или я могу запустить процесс из приложения UWP, которое предлагает установить MSI? Он должен быть максимально простым.


person Sebastian Zolg    schedule 25.11.2016    source источник
comment
1) Приложения UWP никак не могут подключиться к локальному хосту. 2) Вы не можете запустить процесс из приложения UWP, вы можете предоставить ссылку для скачивания пользователю.   -  person Mehrzad Chehraz    schedule 25.11.2016
comment
@MehrzadChehraz Думаю, вы правы со вторым ответом. Но можете ли вы быть более ясным в первом ответе? Я думаю, что приложение UWP может взаимодействовать со службой, если служба предлагает интерфейс REST web.api, верно? Работает в моих тестах, но не уверен, есть ли какие-либо другие ограничения, например, при отправке в магазин...   -  person Sebastian Zolg    schedule 25.11.2016
comment
Если служба находится на том же компьютере, какой бы интерфейс она ни предоставляла, подключиться к ней из приложения UWP невозможно. Это задумано и является частью сетевой изоляции, которая, как они говорят, предназначена для большей безопасности.   -  person Mehrzad Chehraz    schedule 25.11.2016
comment
хм, но почему я могу использовать локальный веб-сервис во время разработки в Visual Studio? Это работает прямо сейчас. Что-то другое при развертывании позже через магазин? Извините, я не понимаю, так как прототип работал на меня. Трудно понять, что означает изоляция, так как я могу подключиться к внешнему миру через простой http-клиент в своем приложении uwp. Я не вижу смысла в изоляции, когда локальный хост не является допустимой целью, но Интернет является. Не могли бы предоставить пример, показывающий, где приложение UWP не может связаться?   -  person Sebastian Zolg    schedule 25.11.2016
comment
Это не имеет смысла, но не разрешено, если вы хотите опубликовать свое приложение в Магазине. Он работает в режиме отладки, если соответствующая конфигурация установлена ​​​​в Visual Studio. Прочитать этот вопрос   -  person Mehrzad Chehraz    schedule 25.11.2016
comment
Хорошо понял! Я прочитал статьи и обнаружил, что это поведение по умолчанию отключено Visual Studio. Похоже, загрузка приложений не является опцией. Интересно, может ли это быть вариантом для бизнес-приложений, предоставляемых Магазином Windows для бизнеса. Знаете ли вы, будет ли сетевая петля работать для таких приложений, если они будут доставлены непосредственно в бизнес-магазин через devcenter и корпоративную ассоциацию?   -  person Sebastian Zolg    schedule 25.11.2016
comment
Существует ссылка в этом вопросе о приложениях с боковой загрузкой/   -  person Mehrzad Chehraz    schedule 26.11.2016
comment
Да, я это видел, но вопрос в том, относятся ли приложения, предоставляемые магазином Windows для бизнеса (LOB), к категории загруженных неопубликованных приложений и, следовательно, могут ли они использоваться через магазин без потери возможности использовать петлю сети?   -  person Sebastian Zolg    schedule 26.11.2016
comment
Есть еще идеи кроме боковой загрузки? Я спрашиваю себя, сможет ли SignalR помочь в будущих выпусках .net core wep.api. Я мог запустить связь через облачную инфраструктуру. Немного излишество, но можно ли включить еще несколько вариантов использования, таких как телеметрия?   -  person Sebastian Zolg    schedule 26.11.2016