:: Доска объявлений
Ищу коллег
Vlad
Автор

Сообщений: 850
Откуда: Запорожье
Дата регистрации: 28.09.2000
Группа для совместной работы в сфере Visual Foxpro.

1. Цель
Создание каркаса для быстрой разработки надежных файл-серверных
приложений на основе существующих библиотек классов, функций, ...
Имеется несколько каркасов (FrameWork).
Первый дал Майкрософт с 6-ой версией. В принципе весь FFC можно считать
каркасом. Однако он плохо документирован, ряд вопросов в нем не решен,
и прочее.
Остальные framework`и у нас малоизвестны.
У "них" наиболее популярными являются:
Visual Fox Express
Visual Promatrix
Visual Maxframe
Codebook for Mere Mortals
Я ни один не видел. Знаю, что кое-какие из них написаны на ФоксПро.
Codebook, вроде, public domain. Остальные много стоят.


2. Стартовый "капитал"
За основу берутся библиотеки Дугласа Хеннига (D.Hennig фирма StoneField).
Они опубликованы в журналах FoxTalk английского и русского изданий.
На сегодня имеется более 20 различных штук.
Хеннигy Майкpософт дал титyл MVP (most valuable professional).
С использованием своих классов Дуг написал
Stonefield Database Toolkit (SDT), которая:
Winner, 2000 Developer's Choice Award for "Best Utility" ,
Winner, 2001 Universal Thread Members Choice Award for "Best Desktop Tool".
Используется, также, и FFC.


3. Инструменты
Visual Foxpro 6.0 , 7.0
Visual Source Safe 6.0 (по желанию)
Multi-Edit 8.0 , 9.0 (по желанию)


4. Состояние проекта на сегодняшний день
Сделана библиотека для первого слоя базовых классов VFP.
BASE_.PRG - 724 кб, 23 класса, 38 методов.
Она, в общем, является аналогом SfCtrls.VCX , входящей в SDT.
О необходимости подобной библиотеки можно прочитать в книге
М.Базияна на стр. 522, 610 и ниже (других авторов)...
"Первое, что стоит сделать, так это создать библиотеку, куда положить
классы, субклассированные от всех (опять же с понятными исключениями)
встроенных классов VFP. Второе, что следует сделать, это забыть о
существовании встроенных классов и пользоваться только этими "первыми"
субклассами и их производными."
"A lot of people do the following when setting up their class library:
1) Subclass all of the native VFP classes that can
be subclassed into your own "base class layer."
2) Subclass all of your "base class" classes one
more time to make your "working class layer."
Then do most, if not all, of your base modifications starting
at the working class layer. This gives you a "clean" layer
of classes in your "base class layer".
You can usually get away with just the base class layer
of subclasses, but there are times when it is very handy
to have that extra layer of classes between you and the
native VFP classes."

Для BASE_.PRG сделано:
MENU_.PRG - класс меню на правую кнопку мыши.
Это почти аналог _ShortCutMenu.VCX из FFC
MENU_X.PRG - существенно улучшенный MENU_.PRG 18 кб, 1 класс, 10 методов
MESSAGE.PRG - класс MessageMgr для создания окон с сообщениями
22 кб, 3 класса, 10 методов
UTILITY.PRG - класс Utility_ с утилитами для приложения.
класс CommonDialog_
110 кб, 2 класса, 52 метода

Библиотека для обработки ошибок в программе.
ErrorMgr.PRG - 124 кб, 4 класса, 41 метод.
Она лучше _Error.VCX из FFC и серьезно повышает надежность
работы приложений.
Используется в событиях Error библиотеки BASE_ для реализации идеи
Дуга Хеннига "цепь ответственности".

Сделано также
Applic.PRG - Управление формами, создание меню приложения...
25 кб, 1 класс, 10 методов
MainForm.PRG - Data entry form class
56 кб, 1 класс, 26 процедур
Button_.PRG -
Environ.PRG - Сохраняет SET`ы при старте программы и
восстанавливает их в конце работы.
Registry.PRG - Handle the Windows 95/NT Registry. Походит на
Registry.VCX из FFC
FoxTools.PRG - Оболочка FoxTools.FLL для демонстрации
"цепи ответственности" и использования ErrorMgr.PRG
29 кб, 1 класс, 29 процедур
FClass.PRG - A wrapper for low-level file functions.
Для демонстрации работы команды ERROR с ErrorMgr.PRG
18 кб, 1 класс, 10 процедур
Err_Rus.PRG - Перевод на русский язык ряда сообщений об ошибке
41 кб.
InGrid.PRG - Поиск с уточнением в гриде (incremental search).
Модернизированный модуль Scott`а Mackay
16 кб.


5. Производительность труда
Я довел до рабочего состояния утилиту Тома Реттига (T.Rettig) PrgToVcx.PRG
Она позволяет уменьшить дистанцию между PRG-кодированием и VCX-кодированием.
Все упомянутые выше библиотеки есть в двух вариантах (PRG и VCX).
Т.е. вполне доступна следyющая технология:
1) Все, что можно пишем как .PRG. Это позволяет взять пользу от пpиличных
програмистских pедактоpов, Visual Source Safe, ...
2) .PRG -> PrgToVcx.PRG -> .VCX
3) Для наглядного констpyиpования использyем .VCX аналоги
4) По концy п.3 вносим изменения в код п.1, хранящийся в VSS.
5) В рабочие приложения включаем .PRG


6. Затраты и выгоды
На изучение имеющегося материала конечно надо потратить время.
Однако этот код позволяет делать надежные и функциональные системы.
Все имеющиеся библиотеки рабочие... и предоставляются членам группы
в виде исходных текстов.
Судя по нижнему, Д.Хенниг не против использования его кода.
"This scheme has been successfully used in several applications, although
we continue to refine it. I hope you find it useful in your applications."

7. Среда для общения
yahoo-group (http://groups.yahoo.com/group/v_f_p)
и, возможно, (fido7.)su.dbms.foxpro
На сайте группы имеется архив писем и файлов.


8. Управление группой
Посредством модератора.


9. Анкета от желающих работать
Фамилия
Имя
Отчество (по желанию)
Фамилия английскими буквами
Имя английскими буквами
Резервный адрес по емэйлу (если несколько, то через запятую)
Резервный адрес по фидо (если несколько, то через запятую)
Населенный пункт проживания
Опыт работы с ФоксПро (число лет)
Опыт работы с Визьюэл (число лет)


10. Подписка на яху-группу v_f_p()yahoogroups.com
Делается письмом в адрес v_f_p-subscribe()yahoogroups.com
Новый человек попадает в группу только после того, как модератор
подтвердит подписку с данного адреса.
Посему одновременно с запросом на v_f_p-subscribe надо прислать мне
данные по п.9 в адрес v_f_p-owner()yahoogroups.com
Можете также подробнее осветить свой профессиональный опыт в ФоксПро и
написать ваши предложения, но это по желанию.
(В адресах вместо двух скобок надо поставить @)
Ratings: 0 negative/0 positive
RE: Ищу коллег
Vlad
Автор

Сообщений: 850
Откуда: Запорожье
Дата регистрации: 28.09.2000
VT>> 2. Стартовый "капитал"
VT>> За основу берутся библиотеки Дугласа Хеннига (D.Hennig фирма
VT>> StoneField). Они опубликованы в журналах FoxTalk английского и
VT>> русского
VT>> изданий. Hа сегодня имеется более 20 различных штук.

> Жаль, не изучал...

Пишет он сильно и мысль в программе ясно выражена.
Кроме того код хорошо документирован.



VT>> 4. Состояние проекта на сегодняшний день
VT>> Сделана библиотека для первого слоя базовых классов VFP.
VT>> BASE_.PRG - 724 кб, 23 класса, 38 методов.

> Hасчёт количества слоёв тоже есть идеи Если вкратце - есть один или
> более слоёв на общесистемном уровне (BASE_ это только самые простые,
> так сказать нефункциональные, далее идут уже заточенные под что-то
> конкретное - скажем под прямой ввод данных, под ввод с поиском в
> справочнике и т.п.). А ещё один слой, так сказать "покрывающий" (он

Посмотрите, что уже решено. На мой взгляд первый слой хорош.
Есть функциональность и не сдерживает развития.
Т.е. годится на разные типы приложений



VT>> 5. Производительность труда
VT>> Я довел до рабочего состояния утилиту Тома Реттига (T.Rettig)
VT>> PrgToVcx.PRG Она позволяет уменьшить дистанцию между
VT>> PRG-кодированием и VCX-кодированием. Все упомянутые выше

> Интересная идея... Сам я пока пользуюсь исправленной утилитой SCCText
> (она в отличие от оригинальной производства MS упорядочивает методы и
> свойсква по алфавиту - удобно искать отличия). Дело в том, что я

Самый полный анализ "PRG против VCX", виданный мной, на
fox.wikis.com
Там всего 25 пункта.
PRG выигрывает в 13
VCX выигрывает в 6
По 6 пунктам нельзя сделать вывод "кто кого"
Год назад этот вопрос обсуждался в фидо (ноябрь 2001 тема: .VCX vs .PRG).
Добавлением к верхнему, на мой взгляд, будут 2 момента от С.Титова :
--------------------------------------------------------------------
Т.е. это я к тому, что первоисточником всего и вся является стандарт языка,
который наиболее полно и правильно можно использовать ТОЛЬКО рукописным
кодом (и это не только фокса касается). Другое дело, что MS не был бы MSом,
если бы в языке (точнее - в объектной модели) не появились бы
возможности, которые можно документированным способом реализовать
либо только визуальными средствами, либо наоборот - только ручным
кодированием...
ST> "формате" VCX И есть он же в "формате" PRG. Размер ЕХЕшника во втором
ST> случае в 10(десять) раз меньше - 60К vs 630К
Тут есть некоторые моменты:
1. Разница в размерах возникает из-за того, что VCXы и прочие Хы включаются
в ехешник. Если их паковать регулярно и отследить, чтобы ничего лишнего там
не было (например - используется один класс из библиотеки, но библиотека
все-равно будет включаена в ехешник полностью), то в принципе разница будет
поменьше (хотя в разЫ - останется)
---------------------------------------------------------------------------

Т.е. с двумя пунктами Титова имеем 15 против 6.
Две строки из таблицы "Compiler Directives" и "preprocessor sensitivty"
можно считать частными случаями первого пункта Титова - 13 против 6.
От меня пункт 1 - 0
VCX - дополнительное устройство в "цепи обработки". С точки зрения
теории надежности такой продукт менее надежен по сравнению с
продуктом применившим PRG.
Пример: у Хеннига есть ошибка с синтаксисом (null без правой точки).
Она описана в моем Base_.PRG в конце файла.
Небось существует и на сей момент !?

Итого:
PRG выигрывает в 14 пунктах
VCX выигрывает в 6.
По 6 пунктам нельзя сделать вывод "кто кого"
За основу брались оценки авторов таблицы, т.к. я
вижу их квалификацию как высокую. Также у них (авторов)
высокий уровень цитируемости.
Полученное соотношение 14 - 6 можно считать оценкой в первом приближении.
Хотя анализ имеющихся пунктов лучше, конечно, делать
с учетом "удельного веса".
Только вот его подсчет приводит к сильной субъективности.



> Единственная недоработка это то, что prg-описание более полное по
> коментариям, чем VCX. Надо это как то учесть в программе prgtovcx.
> Все же работа с VCX форматом более удобная и продуктивная в родном
> редакторе VFP, чем с PRG.
> Хотя если бы были более совершенны связки prgtovcx / vcxtoprg, то
> наверное и спорить было бы нечего, каждый бы выбрал способ работы
> по своему вкусу.
> Все таки программирование складывается из языка разработки и окружающей
> среды разработки и если основные интерфейсы работы с проектом направляют
> на работу с VCX, то лучше следовать по этой линии...

RAD как-никак, хоть и кривой.

Я за компромиcс, дающий больше, чем PRG или VCX, в отдельности.
А именно:
1. Имеем первоначально соотношение 14 к 6
По 6 пунктам нельзя сделать вывод "кто кого"
2а. Работаем только с vcx.
Тогда для получения максимальной пользы надо 14 (условных утилит)
реализующих преимущества prg для vcx подхода.
SCCtext и Browser это такие утилиты от мелкософта.
Я с этой стороны пробовал зайти, но в сырцах браузера нет комментариев...
2б. Работаем только с prg.
Тогда для получения максимальной пользы надо 6 (условных утилит)
реализующих преимущества vcx для prg подхода.
Мой транслятор заменяет сразу 2 утилиты.
Итого 14 против 4, т.к. возможности "Property sheet" и
"Using the designers" у нас тоже есть (при использовании base_.vcx)
И по 8 пунктам нельзя сделать вывод "кто кого"

Еще есть потенциальная утилита - КлассНавигатор.



> Каждый пишет так как ему удобно в данный момент или как он
> может (как он научился). И чтобы не говорили о преимуществах
> того или иного подхода программист
> будет писать так как ему удобно(умеет) для выполнения поставленной задачи.
> Да надо обсуждать преимущества и недостатки того или иного
> подхода (языка программирования, ОС, и т.п.).
> Но только показать, что в этой области это лучше, а в другой - другое.
> При этом разработчик сам должен выбирать PRG или VCX лучше для
> выполнения поставленной задачи, а может их комбинацию

Если витамин А хорош для глаз, а С для иммунной системы,
то поливитамин лучше каждого в отдельности.

> (хотя теоретически это плохо) - но условия (время и т.п.) требуют.
> Если кратко, то мне VCX удобен для быстрой разработки, проектирования
> форм, а PRG удобен для написания кода и для уменьшения размера
> исполнимой программы.
> Поэтому классы должны быть в виде и PRG и VCX.
> Пусть каждый выбирает что ему подходит.

===== Cut =====
5. Производительность труда
Я довел до рабочего состояния утилиту Тома Реттига (T.Rettig) PrgToVcx.PRG
Она позволяет уменьшить дистанцию между PRG-кодированием и VCX-кодированием.
Все упомянутые выше библиотеки есть в двух вариантах (PRG и VCX).
Т.е. вполне доступна следyющая технология:
1) Все, что можно пишем как .PRG. Это позволяет взять пользу от пpиличных
програмистских pедактоpов, Visual Source Safe, ...
2) .PRG -> PrgToVcx.PRG -> .VCX
3) Для наглядного констpyиpования использyем .VCX аналоги
4) По концy п.3 вносим изменения в код п.1, хранящийся в VSS.
5) В рабочие приложения включаем .PRG
===== Cut =====



> Не понятна зачем нужна связка StartUp.prg и Main.prg, лично у меня написан
> более совершенный один файл Main.prg, в котором и запускается оApp.
> Вообщем StartUp.prg только лишнее звено, может быть его убрать?

Это идет от ДХ.
This is the main program. It's purpose is to set up some immediate
environmental things, then call the "real" !main program in a loop
so we can RETURN TO MASTER in case of an error but stay !in the
application.
т.е. перезапуск main.prg все восстанавливает
Плюс облегчается сопровождение, т.к. startup неизменяется от
приложения к приложению.



>> Hасколько доработан и выверен код обработок ошибок, я в общем то
>> тоже у себя ставил модель написаную DH, но особо не разбирался и ряд
>> глюков и ошибок она у меня не ловит должным образом.

В одной программе работает.
Если зафиксированы ошибки в оригинале Дуга, то опишите их, я посмотрю.
На мой взгляд обработчик хорош.
А если ориентироваться на www.ideaxchg.com , то
он, среди опубликованных в Сети, самый лучший.

> Класс ErrorMgr вообщем нормальный чувствуется глубокая
> проработка всего кода.

Фундамент ДХ.
Жаль, что lineno() теперь относительное значение выдает.
Внешний редактор не запустить уже из класса...



> А как насчёт обмена кодом? IMHO мыло для этого не самый подходящий
> транспорт. Тут надо либо ftp, либо http хранилище использовать...

На сервере яху группе дается 20 мб под файлы.
Ratings: 0 negative/0 positive
RE: Ищу коллег
Андрей

Сообщений: 197
Дата регистрации: 03.09.2000
Степанов Андрей Г.
Stepanov Andrei G.
На Фоксе пишу с 1996 года.
E-mail: stangen@hotmail.ru
Ratings: 0 negative/0 positive


Извините, но у вас нет прав для того, чтобы оставлять сообщения в этом форуме.

On-line: 2 (Гостей: 2)

© 2000-2024 Fox Club 
Яндекс.Метрика