Форум сайта python.su
Здравствуйте, уважаемые !
в 2-х словах - надо отконвертировать FoxPro приложение в работающее Python приложение.
================================================================
на работе я вынужден сопровождать глючное создание неизвестных программистов ( без мемуаров, как все гениальное) на FoxPro 6, и рад бы от него избавиться. Хочу отконвертировать в Python (как-то, а как не знаю)
( а на питоне я рад разбираться даже с глюками :-) , вообще после Delphi/Паскаля/JS питон очень нравится - хорошо как-то)
Получается надо учить FoxPro (чтобы понять, хоть логику программы), а зачем мне эти древности ?
другой вариант, нашел, что Dabo (Python) создавали как раз как замену FoxPro. Обрадовался. Читаю документацию - нигде не написано как же взять проект из родного FoxPro да и в Dabo преобразовать.
Мало того, Dabo оказывается не жует *.prg и *.dbf
нашел конечно кучу конвертаторов БД туда-сюда, так что dbf в SQLite, MySQL, PostgreSQL думаю как-нибудь отконвертирую. Но сами программы на Фокспро как ? ( не зная Фокспро).
Может быть даже можно сделать что-то на Django + БД, ( Django я на уровне новичка знаю, пару сайтов ( без БД ) делал ), язык SQL тоже знаю ( MS Access + MS SQL ), надеюсь разберусь с SQLite/MySQL/PostgreSQL
- однако как быть с логикой ???
Офлайн
Dabo - всего лишь фреймворк для авто-создания интерфейсов по БД на базе тулкита wxPython. То, что они пишут, что это замена FoxPro - не врут, но они не пишут, что умеют гонять код туда-сюда.
По-хорошему, вам придется разобраться, как работает система на FoxPro и сделать следующее:
1) Мигрировать данные из FoxPro во что-то другое (sqlite3, например, подойдет лучше всего, ведь FoxPro, насколько я помню локальная, и concurrency там не требуется)
2) Мигрировать логику на Python. Dabo сделат за вас кусок работы по “стандартным” БД-клиент решениям (типа создать интерфейсы для добавления/редактирования записей). Логику придется делать все-равно самому.
Офлайн
спасибо. А FoxPro то “локальная”, однако она у нас хитро работает с сервером. ( пользователей где-то 200 )
*.dbf - ки на файл-сервере валяются, и все пользователи туда обращаются и пишут-читают. Блокировки фактически нет, просто каждый отдельный компьютер имеет свой идентификатор в определенном поле определенной *.dbf, и горе тем, у кого один и тот же идентификатор - их данные то пропадают, то меняются ( что естественно, но очень безобразно ! :-) ) ( тот же идентификатор у тех, кто должен типа “только читать”, но они этого не знают, и пишут, а я отследить “кто” не могу, могу только постепенно обходить с ревизией всю ораву, хорошо еще что вообще нашли этот глюк недавно, а то совсем непонятно было :-( )
Ну что ж. буду думать, и читать книгу по FoxPro :-( вместо 4-го издания Лутца :-)
“по трешке, хоть это и унизительно для коллектива” (с) Жванецкий
Отредактировано MantisABC (Апрель 27, 2012 16:59:58)
Офлайн
когда-то в 90-х работал на foxpro. там все емнип проще пареной репы и перегнать данные в другую СУБД проблем не составит. Вопрос главный насколько я понимаю, в другом - логика программы должна быть изменена в соответствии с «правильными понятиями» - и соответственно, модель данных. Как бы не пришлось задачу решать полностью заново, просто импортировав (и преобразовав под новую логику) в нее данные из фокспро
Офлайн
beelzeТут, ИМХО, все зависит от опыта человека, а также нельзя отрицать тот факт, что свое, хоть и страшное, поддерживать (а со временем рефакторить) легче, чем продукт 20-летней давности без доков.
Вопрос главный насколько я понимаю, в другом - логика программы должна быть изменена в соответствии с «правильными понятиями» - и соответственно, модель данных. Как бы не пришлось задачу решать полностью заново, просто импортировав (и преобразовав под новую логику) в нее данные из фокспро
Офлайн
«постепенно рефакторить» - как правило более времязатратно, нежели чем единожды правильно поставить и решить задачу… так что на вопрос «однако как быть с логикой ???» можно ответить только так - сформулировать ТЗ и реализовать. Тем более фокс, как наследник dbase, имеет весьма отличающийся от пайтона язык и, как следствие, совершенно иную логику не только в части, обусловленной моделью данных. Резюме: пытаться «использовать что-то имеющееся из фокспро» - не имеет смысла.
Офлайн