Каким руководствам .Net Core 2.3 + MongoDB нужно следовать? - PullRequest
1 голос
/ 03 октября 2019

Я выбрал MongoDB и .Net Core 2.3 в качестве технологий для нового веб-приложения, и мне было интересно, какие рекомендации мне следует использовать. Поскольку я прихожу из мира реляционных БД, я смотрел 5 учебных пособий по MongoDB / C #, но мне все еще интересно:

  • Есть ли способ реализовать "чистый" способ доступа к даннымСлой? (например, создание нового проекта)
  • Является ли шаблон репозитория действительно полезным или излишним? (Я могу изменить источник БД, если MongoDB слишком сложен для обслуживания и переключиться обратно на RDB, но MongoDB уже завоевал половину моего сердца)
  • Как реализовать «nn взаимосвязи», такие как список объектов вобъект? Если я делаю обновление для одного из объектов списка, я собираюсь обновлять все его экземпляры везде? Извините за ересь.

Вот оно. Заранее благодарен за каждый ответ, за каждую ссылку, за каждый голос.

Я уже начал использовать MongoDB.Bson lib и смотрел учебное пособие Тима Кори (https://www.youtube.com/watch?v=69WBy4MHYUw).

).

1 Ответ

1 голос
/ 05 октября 2019

Я создал github repo с стартовым шаблоном, который может оказаться полезным. это то, что я обычно делаю для средних и крупных веб-приложений, которые требуют простоты обслуживания. Код должен быть легко следовать, если вы используете Visual Studio. если вам нужна помощь с какой-либо деталью, создайте проблему в репо, и я постараюсь ответить как можно лучше.

Вот несколько основных моментов шаблона:

3 Layer Architecture

  • один слой ссылается только на слой, расположенный непосредственно под ним.
  • слой не знает, что его потребляет.

Api Layer

  • строго типизированные настройки приложения
  • Аутентификация токена JWT
  • авторизация на основе политики
  • пользовательское промежуточное ПО для перевода сайта в автономный режим (режим обслуживания)

Business Layer

  • проверка входных данных с правилами fluentvalidation
  • создание учетной записи, проверка электронной почты, вход в систему
  • хранение хеш-паролей с солью и проверка с помощью bcrypt
  • очередь электронной почты с фоновым сервисом для отправки писем с помощью smtp
  • загрузка изображений

Уровень данных

  • данные хранятся в mongodb
  • данные изменены и получены через маклассы Nager

Интеграционные тесты

  • использует среду MStest
  • использует Fluentassertions
  • тестирует бизнес-логику через действия контроллера

он не идеален, но, похоже, работает для моей команды без особых проблем. если кто-то видит что-то не так или имеет какие-либо отзывы, предложения по улучшению, пожалуйста, не стесняйтесь комментировать.

спасибо!

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