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