Управление формой на уровне BusinessLogic


Я новичок в программировании .net.
Я разрабатываю приложение для Windows (C#), в котором использую многоуровневую архитектуру (3 уровня [уровень просмотра, уровень бизнес-логики и уровень данных). -уровень доступа]). Но я застрял между концепцией уровня View и уровня BusinessLogic. Например,

Пусть в моей форме есть много элементов управления DataGridVew в одной и той же winform, и мне нужно выполнить некоторые манипуляции с ними, поэтому я создал общий метод для подобных манипуляций, например, GetRecordCount(..)

private int GetRecordCount(DatagridView dgv)
{
     //calculate record row count and return that.
}

Мой вопрос: Где я должен поместить метод GetRecordCount(..), в слой ViewLayer или BusinessLogic?
Если мы поместим GetRecordCount(..) в слой BusinessLogic, то хорошо ли будет передавать элементы управления win в слой BusinessLogic в качестве аргумента для манипуляции, потому что элементы управления winform являются часть ViewLayer?


person BhushanK    schedule 28.12.2013    source источник
comment
почему вам нужно написать метод, поскольку datagridview уже предоставил свойство Datagridview.Rows.Count для получения количества строк?   -  person Doan Cuong    schedule 28.12.2013
comment
Доан Куонг: это просто пример манипуляции.   -  person BhushanK    schedule 28.12.2013
comment
В этих случаях я использовал статический класс, который будет использоваться в моем ViewLayer для управления View control. Я не думаю, что помещать его в BusinessLogic — хорошая идея, потому что будет сложно повторно использовать ваш BusinessLogic в другом приложении.   -  person Doan Cuong    schedule 28.12.2013


Ответы (1)


Бизнес-уровень должен принимать решения/расчеты только для поддержки вашей бизнес-модели. По моему мнению, GetRecordCount не должно быть на бизнес-уровне. Вы ни в коем случае не должны передавать элементы пользовательского интерфейса в бизнес-модель для управления ими. Уровень представления/интерфейса должен обрабатывать все детали отображения, используя расчеты/решения бизнес-уровня.

Этот конкретный расчет предназначен только для целей отображения и не будет использоваться ни для каких других целей, поскольку он вычисляет строки представления сетки данных. Если бы другой метод возвращал общее количество записей, включенных в систему, я бы, вероятно, поместил его на бизнес-уровень. Но в этом случае метод должен перейти на слой пользовательского интерфейса.

Надеюсь, я помог!

person Pantelis Natsiavas    schedule 28.12.2013