Vue и. NET Выбор основной интеграции (+ аутентификация) - PullRequest
0 голосов
/ 29 мая 2020

Насколько я понимаю, есть два основных варианта для Vue и. NET интеграции ядра в рамках одного проекта MVC / Razor.

Вариант 1.

Нереактивная страница, обработанная MVC / Razor, используется для аутентификации со встроенной ASP. NET Identity. Vue вообще не используется для аутентификации / авторизации. Как только пользователи проходят аутентификацию, они перенаправляются на другую страницу MVC / Razor, которая используется в качестве шаблона HTML для Vue. Можно комбинировать рендеринг MVC / Razor и Vue. Например, имя пользователя в верхней части страницы может отображаться как MVC, но действия кнопок и таблицы данных будут обрабатываться Vue. Можно использовать много страниц (так что это будет MPA, а не SPA), это естественно. Использование файлов *. vue невозможно. Маршрутизация MVC кажется основным вариантом маршрутизации (не уверен, можно ли комбинировать с маршрутизацией Vue и нужны ли для этого какие-либо потребности). Файлы Vue JS могут находиться в любом месте проекта, например, могут быть привязаны к страницам HTML так же, как файлы CS на страницах Razor (и это приятно). Затем все эти JS файлы вместе с самим Vue могут быть связаны с wwwroot с помощью Webpack. Vue CLI недоступен, но, похоже, в этом нет необходимости.

Вариант 2.

MVC / Razor вообще не используется для рендеринга пользовательских страниц. Аутентификация выполняется сторонними решениями, такими как IdentityServer, и страницами, управляемыми Vue. . NET Core используется исключительно как WebAPI для Vue и для хранения проекта. Часть Vue полностью независима от части MVC / Razor, они даже отображают страницы на разные HTTP-порты, поэтому требуется прокси-сервер для преобразования Vue HTTP-порта в HTTP-порт MVC / Razor, чтобы Vue работал в одном проект. Для этого мы можем использовать либо Microsoft.AspNetCore.SpaServices.Extensions, либо стороннее программное обеспечение NuGet VueCliMiddleware. Все файлы Vue обычно находятся в папке ClientApp, а затем создаются в папке wwwroot. Возможно использование файлов *. vue. Vue Интерфейс командной строки доступен и рекомендуется для добавления нового приложения в папку ClientApp (но дальнейший интерфейс командной строки, похоже, не нужен). Маршрутизатор Vue кажется единственным вариантом для маршрутизации. SPA, кажется, является основным выбором в качестве структуры (не уверен, доступен ли MPA вариант). Webpack по-прежнему используется для создания приложения Vue из ClientApp в wwwroot.

Я начал путешествие mu Vue с Вариантом 1, даже без веб-пакета, и npm, только с тегом CDN на одном из страницы Razor, и он работает очень хорошо. Для меня вариант 1 кажется менее сложным, но более гибким. Меня больше всего беспокоит то, что Microsoft использует вариант 2 в качестве встроенных шаблонов для Angular и React в Visual Studio, поэтому мне, вероятно, чего-то не хватает, и вскоре меня заставят переписать мое приложение на вариант 2.

Что вы, ребята, думаете, какой вариант лучше, и правильно ли мое понимание, изложенное выше?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...