Лучшие практики Blazor с моделью Identity - PullRequest
0 голосов
/ 05 апреля 2020

В настоящее время я работаю над веб-приложением с помощью предварительного просмотра Blazor 3.2. Я использую версию WebAssembly и Identity. Мое приложение состоит из 3 частей: клиент, сервер и общий доступ. (так же, как шаблон basi c).

Мои классы моделей хранятся в разделе Shared. Тем не менее, класс модели для пользователей хранится в папке сервера.

Я хотел бы использовать в одной из моих моделей (хранящихся в общем проекте):

 public virtual ApplicationUser User { get; set; }

Это невозможно, поскольку общий проект не имеет доступа к проекту сервера.

Нужно ли размещать все свои классы моделей на сервере и использовать DTO в общей части?

Вместо этого поместите все мои классы в общую папку (включая ApplicationUsers)?

Каков наилучший метод?

1 Ответ

0 голосов
/ 05 апреля 2020

Это невозможно, поскольку общий проект не имеет доступа к проекту сервера.

В этом нет необходимости: вы можете переместить ApplicationUser в Shared и добавить Microsoft.Extensions .Identity.Store Nuget для общего доступа. Вот где определяется IdentityUser. Однако это не будет лучшей практикой.

Нужно ли размещать все свои классы моделей на сервере и использовать DTO в общей части?

Это предпочтительный шаблон, безусловно, для более крупного проекта. Для чего-то небольшого различия между классами модели и DTO иногда становятся размытыми. Но поскольку IdentityUser вводит некоторые зависимости и содержит поля, которые вам не нужны или не нужны клиенту, он всегда платит за создание ApplicationUserDto.

...