Хостинг Blazor для предприятия - PullRequest
2 голосов
/ 26 июня 2019

Я настойчиво следил за Blazor и сейчас хочу забрать корпоративное приложение со своего рабочего места и преобразовать его в Blazor, не выходя за ограничения предприятия.У меня много вопросов, но я буду держать их очень сфокусированными: С какой модели мне начинать, когда дело доходит до хостинга.Хостинг, сервер или клиент ASP.Net?

Вот общая архитектура, которой придерживаются почти все простейшие приложения в моей компании:

Enterprise Architecture

Вкратце:

Веб-порталы и мобильные приложения (обычно также веб-сайты) не могут иметь никаких ссылок на ADO или Entity Framework.Они могут иметь только URI для конечной точки службы.Прямой доступ к базе данных не допускается.Эти слои пользовательского интерфейса должны кэшировать данные, если они доступны.

Аутентификация пользователя является федеративной, и мы используем Okta.Таким образом, система единого входа (SSO) позволяет мне получить идентификатор пользователя (адрес электронной почты домена), и я передаю его обратно на уровень логики для получения соответствующей аутентификации из базы данных.

Клиент WCF генерируется автоматическииспользование WcfClientProxyGenerator и зависит от настроек приложения веб-приложения для ввода URI.

Служба WCF имеет все ссылки на Entity Framework и строки подключения.

Веб-приложения находятся за парой виртуальных машин с балансировкой нагрузки, а служба WCF (и все остальное) также является парой виртуальных машин с балансировкой нагрузки

Кэширование является автономным сервером

В такой среде какую модель хостинга я выбрал для Blazor?Мои веб-серверы не являются облачными, но они являются виртуальными машинами в центре обработки данных.Это Windows Server 2016 с IIS, и в большинстве случаев ИТ-специалисты и Cybersecurity ожидают, что стандартное веб-приложение будет работать в IIS под пулом приложений.

Кроме того, из-за природы Blazor мне разрешен определенный C #код должен быть доступен для клиентов (View Source), но это должно быть только так, логика форматирования и т. д. введите код.Все остальное, что даже дает намек на модель или данные, отправляемые обратно, - это большой бесполезный процесс (C # или Java)

Я пытаюсь понять сторону сервера и хостинг прямо сейчас.Любое руководство будет с благодарностью.

Ответы [ 3 ]

3 голосов
/ 26 июня 2019

Судя по всему, вы, вероятно, захотите использовать серверную версию Blazor.Это модель рендеринга, которая происходит полностью на стороне сервера и использует небольшую среду выполнения для обновления DOM клиентов.

Эта модель Blazor будет означать, что клиенту не передается C #, который, я думаю, отвечает политике вашей компании.

Я бы действительно предложил вам прочитать все документы на официальном сайте .Это все очень хорошо объясняется.

2 голосов
/ 26 июня 2019

Модель хостинга на стороне сервера Blazor лучше всего подходит для Enterprise и для тех требований, которые вы указали в своем вопросе. Однако я могу сместить акцент на использование WCF, поскольку WCF - это старая технология, которую вы усердно изучали, но, увы, Microsoft не собирается поддерживать ее в .Net Core 5. Начните думать Web Api

Серверная часть Blazor и Web Api могут стать жизнеспособным решением для вашего желаемого проекта ...

Надеюсь, это поможет ...

0 голосов
/ 26 июня 2019

пытается понять серверную сторону и размещенную прямо сейчас.

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

Таким образом, вы можете выбрать Blazor на стороне клиента и Blazor на стороне сервера.

Серверная часть работает на вашем сервере и, вероятно, является самой безопасной ставкой.
Но это облагает налогом ваш сервер, большая часть ЦП и все требования к памяти клиентов передаются этому серверу.Который мог бы работать как полностью изолированный и выделенный сервис, это должен быть только Core 3 или более поздняя версия.Нет проблем с IIS.

Офлайн-возможности вообще отсутствуют, это очень похоже на работу тонких клиентов в Citrix.

Blazor-клиент намного больше похож на традиционных клиентов, таких как Angular и старый добрый SilverLight.Работает независимо в Broswer, возможно, в качестве PWA.

Клиентская сторона будет приемлемым вариантом, если она может работать с сгенерированным клиентом WCF.Я не вижу причин, почему это не так, это является частью стандарта .net.Но это, вероятно, не очень высоко в списке приоритетов.Вызовы API оставшихся вызовов возможны в Blazor CS, но HttpClient нужно было настроить, чтобы это произошло.

Я еще не видел и не пробовал клиента WCF в Blazor CS.

Кроме того, клиентская сторона имеет честь быть первой платформой, выпущенной в .NET 5. Имя Mono исчезнет.Звучит забавно, но может означать, что до следующего года не будет официального релиза.Я еще не видел никаких официальных заявлений.

...