В настоящий момент я создаю проект, достаточно большой, на мой взгляд, для тщательного разделения хорошо известных слоев его архитектуры.
Для уровня доступа к данным (DAL) я просто использую .NET Entity Framework.
Для бизнес-уровня я определил бизнес-объекты, которые затем будут доступны последующим разработчикам, которые смогут использовать их для создания клиентов и обработки пользовательского интерфейса.
Поскольку я должен был разработать клиентское приложение также для демонстрационных целей, я понял, что может быть очень полезно иметь ObservableCollection<T>
вместо списка, и что как можно чаще объекты следует реализовать интерфейс INotifyPropertyChanged
, чтобы пользовательский интерфейс автоматически обнаруживал изменения и сразу отображал обновления.
Тем не менее, мне интересно, действительно ли это правильно с архитектурной точки зрения. То есть технически , я не думаю, что бизнес-уровень должен иметь какое-либо отношение к отображению пользовательского интерфейса, так как мы на самом деле не «знаем», для чего программист может его использовать; он может просто захотеть использовать объекты в вычислительных целях, например. Следовательно, мне было интересно, что было обычной практикой?
Должен ли я реализовать эти функции на бизнес-уровне (не будет проблем с производительностью)? Должен ли я создать какой-то объект «декоратор» в другом слое, который включает в себя все эти функции?