|
Построение интерфейса приложения из БД
|
|||
---|---|---|---|
#18+
Здравствуйте! Возможно, баян, но все же. На каком-то форуме прочитал интересный топик о том, что можно из БД полностью генерить интерфейс приложения. Мне сразу же стала интересна эта тема и вот, что я вижу: Вся бизнес-логика естессно на уровне БД (хранимые процедуры, функции и т.д.), там же хранится и описание того, как нужно построить интерфейс, то бишь описание объектов, свойств, методов. Exe-модуль содержит только модуль коннекта к БД и сам интерпретатор кода из БД. Скажем, запускается приложение, производится запуск ХП для чтения информации об объектах системы (Справочники, документы), строится по этому описанию меню. По выбору конкретного пункта меню осуществляется вызов соответствующей ХП для чтения информации о выбранном объекте (описание формы, к примеру), при нажатии, допустим на кнопку производится опять-таки запуск соотв. ХП и "перечитывание" интерфейса из БД + выполняются необходимые действия... Преимущества, которые сразу же бросаются в глаза: 1) существует возможность построения системы без необходимости частого обновления (оно будет нужно только иногда для обновления интерпретатора) во время этапа внедрения системы и сопровождения 2) интерефейс будет унифицирован а вопрос следующий: сталкивался ли кто-нибудь из форумчан с подобного рода системами? какие мнения существуют по этому поводу? только, пожалуйста, конструктивные предложения... заранее спасибо! :) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2007, 10:59 |
|
Построение интерфейса приложения из БД
|
|||
---|---|---|---|
#18+
Проводили в свое время исследования такого подхода. Продержался не долго.:) Сейчас вся эта кухня хранится на сервере приложений (в специальном формате). С теми же +.... преимуществами, только без проблем. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2007, 11:30 |
|
Построение интерфейса приложения из БД
|
|||
---|---|---|---|
#18+
iscrafmПродержался не долго.:) Интересно. А какие проблемы были выявлены? И вообще, если можно, какие-то обобщенные принципы работы такой системы узнать у Вас? (возможно схемы) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2007, 12:02 |
|
Построение интерфейса приложения из БД
|
|||
---|---|---|---|
#18+
> там же хранится и описание того, как нужно построить интерфейс В соответствии с какой спецификацией Вы собираетесь хранить описание интерфейса? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2007, 12:16 |
|
Построение интерфейса приложения из БД
|
|||
---|---|---|---|
#18+
guest_20040621В соответствии с какой спецификацией Вы собираетесь хранить описание интерфейса? ну на первый взгляд кажется, что проще сделать описание интерфейса максимально приближенным к среде, в которой будет писаться Интерпретатор (в моем случае продукты Borland). То есть, к примеру, описание формы через классы и т.д. На самом деле этот вопрос меня тоже интересует и если есть какие наработки, то было просто замечательно обсудить их здесь. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2007, 12:29 |
|
Построение интерфейса приложения из БД
|
|||
---|---|---|---|
#18+
> проще сделать описание интерфейса максимально приближенным к среде Это понятно, что проще. Вопрос - зачем? Г-н iscrafm совершенно справедливо отметил, что, если нет необходимости иметь полностью переносимый интерфейс - а об этом, насколько я понимаю, речи не идет, - есть смысл привязываться к серверу приложений, а не к базе данных. > если есть какие наработки, то было просто замечательно обсудить их здесь Наработок нет, более того, я никогда не видел подобной реализации. На мой взгляд, подобное описание имеет смысл в том случае, если используется стандартная нотация и несколько интерфейсов. Хотя, конечно, побочных плюсов - куча. Во-первых, легко поддерживать мультиязычность интерфейса. Во-вторых, легко использовать интерфейс в соответствии с концепцией ограничения доступа. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2007, 12:41 |
|
Построение интерфейса приложения из БД
|
|||
---|---|---|---|
#18+
guest_20072707Преимущества, которые сразу же бросаются в глаза: Ни одно из названных соображений не является преимуществом этой схемы. То есть: названные цели легко достигаются без этой схемы. Я бы сказал, легче (с меньшей трудоемкостью), нежели при ее использовании. guest_20072707какие мнения существуют по этому поводу? только, пожалуйста, конструктивные предложения... 1. Такая схема полностью неспособна реализовать нестандартную функциональность, которая случается "в одной форме из ста" в любом серьезном проекте. В результате приходится идти на серьезное ухудшение интерфейса как раз в тех формах, которые часто оказываются ключевыми ("сложные - нестандартные - ключевые" - звенья одной цепи, в отличие от стандартных типа "ввести документ" или "выбрать из справочника") 2. Во всех случаях, которые я видел, генерируемый интерфейс был элементарно некачественным. Происходит это, как мне представляется, по двум причинам: 2.1 Слишком бедный язык описания интерфейса. Формализовать "все возможные случаи" довольно трудно; в результате та функциональность, которую должен делать клиент, переваливается на сервер. Как следствие, ухудшается обратная связь, отображение операций в интерфейсе. Скажем, моя любимая обработка ошибок ввода - такой интерфейс будет практически не способен сказать пользователю "введенный ИНН неверен, а еще дата начала действия договора должна быть меньше даты завершения", спозиционировав при этом курсор на первую из найденных ошибок. Нет, я согласен, теоретически это можно реализовать, но практически этим никто не занимается - при подобном "драйверном" клиенте реализация оказывается слишком неудобной. 2.2 Отсутствие готовых средств описания такого интерфейса приводит к использованию некачественных самоделок с некачественными же результатами. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2007, 12:42 |
|
Построение интерфейса приложения из БД
|
|||
---|---|---|---|
#18+
авторsoftwarer Да, с п.1 я полностью согласен. Однако с п.2 не совсем. Например, ту проблему, которую Вы описали решить можно довольно просто при такой схеме (ну Вы это и сами уже сказали). "Особенный" функционал, конечно, придется писать на клиенте. Тогда получаем комбинированного "монстра" "интерпретатор стандартного функционала" и "исполнитель нестандартного" :) Но ведь это тоже вариант, хотя и не очень привлекательный для разработчика :) Спасибо за комментарий. И все же, неужели никто, кроме iscrafm (чьи доводы против/за мне все-таки хотелось бы услышать), не писал подобного рода системы? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2007, 12:53 |
|
Построение интерфейса приложения из БД
|
|||
---|---|---|---|
#18+
guest_20072707 Для разминки советую попробовать сделать динамическую расстановку таб ордера на форме с произвольным интерфейсом. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2007, 12:59 |
|
Построение интерфейса приложения из БД
|
|||
---|---|---|---|
#18+
softwarerЯ бы сказал, легче (с меньшей трудоемкостью), нежели при ее использовании. Я бы сказал, легче (с меньшими трудозатратами), нежели при ее использовании ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2007, 13:08 |
|
Построение интерфейса приложения из БД
|
|||
---|---|---|---|
#18+
guest_20072707iscrafm (чьи доводы против/за мне все-таки хотелось бы услышать) для примера, чтобы построить на клиенте сложную форму, описание которой хранится с БД, нужно проделать множество действий по расстановке контролов, связывании их между собой, назначение обработчиков и т.д. Представьте себе хотя-бы структуру данных для хранения всего этого и процедуры интерпретации. Я согласен с тем, что унификация интерфейса,возможность централизованного хранения и отсутствие необходимости компиляций дает множество преимуществ. Но если хранить описание, например, в объектном виде, на сервере приложений, то создание нового экземпляра формы, допустим, сводится к простому NewForm.Assign(....). ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2007, 14:05 |
|
Построение интерфейса приложения из БД
|
|||
---|---|---|---|
#18+
В среду была на предзащите докторской диссертации на тему автоматизация разработки пользовательского интерфейса на основе онтологического подхода. Если интересует, поищите статьи Грибовой В. в журналах Информационные технологии. Совсем скоро на сайте ВАК выложат реферат по техническим наукам. И сам реферат можно прочесть и там будут ссылки на ее статьи. В основном применяется в системах, где тербуется ввод многих параметров, при этмо параметры дополняются - меняются. В частности реализованы сситема для медицины, для автомото предприятия и для косметологии. Там текстовые данные вводятся, выводятся статические рисунки и простая динамика. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2007, 14:11 |
|
Построение интерфейса приложения из БД
|
|||
---|---|---|---|
#18+
Alexey KudinovДля разминки советую попробовать сделать динамическую расстановку таб ордера на форме с произвольным интерфейсом. Эту задачу нетрудно решить на неплохом уровне. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2007, 14:18 |
|
Построение интерфейса приложения из БД
|
|||
---|---|---|---|
#18+
Мне кажется, задачу с проверкой корректности ввода на уровне интерфейса тоже можно решить с помощью онтологического описания ограничений на атрибуты. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2007, 14:22 |
|
Построение интерфейса приложения из БД
|
|||
---|---|---|---|
#18+
guest_20072707Скажем, запускается приложение, производится запуск ХП для чтения информации об объектах системы (Справочники, документы), строится по этому описанию меню. По выбору конкретного пункта меню осуществляется вызов соответствующей ХП для чтения информации о выбранном объекте (описание формы, к примеру), при нажатии, допустим на кнопку производится опять-таки запуск соотв. ХП и "перечитывание" интерфейса из БД + выполняются необходимые действия...представьте себе генерацию HTML кода для сложного приложения из БД. Дело неблагодарное и плохомасштабируемое. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2007, 14:23 |
|
Построение интерфейса приложения из БД
|
|||
---|---|---|---|
#18+
> автоматизация разработки пользовательского интерфейса на основе онтологического подхода Полагаете, на эту тему стоит писать диссертации? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2007, 14:27 |
|
Построение интерфейса приложения из БД
|
|||
---|---|---|---|
#18+
guest_20072707Однако с п.2 не совсем. Например, ту проблему, которую Вы описали решить можно довольно просто при такой схеме (ну Вы это и сами уже сказали). Любую "одну конкретную проблему" решить можно. А практический результат, тем не менее, оказывается очень далек от "решены все проблемы". guest_20072707Тогда получаем комбинированного "монстра" "интерпретатор стандартного функционала" и "исполнитель нестандартного" :) Но ведь это тоже вариант, хотя и не очень привлекательный для разработчика :) Это бессмысленный вариант, поскольку требует делать двойную работу при отнюдь не удвоенном качестве в результате. Как только признается необходимость доставки на клиента нестандартного функционала, как только эта задача легко и хорошо решается, остается большой вопрос - а нафига нам теперь наше кривенькое чудо под названием "интерпретатор стандартного"? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2007, 14:29 |
|
Построение интерфейса приложения из БД
|
|||
---|---|---|---|
#18+
guest_20040621> автоматизация разработки пользовательского интерфейса на основе онтологического подхода Полагаете, на эту тему стоит писать диссертации? Сомнения были и есть именно из-за темы (пользовательский интерфейс никогда с наукой не ассоциировался). ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2007, 14:31 |
|
Построение интерфейса приложения из БД
|
|||
---|---|---|---|
#18+
softwarer Alexey KudinovДля разминки советую попробовать сделать динамическую расстановку таб ордера на форме с произвольным интерфейсом. Эту задачу нетрудно решить на неплохом уровне. Вот я и советую попробовать. Такая штука, да сделанная должным образом, ни в каком проекте не помешает. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2007, 14:32 |
|
Построение интерфейса приложения из БД
|
|||
---|---|---|---|
#18+
> Сомнения были и есть именно из-за темы (пользовательский интерфейс никогда с наукой не ассоциировался). Да, в общем, дело даже не в формальном названии. Я не очень понимаю, чего здесь принципиально нового. Берем модель, добавляем к уже описанным элементам стереотипы - и вуаля, "онтологический" интерфейс готов. Причем, существенное ограничение imho одно и оно касается структуры данных: необходима возможность явным образом получить часть имен непосредственно из базы данных. На мой взгляд, маловато для диссертации. Не находите? Понятно, что я утрировал, будет куча атрибутов элементов интерфейса и прочей ботвы, но на мой взгляд - ничего такого, что делало бы такой подход принципиально новым. Поправьте, если я ошибаюсь. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2007, 14:43 |
|
Построение интерфейса приложения из БД
|
|||
---|---|---|---|
#18+
guest_20072707Здравствуйте! Возможно, баян, но все же. На каком-то форуме прочитал интересный топик о том, что можно из БД полностью генерить интерфейс приложения. Мне сразу же стала интересна эта тема и вот, что я вижу: Вся бизнес-логика естессно на уровне БД (хранимые процедуры, функции и т.д.), там же хранится и описание того, как нужно построить интерфейс, то бишь описание объектов, свойств, методов. Exe-модуль содержит только модуль коннекта к БД и сам интерпретатор кода из БД. Скажем, запускается приложение, производится запуск ХП для чтения информации об объектах системы (Справочники, документы), строится по этому описанию меню. По выбору конкретного пункта меню осуществляется вызов соответствующей ХП для чтения информации о выбранном объекте (описание формы, к примеру), при нажатии, допустим на кнопку производится опять-таки запуск соотв. ХП и "перечитывание" интерфейса из БД + выполняются необходимые действия... Преимущества, которые сразу же бросаются в глаза: 1) существует возможность построения системы без необходимости частого обновления (оно будет нужно только иногда для обновления интерпретатора) во время этапа внедрения системы и сопровождения 2) интерефейс будет унифицирован а вопрос следующий: сталкивался ли кто-нибудь из форумчан с подобного рода системами? какие мнения существуют по этому поводу? только, пожалуйста, конструктивные предложения... заранее спасибо! :) Интерфейс зависит от данных, сделайте данные унифицированными и проблема интерфеса приятно удивит вас своей простотой. Сможете придумать универсальную структуру данных - решите свою задачу. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2007, 15:09 |
|
Построение интерфейса приложения из БД
|
|||
---|---|---|---|
#18+
Alexey Kudinovguest_20072707 Для разминки советую попробовать сделать динамическую расстановку таб ордера на форме с произвольным интерфейсом.В Делфи это примерно 2-3 строки кода + пару простых функций. На входе строка с именами контролов в нужном порядке. По сабжу. Хоть нетривиальная задача, но посильная по крайней мере в Делфи. Часть логики лежит в динамически загружаемых DFM, часть на скл-сервере, часть в виде исполняемых скриптов, например ФастСкрипт. Плюс ко всему настраиваемая форма, отображающая произвольные списки, а это 70% форм. Плюс к этому механизм докинга одной формы в другую для получения композитных форм. Динамические DFM создаются к-л рунтайм-редактором форм, например eControl. Совсем нестандартные формы - в DLL или BPL. В итоге: приложение можно развивать не модифицируя ЕХЕ. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2007, 16:38 |
|
Построение интерфейса приложения из БД
|
|||
---|---|---|---|
#18+
Alexey KudinovТакая штука, да сделанная должным образом, ни в каком проекте не помешает. Это факт. Давно использую и доволен. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2007, 16:47 |
|
Построение интерфейса приложения из БД
|
|||
---|---|---|---|
#18+
LSVВ Делфи это примерно 2-3 строки кода + пару простых функций. На входе строка с именами контролов в нужном порядке. Фи. Модератор: Ну дал бы сразу ссылку по существу, чем писать малосодержательные сообщения http://softwarer.ru/tab_ordering.html ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2007, 16:48 |
|
Построение интерфейса приложения из БД
|
|||
---|---|---|---|
#18+
Есть такая программа СКИФ, компании ФИНТЕКС служит для ведения отчётности... куча разных бланков... В ней частично реализованно то, о чём пишете на сколько я понял, устройство у неё следующее... часть на СУБД - MSDE часть в виде EXE файла часть blankPrint EXE-шник - общая оболочка, в которой реализованны общие функции системы - экспорт, импорт, печать....и т.д. Есть несколько "задач" - логика их выполнения загружается в БД скриптом К задачам есть куча "шаблонов" - по сути описание структуры документов в этих задачах, "шаблоны" хранятся в БД и загружаются через exe из xml файлов. На основании этих шаблонов, у пользователя выстраивается часть интерфейса, в основном Grid Когда что-нить меняется в формах документах - импортируются в системы через xml файлы... Когда что-нить в логике меняется, - новый скрипт БД И довольно редко меняется EXE клиент. Из плюсов - наверное разработчику так гараздо проще делать обновления, а они очень частые, в месяц по 2..5 раз. Вероятно у разработчика есть свой "конструктор".. приходят изменения от заказчика - они визуально там всё меняют - на выходе XML файлы которые рассылают клиентам... переписывать логику и изменять exe - приходится намного реже Из минусов - геморные обновления для клиентов... аж три вида обновлений: - импорт XML форм - проведения sql скрипта - замена exe и замена exe и бланков excel ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2007, 17:07 |
|
|
start [/forum/topic.php?fid=33&fpage=49&tid=1548962]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
2ms |
others: | 272ms |
total: | 438ms |
0 / 0 |