Здравствуйте, zelenprog, Вы писали:
Z>Вроде как по теории лучше разрабатывать программу, используя Domain-Driven-Design.
Z>О необходимости Domain-model написано много книг.
Z>На применение Domain-model заточены архитектуры типа "Чистая архитектура", "Гексагональная архитектура".
Z>Как я понимаю, Domain-model работает с Сущностями и коллекциями сущностей.
Z>Для хранения этих сущностей Domain-model использует Repository.
Z>При этом часто встречаются задачи, когда нужно отобразить на форме список записей.
Z>Удобным способом для этого являются объекты типа DataGridView, которые есть во многих средах разработки, особенно для десктопных приложений.
Z>Однако, объекты типа DataGridView работают с табличными данными, и не умеют работать с коллекциями объектов.
Z>Я просмотрел много обучающих примеров по DDD, и ни в одном из них нету работы с табличными данными.
Z>И получается, что по сути использование DataGridView — противоречит DDD?
Z>Так ли это? Действительно ли DDD и DataGridView не совместимы?
Z>Можно ли придумать какой-то способ их совместного применения? Не нарушая при этом принципов DDD?
Z>Хотелось бы написать хорошую программу, чтобы "ядром" этой программы являлась Domain-model, но чтобы при этом в пользовательском интерфейсе данные отображались с помощью DataGridView.
Z>Если это возможно, то какая должна быть архитектура?
Z>Как при этом должны взаимодействовать между собой слои программы?
Если очень нужно то можно реализовать необходимые интерфейсы источников данных для DataGridView, но скорей всего будет проще использовать wpf c паттерном mvvm, DataGrid и свою реализацию INotifyCollectionChanged.
Вот собственная реализация этого интерфейса и будет работать с репозиторием или если надо с сетью