В моем веб-приложении ASP.NET MVC у меня есть:
Модель предметной области, созданная LINQ to SQL
Хранилища, такие как
UserRepository
и OrderRepository
IQueryable Fluents как методы расширения IQueryable, такие как
public IQueryable<Order> GetNewOrders(this IQueryable<Order>)
Такие услуги, как
UserService
и OrderService
Классы утилит и методы расширения, такие как
CryptoUtility
(хеширование и т. Д.) И String и т. Д.
ViewModels, которые являются особенными для каждого MVC View
Сам проект ASP.NET MVC (контроллеры, представления)
Я ищу лучшую структуру / организацию проекта для моего случая, особенно для разделения на разные сборки и как должны выглядеть зависимости между этими слоями. К сожалению, веб-ресурсы не дают подробностей об этом.
Один совет: в настоящее время репозиторий, службы, IQueryable Fluents и т. Д. Работают напрямую против реализации модели предметной области, у меня нет определения интерфейса для них. Я посчитал это ненужным, но, возможно, это необходимо для слабой связи? Мои сервисы имеют интерфейс (например, IOrderService), а мои репозитории реализуют IRepository .
Оцените ваш вклад в организацию этого в сжатой манере, и особенно, какой слой должен зависеть от того, какая организация сборки. Спасибо!