3-х слойная архитектура и небольшие детали, такие как выпадающие списки - PullRequest
2 голосов
/ 02 июня 2009

Так что я реорганизую небольшое приложение в качестве примера, чтобы получить больше практики. Цель приложения (скажем) - собрать данные из формы «зарегистрировать нового пользователя», сохранить их в базе данных. Единственное ограничение, которое у меня есть, - это использование специального пользовательского класса доступа к данным, который напрямую связывается с базой данных и возвращает данные (если применимо) в объекте DataTable.

У меня есть вопрос относительно небольших деталей формы и как они вписываются в архитектуру слоя. Например, моя форма имеет раскрывающийся список, который подается из базы данных, но в то же время раскрывающийся список не представляет объект для каждой SE (в отличие от пользователя, который является объектом, существует класс User, который имеет несколько методов , данные членов и т. д.). Я не хочу вызывать хранимую процедуру прямо в коде, но я также не хочу переусердствовать с абстракцией.

Какой элегантный способ позаботиться об этих маленьких деталях без создания абстракции класса в изобилии.

Надеюсь, я проясняюсь

Ответы [ 3 ]

1 голос
/ 02 июня 2009

Возможность получения необъектных данных в пользовательском интерфейсе заключается в создании одного или нескольких классов поиска, которые являются корзиной или «службой» для получения нечетных бит данных для таких вещей, как выпадающие списки и т. Д.

Пример:

myDDL.DataSource = Lookup.GetAllCountries (); // GetAllCountries является статическим методом
// установить поля имени / значения и т.д ...
myDDL.DataBind ();

Используя эту методологию, вы все равно можете поддерживать разделение уровней. Он не объектно-ориентированный и не элегантный, но очень практичный.

1 голос
/ 02 июня 2009

Забавно, вы должны спросить это. Я прошел через эту проблему здесь .

На эти другие вопросы о переполнении стека, на которые я ответил, показаны другие части (связанные по касательной):

Получение элементов данных ListView из объектов
Работа с ListViews
Объединение свойств в DropDownList

0 голосов
/ 02 июня 2009

Я не знаю, что лучше, но у меня есть служебный класс, у которого есть метод, который принимает в качестве аргументов объект DropDownList и enum, поэтому я делаю

FillDropDown (ddlistPhoneType, DropDownTypes.PhoneTypes);

Служебный класс заполняет выпадающие списки иногда из базы данных, иногда из XML, а иногда и из некоторых жестко закодированных значений. Но, по крайней мере, GUI не должен беспокоиться об этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...