Я создал github repo с стартовым шаблоном, который может оказаться полезным. это то, что я обычно делаю для средних и крупных веб-приложений, которые требуют простоты обслуживания. Код должен быть легко следовать, если вы используете Visual Studio. если вам нужна помощь с какой-либо деталью, создайте проблему в репо, и я постараюсь ответить как можно лучше.
Вот несколько основных моментов шаблона:
3 Layer Architecture
- один слой ссылается только на слой, расположенный непосредственно под ним.
- слой не знает, что его потребляет.
Api Layer
- строго типизированные настройки приложения
- Аутентификация токена JWT
- авторизация на основе политики
- пользовательское промежуточное ПО для перевода сайта в автономный режим (режим обслуживания)
Business Layer
- проверка входных данных с правилами fluentvalidation
- создание учетной записи, проверка электронной почты, вход в систему
- хранение хеш-паролей с солью и проверка с помощью bcrypt
- очередь электронной почты с фоновым сервисом для отправки писем с помощью smtp
- загрузка изображений
Уровень данных
- данные хранятся в mongodb
- данные изменены и получены через маклассы Nager
Интеграционные тесты
- использует среду MStest
- использует Fluentassertions
- тестирует бизнес-логику через действия контроллера
он не идеален, но, похоже, работает для моей команды без особых проблем. если кто-то видит что-то не так или имеет какие-либо отзывы, предложения по улучшению, пожалуйста, не стесняйтесь комментировать.
спасибо!