Я перехожу на более объектно-ориентированный подход к ASP.NET веб-приложениям в новой системе, которую я разрабатываю.
У меня есть общая структура, с которой большинство людей знакомо. У меня есть школьная структура, где есть несколько отделов; курсы, принадлежащие одному отделению; и студенты, принадлежащие к нескольким курсам.
В представлении отдела я перечисляю все курсы, принадлежащие отделу, и мне нужны агрегированные цифры для каждого курса, такие как количество поступивших, изъятых, количество мужчин / женщин и т. Д.
Однако при просмотре отдельного курса мне понадобится фактический список студентов, а также их данные, например, зачислены ли они, прошли курс, пол и т. Д.
И затем отдельный вид студента, где отображаются все сведения о студенте, включая зачисления на другие курсы, адрес и т. Д.
Раньше у меня был бы уровень доступа к данным, который возвращал бы все данные, которые мне были нужны в каждом случае, и возвращал их как SQLDataReader
или DataSet
(работающий в VB.NET). Теперь я пытаюсь смоделировать это в объектно-ориентированном подходе. Я создаю объекты в DAL и возвращаю их в BLL . Я не уверен, как справиться с этим, хотя, когда мне нужны агрегированные детали в объектах. Например, в представлении отдела со списком курсов у меня будут агрегаты для каждого из курсов. Буду ли я хранить коллекцию некоторых легких объектов курса в отделе, где эти легкие объекты курса будут хранить агрегированные значения?
Полагаю, в разных сценариях нужны разные уровни абстракции, и я не уверен, что это лучший способ справиться с этим. Должна ли я иметь объектную модель, в которой есть очень простой объект курса, в котором хранятся агрегаты, и дочерний объект, в котором будут храниться все детали?
Кроме того, если есть какие-то полезные ресурсы, которые могут помочь моему пониманию того, как моделировать такие вещи, которые были бы великолепны.