|
|
|
Просачивание бизнес-логики в уровень представления
|
|||
|---|---|---|---|
|
#18+
Не является секретом мысль о том, что интерфейс пользователя не должен зависеть от бизнес-логики. Однако как быть в том случае, когда поведение интерфейса все-таки должно зависеть от логики, например включение/отключение свойства Enable кнопки ОК в случае если поле textBox представляющее некий элемент пустое, а логика не позволяет присваивать ему пустую строку ? Например окно для заполнения данных о пользователе. Помимо запрета на пустые строки в ФИО там может присутствовать требование на наличие хотя-бы одного контактного телефона, e-mail и пр. Или даже хитрее - если не введен ни один телефон, то обязателен ввод e-mail'а, и наоборот. Этак вся логика инвариантов класса плавно переедет в Windows-форму. А все время иметь доступную кнопку ОК не хочеться :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2007, 13:44 |
|
||
|
Просачивание бизнес-логики в уровень представления
|
|||
|---|---|---|---|
|
#18+
heyНе является секретом мысль о том, что интерфейс пользователя не должен зависеть от бизнес-логики. Очень даже является. Как это так - интерфейс пользователя не зависит от бизнес-логики? Это что вообще такое? Две системы в двух параллельных мирах и пространственно-временных континумах? hey Однако как быть в том случае, когда поведение интерфейса все-таки должно зависеть от логики, например включение/отключение свойства Enable кнопки ОК в случае если поле textBox представляющее некий элемент пустое, а логика не позволяет присваивать ему пустую строку ? Откровенно идиотское (извинения тут, увы, не уместны) эргономическое решение. Поясняю на пальцах. Пользователь не ввел это самое значение. Ну забыл, или данных нет. А программа тупо ему не подсказывает, но и не дает нажать кнопку Ок (а должна бы понажатию подписать поле красным и сфокусировать в него). Пользователь мечется в непонятках, нервничает, сердится, чувствует себя полным кретином, пытаясь оббежать глазами весь экран в поиске, и откровенно не понимая, что от него хотят. И? Я бы за такой "дизайн".... короче, опустим эпитеты. heyНапример окно для заполнения данных о пользователе. Помимо запрета на пустые строки в ФИО там может присутствовать требование на наличие хотя-бы одного контактного телефона, e-mail и пр. Или даже хитрее - если не введен ни один телефон, то обязателен ввод e-mail'а, и наоборот. Поля, в которые требуется внести данные - обычно помечаются. К примеру - символом * или цветом/жирностью подписи. Акцентуация внимания - RTFM. heyЭтак вся логика инвариантов класса плавно переедет в Windows-форму. Инвариантов класса? Очередное очень умное слово, почерпнутое из анналов J2EE и прочих подобных студенческих методичек? А почему не трансфлуентность класса, квазиперсистентность или метадетерминированность? Эти "свойства" класса не должны влиять на бизнес логику, нет? - По сути же я тебе скажу просто и недвусмысленно. Все эти примитивные (и не очень) проверки (или как в модных книжках принято говорить - валидации) - нужно делать и на server-tier и на client-tier. Сначала на server, а потом на client. Не наоборот. На клиенте - хоть вручную, хоть через какой словарь (продвинутый, или, как обычно - не очень). heyА все время иметь доступную кнопку ОК не хочеться :) А надо! Надо, Вася, надо! Прочитай хотя бы пару тройку умных (или хоть каких-нибудь) книг по эргономике UI, да посмотри как у нормальных людей это делается. - P.S. А вопрос то был в чем? Я вот так и не понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2007, 14:04 |
|
||
|
Просачивание бизнес-логики в уровень представления
|
|||
|---|---|---|---|
|
#18+
grexhide heyНе является секретом мысль о том, что интерфейс пользователя не должен зависеть от бизнес-логики. Очень даже является. Как это так - интерфейс пользователя не зависит от бизнес-логики? Это что вообще такое? Две системы в двух параллельных мирах и пространственно-временных континумах? я делаю. чтобы интерфейс не слишком зависел. Есть форма для показа таблицы, форма для редактирования отношения n к m, форма для редактирования отношения 1 к n, форма редактирования строки. Больше ниче нету А начальство ругается, что не удобно и заставляет делать, чтобы зависел. прямо страна непреодолимых противоречий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2007, 21:21 |
|
||
|
Просачивание бизнес-логики в уровень представления
|
|||
|---|---|---|---|
|
#18+
hey Этак вся логика инвариантов класса плавно переедет в Windows-форму. А все время иметь доступную кнопку ОК не хочеться :) если не хочется, то переедет. Добавить в форму соответствующие правила и настройки, причем они, наверно, должны пользоваться чемто безличным - скажем номерами поля ввода. кнопка окей дисаблед тогда и только тогда, когда, скажем, 2е поле ввода пусто ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2007, 21:35 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=34980791&tid=1345674]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
159ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 204ms |
| total: | 429ms |

| 0 / 0 |
