|
|
|
Каркас приложения с SmartGrid
|
|||
|---|---|---|---|
|
#18+
Написал каркас приложения под VFP 9 - www.imoxsoft.com/articles/vfox/vfpframework.html . За основу взял код Климова Алексея Петровича ( www.caws.atnet.ru/vfox ). Надеюсь проект будет интересен. SmartGrid испытывал на 150 000 записях. Вполне удовлетворен результатами работы. Возможны баги, если найдете, то пишите на protein@inbox.ru, буду исправлять. Краткое описание возможностей программы: 1. Унификация построения пользовательского интерфейса 2. Сохранение параметров форм между сеансами работы программы 3. Особенности SmartGrid 3.1. Фильтрация по колонке с поддержкой wildcard 3.2. Построение сложного фильтра посредством диалога 3.3. Поиск по колонке с возможностью продолжения и поддержкой wildcard 3.4. Установка цвета колонки 3.5. Установка положения колонки 3.6. Скрытие колонок 3.7. Установка шрифта текста в колонке 3.8. Вычисление агрегатной функции из предопределенного набора по колонке 3.9. Сохранение настроек контрола между сеансами работы программы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2007, 13:49 |
|
||
|
Каркас приложения с SmartGrid
|
|||
|---|---|---|---|
|
#18+
Not Found The requested URL /articles/vfpframework was not found on this server. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2007, 15:01 |
|
||
|
Каркас приложения с SmartGrid
|
|||
|---|---|---|---|
|
#18+
http://www.imoxsoft.com/articles/vfox/vfpframework.html Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2007, 15:02 |
|
||
|
Каркас приложения с SmartGrid
|
|||
|---|---|---|---|
|
#18+
Сорри за линк 8) ошибка вышла ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2007, 15:07 |
|
||
|
Каркас приложения с SmartGrid
|
|||
|---|---|---|---|
|
#18+
Здравствуйте Максим! Чертовски не хочется быть Кассандрой, но боюсь, что Ваше щедрое предложение заинтересует немногих. И вот почему Фреймворк - очень нужное средство разработки. Но понять это можно лишь наработав определенный опыт. Начиная программировать новички пытаются решить все проблемы в лоб. Это понятно - есть конкретная задача и есть средства ее решить напрямую кодируя. А времени -нет. Нужно выполнять поставленную задачу, а не копаться в чужих программах, имеющих к решению лишь опосредованное отношение. Гораздо позднее понимаешь, что все конкретные задачи имеют свойство повторяться - тогда поднимаешь свои старые программы, чистишь коды, стараешься создать абстрактные процедуры и классы, пригодные для применения в последующем. Создаешь свои генераторы меню, тулбаров и т.п. И в один прекрасный момент понимаешь - ба, да это же натуральный скелет для вновь создаваемого приложения, т.е. фреймворк. Таким образом, новички просто не понимают удобство применения фреймворка, а ветераны, осознавшие его необходимость, уже имеют свой собственный. Он может быть лучше Вашего, может быть хуже, но он свой собственный, выстраданный, при возникновении проблем гораздо легче понять где нужно копать. Уже сложился определенный стиль программирования, пользователи привыкли к интерфейсу и поведению программ и отказаться от этого очень нелегко даже в пользу продукта гораздо более высокого качества. Такое будет мое ИМХО. P.S. Надеюсь, что мое мнение ошибочно. Кстати, хорошее документирование Вашей разработке бы не повредило. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2007, 14:43 |
|
||
|
Каркас приложения с SmartGrid
|
|||
|---|---|---|---|
|
#18+
2 Dag Спасибо за критику ,) Принимаю. ИМХО есть ИМХО, и в принципе мое решение лишним не будет. Я, например, долго искал по инету подобные вещи, и, к сожалению, выбирать особо было не из чего. В основном я рылся в чужом коде, как золотоискатель, и брал не все решение целиком, а только понравившуюся часть или идею. Я не настаиваю на использовании полностью данного проекта, а просто, надеюсь, что что-то будет полезно. По поводу документации. Ее можно частично посмотреть на сайте Алексея. С Уважением, Максим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2007, 15:53 |
|
||
|
Каркас приложения с SmartGrid
|
|||
|---|---|---|---|
|
#18+
Dag... а ветераны, осознавшие его необходимость, уже имеют свой собственный... Следующая фаза - использовать просто FoxPro, сделав лишь sub-class базовых классов и уже работая с ними, а не напрямую, по ходу проекта меняя то что надо... То есть использование уже того, что есть в самом FoxPro, не связывая себя жесткими рамками своих предыдущих решений или чужих идей :) But anyway, good luck! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2007, 23:09 |
|
||
|
Каркас приложения с SmartGrid
|
|||
|---|---|---|---|
|
#18+
Не могу с Вами согласиться. Правильный фреймворк - это не зависимость от своих или чужих решений, а напротив - свобода от тупого кодерства. Я уже не помню синтаксис команды REPORT FORM, потому что использовал ее в последний раз в девятьсот лохматом году. Я не знаю команд которыми организуется в Фоксе меню. А нафига? Обьектно-ориентированное меню гораздо удобнее для разработки. Я забыл про SEEK, FIND, LOCATE и иже с ними. Весь требуемый функционал обеспечивает каркас. Все что требуется от меня -добавлять при необходимости в системные таблички нужные записи. Просто, быстро, эффективно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2007, 08:42 |
|
||
|
Каркас приложения с SmartGrid
|
|||
|---|---|---|---|
|
#18+
DagНе могу с Вами согласиться. Правильный фреймворк - это не зависимость от своих или чужих решений, а напротив - свобода от тупого кодерства. Только критерии правильности у каждого разработчика свои, и они меняются с накоплением опыта от проекта к проекту. Копипастить никто не запретил - я думаю это лучший компромис между развитием фреймворка и влиянием его на старые проекты. DagЯ уже не помню синтаксис команды REPORT FORM, потому что использовал ее в последний раз в девятьсот лохматом году. Я не знаю команд которыми организуется в Фоксе меню. А нафига? Обьектно-ориентированное меню гораздо удобнее для разработки. Я забыл про SEEK, FIND, LOCATE и иже с ними. А вот про SEEK зря забыл, каркас не может обеспечивать расчеты в приложении, логика приложения индивидуальна для каждого проекта, и не всегда SQL дает нужную производительность, иногда за счет XBASE можно ускорить сложные расчеты в разы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2007, 09:15 |
|
||
|
Каркас приложения с SmartGrid
|
|||
|---|---|---|---|
|
#18+
2 Dima T автор каркас не может обеспечивать расчеты в приложении, логика приложения индивидуальна для каждого проекта А что, разве для логики обработки и расчетов невозможно сделать класс-"обёртку" (или несколько взаимодействующих классов) ? Тем более, что по технологии доступа к данным уже имеется объектная модель курсор-адаптера... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2007, 10:59 |
|
||
|
Каркас приложения с SmartGrid
|
|||
|---|---|---|---|
|
#18+
Дима Т Только критерии правильности у каждого разработчика свои, и они меняются с накоплением опыта от проекта к проекту. Это верно. Я бы назвал правильным фреймворком тот, который позволяет вносить коррективы в свои отдельные части так, что это не затрагивает работу других частей. Можно вносить любые коррективы по мере их накопления, но даже старый проект скомпиленный на свежем фреймворке останется работоспособным. Ну а если накопится критическая масса изменений - тогда проще создать новый каркас с использованием самых лакомых кусков старого. Все равно это быстрее, чем пытаться кодировать в лоб. Если конечно речь не идет о приложении с 3мя таблицами и 2мя формами. Копипастить никто не запретил - я думаю это лучший компромис между развитием фреймворка и влиянием его на старые проекты. Copy-Paste - наше все, особенно если ковыряться в чужом проекте. Но если в своем коде приходится копипастить больше 2 раз, я начинаю задумываться, а не вынести ли это в отдельный метод, скрипт или процедуру. А вот про SEEK зря забыл, каркас не может обеспечивать расчеты в приложении, логика приложения индивидуальна для каждого проекта, и не всегда SQL дает нужную производительность, иногда за счет XBASE можно ускорить сложные расчеты в разы. Про SEEK забыл потому что мне больше нравиться INDEXSEEK() :-) Но чаще всего поисковые функции задействованы в пользовательском интерфейсе. Для того, чтобы пользователь мог найти нужную запись - вот тут-то и работают поисковые модули фреймворка или как заметил gelosqlru - классы-обертки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2007, 12:02 |
|
||
|
Каркас приложения с SmartGrid
|
|||
|---|---|---|---|
|
#18+
gelosqlru2 Dima T автор каркас не может обеспечивать расчеты в приложении, логика приложения индивидуальна для каждого проекта А что, разве для логики обработки и расчетов невозможно сделать класс-"обёртку" (или несколько взаимодействующих классов) ? Тем более, что по технологии доступа к данным уже имеется объектная модель курсор-адаптера... Возможно, и даже нужно, только это не имеет отношения к обсуждаемому вопросу, т.к. эти классы будут принадлежностью конкретного проекта, а не общего фреймворка для всех проектов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2007, 12:16 |
|
||
|
Каркас приложения с SmartGrid
|
|||
|---|---|---|---|
|
#18+
DagМожно вносить любые коррективы по мере их накопления, но даже старый проект скомпиленный на свежем фреймворке останется работоспособным. Сначала тоже так думал и делал, пока не потребовалось вернуться к проектам законченным год-два назад, где несмотря на все старания поддержания обратной совместимости фрэймворка, повылазили кое-какие мелкие нестыковки, причем у клиента, т.к. на мой взгляд доработки были незначительные, соответственно и проверка была соответствующей. Поэтому сегодня пошел по такому варианту: есть общий набор базовых классов, который используется в текущих проектах, если проект заканчивается (все сделано, отдано и продолжение не ожидается) - базовые классы копируются в проект, пути в проекте к ним меняются, и в случае возникновения необходимости серьезных доработок всегда можно все переключить на текущий фрэймворк и хорошо протестить. А если разработчик и пользователь фрэймворка разные люди, то проблема еще сильнее обостряется, пользователь в очередной версии, например, что-то новое попробовал, работает так-то, не совсем логично, но работает, воспользовался. Потом разработчику кто-то скал - нелогично, тот поправил. В итоге у пользователя после очередного обновления это место стало криво работать. Один из ярких примеров такого рода проблем у 1С: при выходе 1С8, при очередном обновлении движка (по сути тот же фрэймворк) ряд функций стало работать по другому, сама 1С обновила свои типовые конфигурации и там все пучком, а те разработчики, кто успел капитально типовую перекроить или с нуля что-то нарисовать вынуждены были заново все перелопачивать и перепроверять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2007, 12:39 |
|
||
|
Каркас приложения с SmartGrid
|
|||
|---|---|---|---|
|
#18+
автор... эти классы будут принадлежностью конкретного проекта, а не общего фреймворка для всех проектов. Не согласен с данным утверждением уважаемого автора Dima T. В знак чего привожу пример концептуального подхода, который можно применить при создании класса обработки данных. Итак, в основе обработки данных лежит процесс, реализующей логику расчетов и сами расчёты. 1. Имеем перечень участвующих в процессе таблиц, описание связей между ними, используемые индексы (короче, метаданные). 2. Процесс, по сути - это некая процедура навигации, т.е. «обхода» по записям заданной таблицы. Будем называть её «главной» таблицей. 3. Диапазон обрабатываемых записей «главной» таблицы определяется условиями типа : • только текущая запись, • запись, найденная по ключу (или по связи), • по логическому условию и т.д. . 4. Типы выполняемых действий над записями «главной» таблицы: • удалить, • изменить. • только чтение. 5. «Главная» таблица имеет связи типа «ведущий-ведомый» с другими таблицами, реквизиты которых могут быть считаны при переходе на очередную запись «главной» таблицы процесса. 6. Обход «главной» таблицы идет по определенной сортировке (или без таковой, физическим порядком) 7. После установки на очередную запись выполняются переходы на записи в подчиненных таблицах. После чего, собственно, можно выполнить сами операции по обработке. Это могут быть : • Простейшие формулы. • Структурные конструкции типа IF,CASE. • Вызовы других процессов. • Вызовы функций и процедур. • Добавление записей в другие таблицы (заметьте, что в п.3 нет пункта типа «Добавить», так как в этом случае просто нечего «обходить»). В этом случае «главная» и связанные с ней таблицы являются источником данных для той таблицы, в которую идет добавление. Разве это сложно выполнить в виде универсального класса ? ЗЫ: В целом конкретно предлагаю завести топик на тему фрэймворков на платформе FoxPro, обсудить более детально что есть, чего нет, кому что нравиться, чего бы хотелось, может еще кто-нибудь имеет какие-либо их реализации, у кого какой опыт в их использовании или создании и проч. Хотя вероятно это уже где-то есть на формуме, тогда рад буду воспользоваться ссылочкой... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2007, 15:26 |
|
||
|
Каркас приложения с SmartGrid
|
|||
|---|---|---|---|
|
#18+
gelosqlruНе согласен с данным утверждением ... Разве это сложно выполнить в виде универсального класса ? А зачем делать обертку над XBASE? Он и так понятен и прозрачен. Основное его приемущество - производительность, в остальных случаях удобней SQL, а при создании оберток все выигрыши в производительности могут потеряться из-за увеличения времени на работу оберточного кода. Я в своем посте писал про бизнес-логику конкретного приложения, которая выходит за рамки нормальных форм реляционных БД. Она уникальна для каждого проекта и напрямую зависит от его предметной области. Что общего между складским учетом, расчетом зарплаты и ведением истории болезни в больнице? gelosqlruЗЫ: В целом конкретно предлагаю завести топик на тему фрэймворков на платформе FoxPro, обсудить более детально что есть, чего нет, кому что нравиться, чего бы хотелось, может еще кто-нибудь имеет какие-либо их реализации, у кого какой опыт в их использовании или создании и проч. Хотя вероятно это уже где-то есть на формуме, тогда рад буду воспользоваться ссылочкой... Ссылки в начале поста :) Как уже выше писал Dag - фрэймворк это персональное дело каждого разработчика. Кому хочется все готовое - Access, .NET, 1C. На ASM`e почему-то большие проекты никто не пишет, хотя должно работать максимально быстро. Так вставки в особо критических к производительности местах. Любой универсальный код накладывает ограничения на возможности языка разработки, т.е. разработчик сам себя ограничивает в возможностях для ускорения своей работы, это нормально, но тут каждый решает сам где золотая середина, что прописывать постоянно, а что один раз вынести в библиотеку. Новички над этим не задумываются, т.к. их цель хоть как-то сделать, а по мере накопления опыта у каждого появляются похожие библиотеки, их главное достоинство в том что они написаны самим-собой, и ты знаешь что там реально происходит. Поделиться нежалко, только я, например, не буду доказывать что мой фрэймворк лучший, идеальный и т.п. он меня устраивает и я его дописываю по необходимости, и тратить время на навязывание его кому-то, доказывание его преимуществ, а тем более доработку под кого-то не хочу и не буду. Он меня устраивает, остальное не важно. Удел фрэймворка - избежание постоянного кодирования рутинных операций, а что считать рутиной дело сугубо индивидуальное. Одно из самых частых заблуждений: похожая операция встретилась второй раз - надо на оба раза сделать один код, а то что на создание этого универсального класса уходит порой день, хотя можно скопировать, подправить и закончить за час разработчик не задумывается, а третье использование может никогда и не наступит, а если наступит, то может опять потребовать серьезной доработки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2007, 22:54 |
|
||
|
Каркас приложения с SmartGrid
|
|||
|---|---|---|---|
|
#18+
Dima T…при создании оберток все выигрыши в производительности могут потеряться из-за увеличения времени на работу оберточного кода. Корреляция между количеством «оберточного» кода и производительностью работы программы (с субъективной точки зрения пользователя) при современном уровне развития аппаратных средств неумолимо стремиться к нулю. Тем более, что большую часть машинного времени в программном обеспечении информационных систем составляет работа по считыванию и записи данных непосредственно на носители. Dima T Я в своем посте писал про бизнес-логику конкретного приложения, которая выходит за рамки нормальных форм реляционных БД. Не следует путать разные понятия: «бизнес логика» как набор абстрактных правил, сформулированных в терминах понятных для конечного пользователя и «нормальные формы реляционных БД» как модель неизбыточного хранения структурированной информации и её непротиворечивой модификации, которую явил свету дедушка Ф.Кодд. За рамки «нормальных форм» может выйти только концепция OLAP-хранилищ, где структура данных умышлено денормализуются для быстроты доступа к оным для получения сложных агрегированных ретроспектив. Dima T Она (бизнес-логика) уникальна для каждого проекта и напрямую зависит от его предметной области. Что общего между складским учетом, расчетом зарплаты и ведением истории болезни в больнице? Да, для кладовщика, главбуха и врача их деятельность не имеет ничего общего . Но это взгляд с точки зрения конечного потребителя, который в своей работе оперирует конкретными атрибутами своей предметной области. Этот взгляд лишен элементов абстрактного восприятия, которое принципиально необходимо для создания модели бизнес-логики, которую можно будет затем доверить машине. А «бизнес-логика» с точки зрения абстрактной модели как раз и состоит из тех самых элементарных «процессов», структуру и механизм действия которых я и предложил выше и «это» есть то самое «общее», о котором спрашивает Дима Т . Что ж, в догонку помещу здесь еще ссылочки на 2 фрэймворка (так сказать, для коллекционеров) … http://www.luxsoft.by (см. Инструментальную систему «Квант», надо будет с них за рекламу взять :=)) ) http://www.visionpace.com (Visual Maxframe Professional, the object-oriented framework for creating state-of-the-art Visual FoxPro applications.) … и подведу сюда свою жирную черту следующего вида. Все фрэймворки, которые мне пришлось видеть обладают одной интересной особенностью. Они мне нравятся с точки зрения получаемого вида и возможностей создаваемых с их помощью программ (и то не все !). Но мне совершенно не устраивает то, какой ценой это достигается. Копаться в бесконечных лабиринтах библиотек визуальных классов, выясняя иерархию подчиненности классов, перечень и описания их свойств, методов, копипастить во всевозможных текстовых файлах, содержащих параметры каких-то понятных только разработчику фрэймворка настроек, полный отрыв между описанием структуры данных и компонентами доступа к ним (иногда по причинам отсутствия метаданных как таковых). Я такого мазохизма как-то не хотел бы себе позволять. В общем, мне кажется, что разработчик в этом случае перегружен чрезмерным числом технических деталей, не получая в таких фрэймворках должного уровня абстрагирования. Опыт и интуиция подсказывает мне, что уровень Project Manager, Menu und Form und Report Disainer и проч., предлагаемых средой Fox-а недостаточен (тем более, что общеизвестен факт наличия обоснованных нарекания на предлагаемый ими перечень возможностей и функционал, т.к. MS умышлено «клал прибор» на эти вопросы по сравнению со своими новыми средствами, дабы не создавать внутренней конкуренции между продуктами). Предлагаю взглянуть на вопрос с точки зрения архитектуры фрэймворка и оценить возможность её реализации средствами FoxPro, по-прежнему подразумевая безупречность языковых и рантаймовых возможностей фокса, базис которых был заложен задолго до MS. Фрэймворк должен состоять из : • репозитория прикладных объектов, построенного на реляционных таблицах, • набора инструментария для редактирования атрибутов прикладных объектов репозитория (т.е. работа разработчика идет вне средств среды FoxPro), • исполнительная часть, которая выполняет чтение и интерпретацию содержимого репозитория и представляется конечному пользователю как прикладное решение, годное к применению. В целом , напоминает устройство 1С. Но 1C написан на С++, неужели то же (и даже лучше) нельзя выполнить средствами Fox? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2007, 10:33 |
|
||
|
Каркас приложения с SmartGrid
|
|||
|---|---|---|---|
|
#18+
gelosqlru. Но 1C написан на С++, неужели то же (и даже лучше) нельзя выполнить средствами Fox?FoxPro, если Вам не известно - создавался как Framework для C++... То есть писать Framework для Framework довольно бесперспективное занятие... Хотя неплохое упражнение для зарядки ума - мы все через это уже прошли But anyway, good luck! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2007, 12:14 |
|
||
|
Каркас приложения с SmartGrid
|
|||
|---|---|---|---|
|
#18+
gelosqlru Dima T…при создании оберток все выигрыши в производительности могут потеряться из-за увеличения времени на работу оберточного кода. Корреляция между количеством «оберточного» кода и производительностью работы программы (с субъективной точки зрения пользователя) при современном уровне развития аппаратных средств неумолимо стремиться к нулю. Тем более, что большую часть машинного времени в программном обеспечении информационных систем составляет работа по считыванию и записи данных непосредственно на носители. Умельцы на 1С тоже так думают, а потом удивляются: почему 4-х процессорный сервак, с 4Gb оперативки с 20-30 пользователями в терминале, жутко тормозит. И покупка 8 (16) поцессорного сервака жизнь пользователям не сильно облегчает. Зато пишут ой как бысто. gelosqlru Dima T Я в своем посте писал про бизнес-логику конкретного приложения, которая выходит за рамки нормальных форм реляционных БД. Не следует путать разные понятия: «бизнес логика» как набор абстрактных правил, сформулированных в терминах понятных для конечного пользователя и «нормальные формы реляционных БД»... Не "термины пользователя", бизнес правила конкретной задачи. Например в складском учете остаток равен все приходы минус все расходы. С точки зрения реляционной БД храни приходы и расходы и каждый раз остаток считай, только долго он считается, а нужен постоянно, поэтому приходится делать в том или ином виде избыточность для хранения остатка, стандартными реляционными средствами контроля корректность остатков не отследить, а объекты бизнес-логики как раз для того, один раз прописал - при сохранении прихода изменить остатки и больше не вспоминаешь, но это все нужно в рамках конкретного проекта проги складского учета. gelosqlru ... как модель неизбыточного хранения структурированной информации и её непротиворечивой модификации, которую явил свету дедушка Ф.Кодд... Повторюсь, кроме дедушки Ф.Кодда наверно никто не видел "неизбыточного хранения", поэтому задача хранения и поддержание целостности избыточной информации ложиться на разработчика, а не на СУБД gelosqlru... Все фрэймворки, которые мне пришлось видеть обладают одной интересной особенностью. Они мне нравятся с точки зрения получаемого вида и возможностей создаваемых с их помощью программ (и то не все !). Но мне совершенно не устраивает то, какой ценой это достигается. Копаться в бесконечных лабиринтах библиотек визуальных классов, выясняя иерархию подчиненности классов, перечень и описания их свойств, методов, копипастить во всевозможных текстовых файлах, содержащих параметры каких-то понятных только разработчику фрэймворка настроек, ... Потому что написано под себя, прекрасно известно (разработчику) как и что написано, где слабые места и нестыковки. Писать документацию разработчика просто напрягает. Поэтому цена использования другим разработчиком - именно то что тебя не устраивает. А MS редко что сами пишут с нуля. Будет готовый и хоть немного раскрученный фрэймворк: купят, причешут и будут продавать. gelosqlru... В целом , напоминает устройство 1С. Но 1C написан на С++, неужели то же (и даже лучше) нельзя выполнить средствами Fox? Fox тоже на С или С++ написан, да Windows тоже. MFC микрософт сделал или .NET - чем не фрэймворк? Главное не на чем, а как написан. По сути это вопрос о разработке еще одного языка программирования, а тут как показывает практика - идеала нет, иначе все бы на нем работали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2007, 15:10 |
|
||
|
Каркас приложения с SmartGrid
|
|||
|---|---|---|---|
|
#18+
Sergey ChFoxPro, если Вам не известно - создавался как Framework для C++... Ну, да. Конечно, же мне об этом не докладывали ... Зато мне известен факт того, что FoxPro - это Framework не для C++, а для разработки программ обработки реляционных баз данных, написанный на C++. И я сейчас хочу затронуть вопрос возможностей данного Framework-а, насколько он помогает решать поставленные задачи в данной области. Sergey Chписать Framework для Framework довольно бесперспективное занятие Я считаю, что если бы FoxPro был бы нормальным Framework-ом, то тогда не было бы нужды городить то, что представлено в данном топике. Это всего лишь доказательство того, что есть нужда в более высоком уровне абстрагирования и я предлагаю его еще более повысить на основе изложенной выше архитектуры. Тем более, что подобную стратегию используют многие не-Fox-ориентированные платформы. И, по-моему, в Фоксе есть все, чтобы решить подобную задачу, и мало что есть для решения прикладных задач в лоб (унификацию кода, библиотеки всяческих классов в расчет не беру - это нужно, но не достаточно!). Sergey Chмы все через это уже прошли Мы "все" - это кто? Приведите, pls, пример каких-либо подобных "прохождений". А то, что это гимнастика для мазгов, так то … Даа… Местами даже смахивает на акробатику под куполом! И все же, неужели все так плохо ? Dima T Повторюсь, кроме дедушки Ф.Кодда наверно никто не видел "неизбыточного хранения", поэтому задача хранения и поддержание целостности избыточной информации ложиться на разработчика, а не на СУБД Согласен, но это уже проблема не хранения информации, а взаимодействия OLTP (приходы и расходы) и OLAP (обороты и остатки) подсистем между собой, которая опять-таки решается с помощью совокупности «процессных» процедур и выбором необходимого уровня детализации в хранении аналитической информации (номенклатура, партия, цвет, размер) и интервалов временных ретроспектив в OLAP-подсистеме (т.е. интервал хранения остатков – по дня, по неделям, по декадам, по-месячно, по-квартально и т.д.) . Dima T, мне трудно судить о том, почему продукты 1С тормозят: по понятным причинам я и многие из нас не видели исходники данного продукта и по этой причине не могут произвести должный анализ всех причин. Возможно, там имеются какие-либо проблемы. К примеру, SAP AG, развиваясь более 30-ти лет, таких проблем не имеет. Так что у 1С ещё все впереди. Я словно летчик-испытатель, который верит в критический момент своей машине и заставляет её вытворять всякие опасные фокусы. Так же и я надеюсь на Fox в вопросе построения на его базе эффективного FrameWork-a, т.к. для этого имеются технологические предпосылки: развитая инфраструктура рантайма, макроподстановки, динамическая генерация и исполнение параметризованного кода, поддержка Aсtive-X и OLE-Automation, технологии ООП, COM, XML и RushMore, язык, «заточенный» под обработку данных и проч. Ведь некоторых из этих элементов в Visual C++ нет и разработчикам 1С приходилось создавать их заново в рамках собственной компонентной модели. А по чём же мы можем судить о качестве их изготовления? Может там и имеются какие-либо изъяны, влияющие, в том числе, и на производительность 1С. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2007, 00:50 |
|
||
|
Каркас приложения с SmartGrid
|
|||
|---|---|---|---|
|
#18+
gelosqlru Sergey Chмы все через это уже прошли Мы "все" - это кто? Приведите, pls, пример каких-либо подобных "прохождений". А то, что это гимнастика для мазгов, так то … Даа… Местами даже смахивает на акробатику под куполом! И все же, неужели все так плохо ? ... Так же и я надеюсь на Fox в вопросе построения на его базе эффективного FrameWork-a, т.к. для этого имеются технологические предпосылки ... То что все разработчики с опытом позанимались "гимнастикой для мозгов" - мало кто будет спорить. Как ни странно и на 1С фрэймворки рисуют. Не вижу смысла дальше развивать эту бесперспективную тему. Хватит теории строить, надо или к делу переходить или тему закрывать. Если ты действительно заинтересован в данной разработке, то предлагаю взять все на себя, судя по сказанному теоретическая база у тебя хорошая, а как будут конкретные результаты готов поучаствовать в тестировании и дать конструктивную оценку, да и кроме меня наверно желающие еще будут. Заранее скажу что сам ни при каких обстоятельствах использовать чужие каркасы для своих проектов не буду, т.к. предпочитаю точно знать что где прописано. А вот посмотреть на творчество других полезно для развития, чтобы для себя что-то новое и интересное подчерпнуть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2007, 10:55 |
|
||
|
Каркас приложения с SmartGrid
|
|||
|---|---|---|---|
|
#18+
При запуске формы "Пример использования класса SMARTGRID" возникает ошибка "Неверно задан путь к источнику данных в файле DATA.INI". После этого появляется пункт меню "Окно". Если в нём выбрать "Основная рабочая форма (однозагрузочная)", то опять ошибка "Окно 'WORKFORM' не было опредеоно" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2007, 12:08 |
|
||
|
Каркас приложения с SmartGrid
|
|||
|---|---|---|---|
|
#18+
shanton А в файл DATA.INI Вы заглядывали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2007, 13:25 |
|
||
|
Каркас приложения с SmartGrid
|
|||
|---|---|---|---|
|
#18+
Да, поменял путь - заработало. При печати, в окне параметры печати, ставлю галочку "Настройка печати", нажимаю печать - возникает ошибка "Несовпадение типа данных" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2007, 14:14 |
|
||
|
Каркас приложения с SmartGrid
|
|||
|---|---|---|---|
|
#18+
2Dima T. Предложение поучаствовать меня заинтересовало, спасибо. Скинь, пожалуйста, на olb@tut.by сообщение для связи, изложу подробности: их накопилось уже немало и есть что тестить ... ЗЫ: Спасибо участникам кто откликнулся на мои замечания не по теме для данного топика. Прошу прощения у Protean-а за то, что отвлекал внимание народа от содержания его вопроса. Все приятного летнего отдыха ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2007, 17:47 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=34608111&tid=1589108]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
21ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
| others: | 194ms |
| total: | 315ms |

| 0 / 0 |
