|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
Скажем там надоело в последнее время клипание форм Ввода/Редактирования данных, со справочниками нет проблем - создана универсальная форма которая показывает любой справочник. А вот с другими таблицами по сложней, есть тоже универсальная форма которая отображает любой запрос/таблицу (генерация колонок, описания колонок и т.д.) но вот формы редактиирования/добавления приходится делать в ручную (пока) вот и задумался и хочу спросить кто что использует: 1) Генераторы форм - указали таблицу/запрос на выходе файлы формы со всеми элементами, а дальше подключили к проекту и используем. Минус - в проекте может быть сверх много форм ввода, если что-то изменилось в таблице нужно будет заново создавать форму или править в ручную. Плюсы - Можно в дизайнере исправить что-то, разместить элементы как нужно, более просто по реализации не требует дополнительных таблиц. 2) Одна универсальная форма генерации в Runtime указываешь название таблицы или запрос а форма сама во время работы генерирует все элементы Минусы - сложность реализации (относительно первого варианта), Либо усиленая работа по получению информации из системных таблиц СУБД или создание дополнительных таблиц где будет хранится информация необходимая для генерации формы (типы полей, связи к другим таблицам и т.д.) Плюсы - если изменилось какое-то поле то не нужно править исходники и обновлять клиентов Вот и задумался что лучше реализовывать, сейчас пока набрасываю промежуточный код. ______________________________________________________________ "Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код". ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2010, 20:24 |
|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
Asm64DСкажем там надоело в последнее время клипание форм Ввода/Редактирования Для тупых случаев универсальная "динамическая" форма, конечно подойдет. Но вот для "нормальных пользовательских интерфейсов" (когда на форме надо отобразить всякие дополнительные данные, обеспечить валидирование, вспомогательные операции и т.п.) универсальные формы оказываются либо недостаточными, либо требуют огромного количества метаописаний. И получается, что добиться потребного пользователю результата от универсальной формы гораздо более трудоемко, чем склепать обычную форму. На мой взгляд, "универсальная форма" подходящий инструмент только для интерфейсов занимающихся отображением данных из СУБД "as is" - почти с тем же успехом можно взять какой-нибудь SQL*Developer - там есть универсальные формы редактирования данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2010, 20:42 |
|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
Asm64D Минусы - сложность реализации (относительно первого варианта), Либо усиленая работа по получению информации из системных таблиц СУБД или создание дополнительных таблиц где будет хранится информация необходимая для генерации формы (типы полей, связи к другим таблицам и т.д.) Да, еще один минус, вместо того чтобы заниматься собственно проектом для заказчика, вы будете убивать время на разработку прослойки ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2010, 07:42 |
|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
GoffmanДа, еще один минус, вместо того чтобы заниматься собственно проектом для заказчика, вы будете убивать время на разработку прослойки Зато это время может окупиться в далнейшим: не нужно будет копатся в коде чтоб вспомнить как оно там делается (даже с комментариями иногда уходит много времени чтобы вспомнить). По сути второй способ это создание конфигуратора, как в 1С. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2010, 09:11 |
|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
Asm64DЗато это время может окупиться в далнейшим: не нужно будет копатся в коде чтоб вспомнить как оно там делается (даже с комментариями иногда уходит много времени чтобы вспомнить).А куда "копание в коде" денется? Если забудете как что-то делается, то копаться все-равно придется. Вы можете называть это не кодом, а "информацией, необходимой для генерации формы", но по чути это будет тот же код только на вашем "доморощенном" языке. Вы поймите, что для того, чтобы реализовать runtime-генерацию форм достаточной сложности вам потребуется разработать собственный язык и собственную среду программирования. С большой вероятностью почти по всем параметрам этот язык будет уступать общепринятым. Кроме того, он будет понятем только вам одному (хотя в некоторых случаях это является преимуществом). Несомненно, задача разработки собственного языка - весьма интересна и привлекательна, но не пытайтесь оправдать ее бизнес-необходимостью. Для программирования в небольшой группе разработка своей среды увеличивает суммарную трудоемкость. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2010, 10:42 |
|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
Asm64D, Прочитайте про Bold. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2010, 11:50 |
|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
Asm64DПо сути второй способ это создание конфигуратора, как в 1С. По первому способу делаю оригинальные системы. По второму - типовые. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2010, 11:52 |
|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
Asm64D, Универсальная форма с возможностью редактирования в рантайме. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2010, 13:01 |
|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
Asm64D 2) Одна универсальная форма генерации в Runtime указываешь название таблицы или запрос а форма сама во время работы генерирует все элементы Минусы - сложность реализации (относительно первого варианта), Либо усиленая работа по получению информации из системных таблиц СУБД или создание дополнительных таблиц где будет хранится информация необходимая для генерации формы (типы полей, связи к другим таблицам и т.д.) Плюсы - если изменилось какое-то поле то не нужно править исходники и обновлять клиентов сложность реализации действительно имеет место, но окупается просто на порядки. Если Вы конечно такое задумали не для разовой работы. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2010, 13:12 |
|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
Bogdanov AndreyС большой вероятностью почти по всем параметрам этот язык будет уступать общепринятым. еще с большей вероятностью можно обойтись вобще без "языка", все описывается декларативно, типовая реакция на события закладывается в функционал такой "универсальной формы", для дополнений, если потребуется, используется функционал скриповых движков (общепринятых кстати), недостатка в которых нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2010, 13:19 |
|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
Bogdanov Andreyчтобы реализовать runtime-генерацию форм достаточной сложности вам потребуется разработать собственный язык и собственную среду программирования. Зачем создавать язык, скорей просто добавить поддержку скриптов. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2010, 14:12 |
|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
GoffmanДа, еще один минус, вместо того чтобы заниматься собственно проектом для заказчика, вы будете убивать время на разработку прослойки Хорошо спроектированная прослойка даст значительный выигрыш во времени. Не надо ля-ля. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2010, 14:36 |
|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
Asm64DЗачем создавать язык, скорей просто добавить поддержку скриптов. Да, лучше добавить уже распространненный язык. Предложу свой вариант: Если система написана на delphi, то подключив процедуру (строк на 15 обычной ширины) можно создавать любые формы в run-time из текста DFM. Подключив движок скриптов, можно сделать форму "живой". Можно пойти дальше: DFM редактировать не в среде Delphi, а подключить дизайнер форм в свою программу. И, напоследок, хранить текст DFM и соответствующий ему скрипт в базе данных. Кстати, вариант с номером 2 (Одна универсальная форма) все-равно должен быть, несмотря на наличие дизайнера форм, но форма может быть совсем не такой сложной. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2010, 15:06 |
|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
iscrafmеще с большей вероятностью можно обойтись вобще без "языка", все описывается декларативно, А это "декларативное описание" не есть язык? Расскажите, как "без языка" вы опишите, что при выборе товара в одном поле формы в другом надо отобразить его цену, а в третьем общую стоимость? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2010, 16:14 |
|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
Alex SПредложу свой вариант: Если система написана на delphi, то подключив процедуру (строк на 15 обычной ширины) можно создавать любые формы в run-time из текста DFM. Подключив движок скриптов, можно сделать форму "живой". Можно пойти дальше: DFM редактировать не в среде Delphi, а подключить дизайнер форм в свою программу.И как все это решает проблемы топикстартера? Ему надоело "клепание форм" в своем дизайнере. Вы думаете, что в дизайнере DFM это будет удобнее/быстрее? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2010, 16:18 |
|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
trdm_Хорошо спроектированная прослойка даст значительный выигрыш во времени. Не надо ля-ля. Эта прослойка называется фреймворк. В общем случае офигенно сложная задача. Но несколько достойных продуктов на рынке есть. А совсем простые Web формы легко генерятся на лету CGI скриптами и т.п. фигнёй. Тот же Oracle forms имеет мастер форм, где за считаные минуты можно создать или подредактировать форму. Но при желании добавить в неё и нетривиальную логику, что с доморощеным продуктом будет не просто сделать. В общем, автору нужно поискать адекватные инструменты для решения задачи. Причём можно одновременно использовать оба подхода. "Быстрый" для создания несложных типовых форм и прототипов, "основательный" для разработки многофункциональных GUI. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2010, 17:22 |
|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
Bogdanov Andreyiscrafmеще с большей вероятностью можно обойтись вобще без "языка", все описывается декларативно, А это "декларативное описание" не есть язык? Расскажите, как "без языка" вы опишите, что при выборе товара в одном поле формы в другом надо отобразить его цену, а в третьем общую стоимость? ITEMPRICE=PRICE AMOUNT=QTY*PRICE ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2010, 17:25 |
|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
Вариант Alex S очень понравился. Сейчас начну все же с первого варианта (типа тренировка). ______________________________________________________________ "Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код". ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2010, 17:43 |
|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
Asm64DGoffmanДа, еще один минус, вместо того чтобы заниматься собственно проектом для заказчика, вы будете убивать время на разработку прослойки Зато это время может окупиться в далнейшим: не нужно будет копатся в коде чтоб вспомнить как оно там делается (даже с комментариями иногда уходит много времени чтобы вспомнить). По сути второй способ это создание конфигуратора, как в 1С. Я лет 5 этим занимался и бросил - 1.нельзя сделать универсальную форму на все случаи жизни. 2.На каждый новую настройку уходит много времени 3.Чем больше настроек, тем сложнее отлавливать их наложения друг на друга 4.Время, затраченное на настройку, становится сравнима со временем работы в Дельфях 5.Так как каждый новый наворот вызывается каждый раз, то система начинает тормозить и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2010, 17:46 |
|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
iscrafm ITEMPRICE=PRICE AMOUNT=QTY*PRICE Вы хотите сказать, что это "не язык"? Тогда я не знаю, что означают две параллельные черточки, "звездочка" и всякие другие символы. Если это все-таки язык программирования, то я могу попробовать угадать, что ITEMPRICE и AMOUNT - это имена элементов формы, отображающих цену и общую стоимость. Хотя твердой уверенности нет. А в вот кто такие PRICE, QTY? У меня нет предположений. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2010, 18:00 |
|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
Eybdthcfkmyfz cbcntvf, фигня, хватает 2-3 месяцев ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2010, 20:45 |
|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
Джамшид РовшанEybdthcfkmyfz cbcntvf, фигня, хватает 2-3 месяцев Для какого языка? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2010, 21:20 |
|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
Bogdanov Andreyiscrafm ITEMPRICE=PRICE AMOUNT=QTY*PRICE Вы хотите сказать, что это "не язык"? Тогда я не знаю, что означают две параллельные черточки, "звездочка" и всякие другие символы. Если это все-таки язык программирования, то я могу попробовать угадать, что ITEMPRICE и AMOUNT - это имена элементов формы, отображающих цену и общую стоимость. Хотя твердой уверенности нет. А в вот кто такие PRICE, QTY? У меня нет предположений. это формулы. PRICE и QTY тоже элементы формы. При их изменении выполнятся расчет AMOUNT. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2010, 22:57 |
|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
iscrafmBogdanov AndreyВы хотите сказать, что это "не язык"?это формулы.Так все-таки это язык или нет? Где описана семантика указанных конструкций? Создателю универсальной формы потребуется некий "процессор формул" - который "объяснит" компьютеру что с написанными вами буковками делать. iscrafm PRICE и QTY тоже элементы формы. А откуда эти элементы взялись? Было только поле для выбора товара. Откуда в форме элемент PRICE взялся? Вернитесь к заглавному посту. Там было написано, что указывается только название таблицы и по этому названию строится форма. Понятно, что в таблице есть колонки, можно предположить, что для каждой колонки создается элемент формы. Но никакого PRICE в таблице нет - в таблице только ссылка на товар. А уж у товара как-то там можно цену посчитать. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2010, 23:27 |
|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
Bogdanov Andreyiscrafm PRICE и QTY тоже элементы формы. А откуда эти элементы взялись? Было только поле для выбора товара. Откуда в форме элемент PRICE взялся? я почему-то Ваши слова лучше помню, чем Вы свои. Хорошо, напомню откуда эти элементы взялись: Bogdanov AndreyРасскажите, как "без языка" вы опишите, что при выборе товара в одном поле формы в другом надо отобразить его цену, а в третьем общую стоимость ? PRICE - это поле с ценой, AMOUNT - это поле с общей стоимостью. Спросили как декларативно описывается заданный Вами же пример, я показал. Хоть то что спрашивали помните? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2010, 23:46 |
|
|
start [/forum/topic.php?fid=33&fpage=31&tid=1548247]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
55ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
75ms |
get tp. blocked users: |
2ms |
others: | 323ms |
total: | 493ms |
0 / 0 |