|
|
|
Кто-нибудь с этим работает?
|
|||
|---|---|---|---|
|
#18+
Привет всем участникам! Недавно натолкнулся в инете на описание какой-то архитектуры Combo под PowerBuilder. Кто-нибудь слышал или работает на такой? А то начальство как-раз ищет нечто подобное под новый проект, а я пока не знаю что ответить. Может у кого есть еще подбные ссылки, поделитесь pls. Best regards runman ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2007, 13:08 |
|
||
|
Кто-нибудь с этим работает?
|
|||
|---|---|---|---|
|
#18+
У нас есть нечто похожее по задачам. Только упор сделан не на построение интерфейса по метаинформации (насколько я понял из сайта), а на отказ от использования PowerScript\'а + использование DataWindow + автоматическая генерация кода. Только как такового полного описания framework\'а нет, т.к. пока разработано для внутреннего использования. Кое-какие screenshot\'ы по отчетным формам я даже сюда кидал /topic/284314&pg=1. У PL99 что-то типа такого framework\'а было, но показывать (продавать) его он не хотел, т.к. тоже для внутреннего использования был. А вообще - сильно сомневаюсь, что кто-нибудь кроме авторов (по крайней мере в России) на этом пишет. Разрабатывать такие вещи интересно, но пойди их потом кому продай... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2007, 13:44 |
|
||
|
Кто-нибудь с этим работает?
|
|||
|---|---|---|---|
|
#18+
МаркУ нас есть нечто похожее по задачам. Только упор сделан не на построение интерфейса по метаинформации (насколько я понял из сайта), а на отказ от использования PowerScript'а + использование DataWindow + автоматическая генерация кода. Не совсем понятна последняя фраза. Каким-образом выполняется "автоматическая генерация кода" и что значит "отказ от использования PowerScript'а" ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2007, 14:39 |
|
||
|
Кто-нибудь с этим работает?
|
|||
|---|---|---|---|
|
#18+
авторНе совсем понятна последняя фраза. Каким-образом выполняется "автоматическая генерация кода" и что значит "отказ от использования PowerScript'а" ? В данном случае (по ссылке) на основании пользовательского описания формы ввода параметров для отчета. Например, для Object_1 будет сгенерировано что-то типа такого скрипта. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2007, 15:18 |
|
||
|
Кто-нибудь с этим работает?
|
|||
|---|---|---|---|
|
#18+
Марк Логика создания отчетов в Вашем случае более-менее понятна. Насколько я понял, это некая автоматизация выборки данных в зависимости от выбора пользователя. При этом форма reporta, я полагаю, предворительно описана в каком-то dw. А что значит фраза "система построена на собираемых пользователем объектах" ? О каком пользователе идет речь: программисте у заказчика или о конечном пользователе, непосредственно работающего на Вашей системе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2007, 14:33 |
|
||
|
Кто-нибудь с этим работает?
|
|||
|---|---|---|---|
|
#18+
RunmanЛогика создания отчетов в Вашем случае более-менее понятна. Насколько я понял, это некая автоматизация выборки данных в зависимости от выбора пользователя. Несколько не так. Это автоматизация построения интерфейса для предоставления пользователю возможности выбора. А выборка данных идет в соответствии с выбранными пользователем параметрами, например, обычной хранимой процедурой. Runman При этом форма reporta, я полагаю, предворительно описана в каком-то dw. Да, форма должна быть описана в DataWindow (внутри проекта в *.pbd или внешняя в *.srd). Структура отчета типа crosstab описывается на отдельной вкладке, но тоже нужна заготовка в виде DataWindow. Фактически можно использовать для построения пользователем отчетов в виде задаваемого набора столбцов с группировкой в различных разрезах (т.е. что-то типа grid с группами) - но такой функционал сейчас не востребован. Аналогично строятся формы ввода, правда есть только три объекта DataWindow, TabControl и TreeView (остальные элементы интерфейса (checkbox,button и т.д.) размещаются в DataWindow), учитывается иерархия объектов для реализации зависимости в DataWindow (в частности иерархии типа master-detail). RunmanА что значит фраза "система построена на собираемых пользователем объектах" ? О каком пользователе идет речь: программисте у заказчика или о конечном пользователе, непосредственно работающего на Вашей системе? Пользователя framework'а. Как у заказчика так и у исполнителя (у нас). Сам пользователь может только немного себе интерфейс и стили в отчетах подстроить. У нас в системе присутствует метаинформация по полям и таблицам БД по которой можно генерировать шаблон формы ввода, отображать ссылки на документы, которые блокируют удаления по foreign key, фиксируют изменение документа (документом в системе называется набор записей (возможно в разных) таблицах, который соответствует операции, учитываемой в комплексе). Но эта информация не является обязательной - т.е. можно работать и без нее - по ней не строятся таблицы БД и т.д. (как в 1С). А в пользователя меняющего бизнес-логику приложения я не особо верю, т.е. не верю вообще. Это не более чем дешевый пиар. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2007, 14:57 |
|
||
|
Кто-нибудь с этим работает?
|
|||
|---|---|---|---|
|
#18+
Локшин МаркА в пользователя меняющего бизнес-логику приложения я не особо верю, т.е. не верю вообще. Это не более чем дешевый пиар. Ну тут проблема состоит из двух частей: - пользователи не умеют формулировать бизнес-правила - программисты не умеют делать удобным процесс ввода в систему бизнес-правил. И если второе еще возможно (в теории :) ), то с первым - никаких шансов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2007, 15:27 |
|
||
|
Кто-нибудь с этим работает?
|
|||
|---|---|---|---|
|
#18+
MarkУ нас в системе присутствует метаинформация по полям и таблицам БД по которой можно генерировать шаблон формы ввода, отображать ссылки на документы Опять вопрос. А по каким правилам Вы генерируете шаблон формы ввода? Насколько они гибки? Бизнес-логику, насколько помню, Вы описываете на процедурах сервера? Но не слишком ли это будет утомительным, и сколько таких процедур будет создано? Если не трудно, киньте пару результирующих screenshot-иков мне на e-mail для визуального представления. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2007, 16:07 |
|
||
|
Кто-нибудь с этим работает?
|
|||
|---|---|---|---|
|
#18+
RunmanОпять вопрос. А по каким правилам Вы генерируете шаблон формы ввода? Насколько они гибки? Правила достаточно простые - это или grid-расположение или freeform + wizard для задания свойств по метаинформации. Генерируется DataWindow и затем вся доработка напильником осуществляется в нем. Естественно, изменения метаинформации не приводят к автоматической генерации новых форм, но обычно такой потребности и не возникает (это можно реализовать, но тогда весь функционал DataWindow painter'а нужно повторять, а там и так на 25% уже реализовано :) ). За счет этого достигается бОльшая гибкость (чем при построении только по метаинформации). RunmanБизнес-логику, насколько помню, Вы описываете на процедурах сервера? Но не слишком ли это будет утомительным, и сколько таких процедур будет создано? По процедуре на объект + возможно некоторое количество хранимых процедур бл* обработки специальных событий окна. В текущем проекте 785 процедур. Утомительно... а скрипты прописывать - не утомительно? По описанию формы ввода или отчета генерируется файл который содержит прототипы для хранимых процедур, которые необходимо реализовать для соотв. формы ввода или отчета (с учетом названия полей в DataWindow, связи между объектами и т.д.). Все процедуры, реализовывающие бизнес-логику и обработку интерфейса для документа/отчета хранятся в одном файле т.е. представлены в виде одного исходного текста, что мне представляется более сетественным чем куча разбросанных скриптов по контролам. Плюс в процедуре есть параметры, так что много каких событий можно обрабатывать в хранимой процедуре :). Вообще такая процедура для DataWindow выглядит немного похоже на оконную функцию в программах для Windows. Ну и вообще - вся бизнес логика на сервере на хранимых процедурах - это уж не такая и экзотика, здесь просто еще добавляется и поддержка интерфейса прользователя. RunmanЕсли не трудно, киньте пару результирующих screenshot-иков мне на e-mail для визуального представления. Формы ввода? Ну вот, допустим, распоряжение на отпуск. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2007, 17:40 |
|
||
|
Кто-нибудь с этим работает?
|
|||
|---|---|---|---|
|
#18+
забыл приложить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2007, 17:41 |
|
||
|
Кто-нибудь с этим работает?
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky- программисты не умеют делать удобным процесс ввода в систему бизнес-правил. Вообще есть удобное и быстрое средство сделать этот процесс удобным - посадить его немного поработать со своим творением, не в клиническом случае обычно наступает понимание :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2007, 17:44 |
|
||
|
Кто-нибудь с этим работает?
|
|||
|---|---|---|---|
|
#18+
Локшин Марк Anatoly Moskovsky- программисты не умеют делать удобным процесс ввода в систему бизнес-правил. Вообще есть удобное и быстрое средство сделать этот процесс удобным - посадить его немного поработать со своим творением, не в клиническом случае обычно наступает понимание :) А я и не говорил, что такое невозможно. Я говорил, что (несмотря на то, что это возможно) этого все-таки нет. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2007, 20:36 |
|
||
|
Кто-нибудь с этим работает?
|
|||
|---|---|---|---|
|
#18+
Я думаю, что представленный subj - это нормальная внутрифирменная технология - но не тиражный продукт. В любой приличной программистской фирме (не только в среде PB) накапливается некая сумма наработок , опыт проектов... Затравка заложена еще в PFC - pfc_n_cst_appmanager Насколько я понял, ребята в Combo круто заложились на динамически создаваемые окна и contol-ы. ИМХО - вопрос философский. Из своего опыта - если речь идет о не широко тиражных продуктах , т.е. для конкретные приложения для конкретных заказчиков, то необходимости в очень гибких runtime конструкторах спорна. Уж очень тонка грань, когда непрограммистское вмешательство разрушает безопасное функционирование критичных алгоритмов - у меня есть опыт "конфигурирования" 1С . Кроме того - фиксированные или типовые (к моменту сборки) диалоги и формы - проще документировать, внедрять, обучать. Исключение - т.н. "отчетники" - доступная юзеру гибкость выходных отчетных форм полезна Тем не менее - все подобные изыски полезны - "коллективный креатив" позволил бы отфильтровать действительно интересные и эффективные решения. Не просто "как загрузить файл" - а концепции разработки приложений Контроллер (controller) – это объект, не относящийся к интерфейсу пользователя и отвечающий за обработку системных событий, пришедших от модели. Контроллер определяет интерфейсы и методы для выполнения системных операций. Большинство систем получает внешние события. Обычно они связаны с графическим интерфейсом пользователя. Кроме того, системе могут передаваться внешние сообщения, например сигналы от считывателя штрих кодов или кассового аппарата. Во всех случаях при использовании ООП для обработки внешних событий применяются контроллеры, обеспечивающие внешний интерфейс объектов (например, объектов окон или отчетов) и вынесение обязанностей по выполнению системных событий за пределы уровня представления Вот по этому вопросу совершенно солидарен с авторами. Идея в том, что нетривиальную логику приложения нужно выносить с control-ов и вообще с визуальных обьектов. Очень неудобно работать, когда на какой-то кнопке или datawindow в event-е типа clicked/doubleclicked "висит" код на пару сотен строк - их иногда и не найти с первого раза - пока докопаешься до сработавшего кода в глубоком ancestor-е. А если учесть, что некая функциональность обеспечивается целым набором логически связанных window - неразумно держать исполнение этой функциональности на каком-то одном визуальном обьекте - лучше на специальном "контроллере". В общем, приложение нужно четко разделить на обьекты интерфейса, сервисов.... и совершенно определенно выделенные обьекты бизнес-логики приложения. Разделение этой логики между СУБД и PB - отдельная "религиозная" тема. Типа дополнения к теме. Разделение понятия "контроллер" на части : 1) события по инициативе системы - т.н. event/alert-система в вариантах : - события БД - события сети - события других приложений - события внешних устройств Реализация на базе унаследованных от timing обьектов, которые ведут сканирование соответствующих event-ов/alert-ов. Любой проинициированный пользователем диалог просто "подписывается" на нужные ему alert/event - и получает их по типовому согласованному интерфейсу сообщений 2) события по инициативе юзера - т.н. юзерский "навигатор контекста" - всякие клики, смена фокуса, ввод с клавиатруы, changeitem, tabSelect... Простейший навигатор - master/slave, treview/datawindow. Но по требованиям изощренных заказчиков - есть навигаторы в виде комбинаций treeview,datawindow,checkbox,radiobutton, да еще на многовкладочных tab-ах - со сменой dataobject в информационных datawindow, да еще с памятью предыдущих выборов. Реализуется в виде nonvisual обьекта, который контролирует и перетаскивает "в себя" все event-ы control-ов. Причем делает это в виде "сборки" (merge) некоторой строки управления (скрипт навигатора) из всех этих юзерских деяний, которая затем парсится ("компилируется") и исполняется по всем включенным компонентам. Базовая последовательность : - анализ необходимости и смена dataobject на datawindow - модификация SQL операторов (особенно часто - WHERE ... ) и фильтров - определение параметров и retrieve для datawindow - установление согласований типа master/slave Исполненные скрипты навигатора пихаются в стек - это обеспечивает удобный undo и rewind интерфейс - просто исполнение ранее собранных и сохраненных скриптов навигатора в обратном порядке извлечения из стека Дополнение - специальный "терминальный" режим работы пользователя - когда нужен сверхбыстрый "машинописный" ввод заданного набора команд (с опциями) - без отрыва рук от клавиатуры на дергание мышкой. Делается на основе обьекта "команда оператора" с типовым парсером синтакиса команд и нужным количеством inherited обьектов - по конкретному набору заказанных команд. Этот же набор команд допускает их использование в режиме загрузки командных скриптов извне 3) Логи - очень эффективно для отладки и для анализа работы приложения в штатных runtime условиях Для всех типов "контролеров" по специальным глобальным флажкам можно вести логи (можно в отдельных файлах, можно в одном). Метки времени - с точностью до 10 мс - регистрация поступления внешних событий и реакция на них текущего приложения - "сборка" и отработка скриптов работы "навигатора контекста"; при изощренных комбинациях "выбора пользователя" очень удобно посмотреть конкретно, как этот выбор реализуется; также очень полезны для некоторых задач оказались логирование retrieve-ов - параметры (массивы не применяются), время исполнения кол-во строк, обьем dataset... - логирование команд оператора вообще лучше делать не в файл а в БД - это даже не лог , а "вахтенный журнал" Ну где-то так. Вот. Поделился. Идеями. Кодом - бессмысленно. Все слишком сильно интегрированно в конкретные проекты. Документации почти нет - "из уст в уста" внутри команды. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2007, 12:50 |
|
||
|
Кто-нибудь с этим работает?
|
|||
|---|---|---|---|
|
#18+
ZhVИз своего опыта - если речь идет о не широко тиражных продуктах , т.е. для конкретные приложения для конкретных заказчиков, то необходимости в очень гибких runtime конструкторах спорна. Все зависит от размера проекта и уровня прикладных разработчиков. Даже при всей гибкости и мощи Datawindow в PB, изменение структуры БД может повлечь за собой значительных усилий по модификации всех dw, которых коснется это изменение. Разработка сложных систем, как правило, процесс итерационный, и многих тонкостей на начальном этапе можно и не заметить. Поэтому наличие некоего генератора синтакиса dw на основе метаинформации явно бы не помешало и для НЕ тиражного продукта. К тому же, в последнем случае, должны значительно снизиться требования к квалификации прикладных программистов: большинство трудоемкого и требующего опыта и знаний системного программного кода уже заложено "умными головами". Им остается только работать по определенным правилам и концентророваться на прикладной части проекта. Не всем это может понравиться. Но руководитель-спонсор проекта, в первую очередь, озабочен в получении конечного результата в рамках выделенного бюджета и сроков, а уж в последнюю о привычках и личных пристрастиях отдельных разработчиков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2007, 14:48 |
|
||
|
Кто-нибудь с этим работает?
|
|||
|---|---|---|---|
|
#18+
RunmanПоэтому наличие некоего генератора синтакиса dw на основе метаинформации явно бы не помешало и для НЕ тиражного продукта. Только это не решает проблему изменения приложения, связанную с измененем структуры БД, т.к. либо все заново сгенерированные DataWindow нужно будет дорабатывать "руками" по-новой, либо структура такого описания будет слишком раздутой и сложной (чтобы можно было описать различные нестандартные случаи). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2007, 15:37 |
|
||
|
Кто-нибудь с этим работает?
|
|||
|---|---|---|---|
|
#18+
RunmanДаже при всей гибкости и мощи Datawindow в PB, изменение структуры БД может повлечь за собой значительных усилий по модификации всех dw, которых коснется это изменение. Если бы только dw. А если ваше приложение работает на пользовательской БД, которая содержит ценную (с точки зрения потребителя) информацию - к которой вас могут и не подпустить - только в ночь с субботы на воскресенье в присутствии секурити. А если обьемы огромны - сотни гиг. Безоглядная "реорганизация" может просто убить такую базу - оцените последствия. Наглядный опыт есть - в 1С есть неплохие интсрументы, но слишком крутая реконфигурация регистров, плана счетов, справочников и т.д. требут просто интсаляции новой конфигурации и переноса данных из старой - геморр еще тот. В общем - у нас дело поставлено так, что на работающем приложении/базе - что-то добавлять еще можно, но долго и упорно обосновать необходимость такой операции, согласовать (получить добро) со всеми заинтересованными лицами... И не очень часто. Удалять или менять имена и типы - ЗАПРЕЩЕНО. Runman Им остается только работать по определенным правилам и концентророваться на прикладной части проекта.. - я ж говорю - это порочный путь "Программирования в 1С". Скоро у вас появится штатная должность "конфигуратор PowerBuilder" - и студенты за 300 баксов вам такого наконфигурируют :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2007, 17:19 |
|
||
|
Кто-нибудь с этим работает?
|
|||
|---|---|---|---|
|
#18+
To ZhV Никто не спорит, что управление проектом - задача архи-важная и архи-нужная :), в том числе и управление выпуском версий. Вопрос ведь еще и в том, как в рамках этого проекта организовать эффективный технологический процесс создания программного продукта. авторя ж говорю - это порочный путь "Программирования в 1С". А какой путь предлагаете Вы? Каждый новый проект - с "нуля"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2007, 15:33 |
|
||
|
Кто-нибудь с этим работает?
|
|||
|---|---|---|---|
|
#18+
ZhV Runman Им остается только работать по определенным правилам и концентророваться на прикладной части проекта.. - я ж говорю - это порочный путь "Программирования в 1С". Скоро у вас появится штатная должность "конфигуратор PowerBuilder" - и студенты за 300 баксов вам такого наконфигурируют :) Не самый плохой вариант Это значит что студенты за 600 баксов наконфигурируют вполне рабочие модули. Ведь не факт, что специалист по PFC за 2000 сможет быстрее с нуля разобраться в хитросплетениях логики и поправить что то быстрее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2007, 10:38 |
|
||
|
Кто-нибудь с этим работает?
|
|||
|---|---|---|---|
|
#18+
Обе крайности уродливы до отвращения. как конфигурасты со своими сверх-супер-универсальными "движками" и геморроем с их "конфигурированием", так и пугливые разработчики-параноики боящиеся дышать на собственный продукт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2007, 11:29 |
|
||
|
|

start [/forum/topic.php?fid=15&msg=34801028&tid=1336987]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
66ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 414ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...