Простой совет по архитектуре приложения
Я пытаюсь создать небольшое демонстрационное веб-приложение, которое слабо связано, хорошо тестируется, имеет хороший чистый код и т. Д. Короче говоря, я экспериментирую с правильными действиями. ;)
В настоящее время у меня есть три проекта в моем решении Wolfie:
Wolfie.Core - содержит бизнес-объектыWolfie.Data - содержит код доступа к данным, ссылки на ядро.Wolfie.Web - будет веб-сайт Нэнси.В настоящее время Ядро ничего не знает ни о каких других проектах. Данные должны ссылаться на ядро, так как ядро имеет типы, которые будут возвращать данные. Поэтому в этот момент я осознаю, что Web должен ссылаться как на Core, так и на Data, чтобы иметь возможность работать, поскольку тип сущности находится в Core, а вызовы базы данных - в Data.
Все классы репозитория в Data имеют интерфейсы, так что репозитории можно макетировать для тестирования.
Я не думаю, что хочу помещать какой-либо специфичный для базы данных код или ссылки в Core, и я хочу, чтобы бизнес-правила моей сущности были недоступны для данных.
Этоверный ссылаться на оба проекта из Интернета? или потребуется другой проект между Web и остальными, чтобы Web ссылался только на одно место и не отвечал за вызов методов Data и т. д.
Я стремлюсь к архитектуре, в которой мое основное приложение не зависит ни от уровня данных, ни от веб-слоев.
Я надеюсь, что я сделалнесколько смысл, и я с нетерпением жду некоторых полезных ответов.