#c# #blazor #progressive-web-apps
Вопрос:
Я пытаюсь выяснить, возможно ли создать PWA с сервером Blazor.
Мне кажется , что некоторые «решают» эту проблему, копируя вставку manifest.json из приложения webassembly в серверное приложение.
Это заставило меня задуматься, почему Microsoft не предоставляет флаг —pwa для запуска blazorserver в dotnet, но только в веб-сборке, если все так просто.
Спасибо!
Комментарии:
1. Сервер Blazor по своей архитектуре управляется со стороны сервера. Каждое событие в браузере отправляется на сервер, сервер изменяет состояние и отправляет обновленную разницу DOM, которая применяется на стороне клиента. PWA, по замыслу, должны использоваться в автономном режиме. Существует фундаментальная несовместимость в их целях и дизайне.
Ответ №1:
По сути, да: это возможно. Но единственное преимущество, которое вы получаете, делая это, — это возможность установить приложение на устройство. Как заявил Майур Экботе, сервер blazor работает на сервере и поэтому не может получить доступ ко всем другим функциям, предоставляемым PWA. Это также объясняет, почему Microsoft не предоставила флаг —pwa, он по сути бесполезен. Хотя я полагаю, что одна только функция установки может стоить того, чтобы сделать ее PWA.
Если вы хотите сделать свой сервер blazor PWA, вам необходимо иметь как manifest.json, так и зарегистрированного сотрудника службы. В противном случае браузер не будет воспринимать его как PWA. Для получения более подробных требований к установке проверьте это.
Как вы уже описали, самый простой способ сделать это-скопировать работника службы и манифест из проекта веб-сборки и добавить его в проект сервера.