Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Ищу коллег для совместной работы

0 views
Skip to first unread message

Vladimir Tokarev

unread,
Sep 6, 2003, 5:11:28 AM9/6/03
to
* в SU.DBMS.FOXPRO
* в RU.FOXPRO
* в RU.VISUAL.FOXPRO


Группа для совместной работы в сфере Visual Foxpro.

1. Цель
Создание каркаса для быстрой разработки надежных файл-серверных
приложений на основе существующих библиотек классов, функций, ...
Имеется несколько каркасов (FrameWork) для ФоксПро.
Первичную информацию по ним можно прочитать в статье В.Журавлева
на сайте VFP club.
В принципе весь FFC & Wizards можно считать каркасом.
Однако он плохо документирован, ряд вопросов в нем не решен, и прочее.
Hа сайте Wiki есть материалы по наиболее популярным фреймвокам.
CodeBook CB free
CodeMine CM
ComCodeBook CCB free
Mere Mortals MM 499 $
Visual Extend VFX
Visual FoxExpress VFE 699 $
Visual MaxFrame Professional VMF 499 $
Visual ProMatrix VPM 795 $
По понятной причине я посмотрел только CB & CCB.
В их создании принимали участие одни и те же люди.
MM, надо полагать, тоже с этими ребятами сделан.
CCB предназначен для промежуточного слоя в многослойном приложении.
CB меня разочаровал... Иерархия классов черезвычайно запутанная.
Для словаря данных предполагается использование SDT (349$) и т.д.


2. Стартовый "капитал"
За основу берутся библиотеки Дугласа Хеннига (D.Hennig фирма StoneField).
Они опубликованы в журналах FoxTalk английского и русского изданий.
Hа сегодня имеется более 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 - 844 кб, 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 - 138 кб, 4 класса, 42 метод.
Она лучше _Error.VCX из FFC и серьезно повышает надежность
работы приложений.
Используется в событиях Error библиотеки BASE_ для реализации идеи
Дуга Хеннига "цепь ответственности".
Замечу, что в CodeBook также используется упомянутая идея
(...the most elegent error handling scheme we have seen).

Сделано также
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 процедур
InGrid.PRG - Поиск с уточнением в гриде (incremental search).
Модернизированный модуль Scott`а Mackay
16 кб.
User.PRG - Регистрация пользователей приложения и обеспечение его
безопасности.
23 кб.
Persist.PRG - Автоматическое сохранение и восстановление данных
интерфейса объектов.
39 кб.
Login.PRG - Библиотека для ввода имени пользователя и пароля.
Используется в User.PRG
10 кб.

с 17.01.2003 по 05.03.2003 :
- Для библиотеки ErrorMgr сделана таблица Messages.DBF (806 кб) с
описанием ошибок на русском языке. Данные взяты из русского хелпа к VFP 3.0
- Hаписан алгоритм проверки полноты задачи при ее загрузке.
Утилита prg4wk_1.PRG (4 кб), к нему, создает процедуру, содержащую перечень
файлов любых программ, для использования в блоке проверки полноты задачи.
Утилита prg4wk_2.PRG (10 кб) создает функцию для восстановления отсутствующих
свободных таблиц. Сгенерированная функция может быть вызвана при загрузке
программы и из класса обработки ошибок.

с 05.03.2003 по 03.04.2003 :
- Сделан генератор кода prg4wk_3.PRG (43 кб), создающий процедуру для
восстановления сортировок и связей таблиц. Сгенерированная процедура
может вызваться при загрузке программы, из класса обработки ошибок и
из основного меню. Данное решение шире возможности программ
GenDbc.PRG и GenDbcX.PRG
- Hаписана библиотека User.PRG для регистрации пользователей программы
и обеспечения ее безопасности.
- Hаписана библиотека Persist.PRG для автоматического сохранения и
восстановления данных интерфейса объектов (например, местоположения
форм, определенного пользователем программы).

с 03.04.2003 по 25.06.2003 :
- Hаписана библиотека Login.PRG для ввода имени пользователя и пароля.
- Hа _Base.Vcx из FFC (6.0, 7.0) конвертер PrgToVcx доработан для
классов типа ActiveDoc, FormSet, ProjectHook.
Сделан вариант _Base.Vcx с русскими комментариями.
- Модернизирован код по последним работам Д.Хеннига.

с 25.06.2003 по 06.09.2003 :
- Сделана библиотека iBase.PRG(VCX) промежуточного слоя между первым
слоем классов (Base_) и специализированными классами.
- Сделаны две вставки (AddIn`s) для браузера классов.
Первая добавляет к дереву правой панели встроенные свойства, события, методы.
Все свойства класса, при этом, показываются с их значением.
Вторая изменяет дефолтный шрифт браузера классов на заданный программистом.
(Де)активизация вставок организована через меню-вставки.


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. Затраты и выгоды
Hа изучение имеющегося материала конечно надо потратить время.
Однако этот код позволяет делать надежные и функциональные системы.
Все имеющиеся библиотеки рабочие... и предоставляются членам группы
в виде исходных текстов.
Судя по нижнему, Д.Хенниг не против использования его кода.
"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
Hа сайте группы имеется архив писем и файлов.


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


10. Подписка на яху-группу v_f_p()yahoogroups.com
Делается письмом в адрес v_f_p-subscribe()yahoogroups.com
Hовый человек попадает в группу только после того, как модератор
подтвердит подписку с данного адреса.
Посему, одновременно с запросом на v_f_p-subscribe, надо прислать мне
данные по п.9 в адрес v_f_p-owner()yahoogroups.com
Заполнение анкеты является обязательным условием.
Можете также подробнее осветить свой профессиональный опыт в ФоксПро и
написать ваши предложения, но это по желанию.
(В адресах вместо двух скобок надо поставить @)

0 new messages