Простой совет по архитектуре приложения

Я пытаюсь создать небольшое демонстрационное веб-приложение, которое слабо связано, хорошо тестируется, имеет хороший чистый код и т. Д. Короче говоря, я экспериментирую с правильными действиями. ;)

В настоящее время у меня есть три проекта в моем решении Wolfie:

Wolfie.Core - содержит бизнес-объектыWolfie.Data - содержит код доступа к данным, ссылки на ядро.Wolfie.Web - будет веб-сайт Нэнси.

В настоящее время Ядро ничего не знает ни о каких других проектах. Данные должны ссылаться на ядро, так как ядро имеет типы, которые будут возвращать данные. Поэтому в этот момент я осознаю, что Web должен ссылаться как на Core, так и на Data, чтобы иметь возможность работать, поскольку тип сущности находится в Core, а вызовы базы данных - в Data.

Все классы репозитория в Data имеют интерфейсы, так что репозитории можно макетировать для тестирования.

Я не думаю, что хочу помещать какой-либо специфичный для базы данных код или ссылки в Core, и я хочу, чтобы бизнес-правила моей сущности были недоступны для данных.

Этоверный ссылаться на оба проекта из Интернета? или потребуется другой проект между Web и остальными, чтобы Web ссылался только на одно место и не отвечал за вызов методов Data и т. д.

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

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

Ответы на вопрос(5)

Ваш ответ на вопрос