Visual FoxPro
9.0: по-прежнему одна из лучших
Дэвид Т. Андерсон
И даже несмотря на то, что она уже давно прячется в тени более эффектных
продуктов, СУБД FoxPro по-прежнему остается одним из лучших
специализированных инструментальных средств представленных на рынке. С
учетом тех дополнений, которые предлагает версия 9.0, маловероятно, что в
сколько-нибудь обозримом будущем FoxPro разделит участь доисторического
птеродактиля.
Команда разработчиков FoxPro в корпорации Microsoft готовится выпустить
релиз новой версии в конце 2004 года. Для некоторых это может оказаться
сюрпризом; частенько можно услышать, как выражают свое удивление люди
неосведомленные: "FoxPro? Она еще используется?" Но внутри FoxPro-сообщества
этот очередной релиз вызывает большое оживление. Усовершенствования,
направленные на повышение производительности, будут включать более быстрый
механизм обработки локальных данных, поддержку большего числа типов данных,
более строгое соответствие реализации языка запросов SQL стандарту ANSI,
полностью переработанный с открытой архитектурой генератор отчетов и ряд
менее существенных дополнений, касающихся продуктивности и функциональности.
Сегодня, приложения по-прежнему создаются и распространяются средствами
Visual FoxPro, но среди американских компаний имел место явный спад в
дальнейшей активности по внедрению и распространению таких приложений. Так
происходит главным образом благодаря тому факту, что корпорация Microsoft
рассматривает FoxPro как продукт второстепенный в сравнении с ее "флагманской
эскадрой"-языками программирования платформы .NET, такими как C# и VB.NET.
Нехватка маркетинговой поддержки является животрепещущим и тревожащим
вопросом для VFP-сообщества.
Хотя, это может быть и верно, что управляемый код (managed code) и
компиляторы со строгим контролем типов могут в конечном итоге обеспечить
более "безопасный", с меньшим количеством ошибок и более долговечный
программный код, но FoxPro-разработчик в состоянии написать
полнофункциональное настольное или Web-приложение в сравнительно короткий
промежуток времени в одиночку. Силы потребуются главным образом на то, чтобы
разобраться со сложными вопросами реализации приложения и бизнес-логики, а
не на попытки разобраться в тяжеловесном каркасе (framework) или борьбу с
привязкой данных.
Итак, почему вы должны беспокоиться о продукте, который его создатель
удостаивает своим вниманием лишь время от времени? Потому что Visual FoxPro
по-прежнему здесь, и она по-прежнему не утратила своего значения. Эта СУБД
обеспечивает такую функциональность, которая в одиночку не удовлетворяется
ни одним другим продуктом в одной с ней категории. Более того, из-за того,
что она может работать на более дешевой, более старой аппаратуре, исполнять
унаследованный код и тем не менее делать все то, что ожидают от современных
языков программирования, FoxPro останется предпочтительным продуктом для
вероотступнических рабочих групп, небольших офисов с ограниченными ресурсами,
независимых разработчиков программного обеспечения, а также для многих
правительств и государственных учреждений.
Безупречное
Происхождение
Понять неослабевающую силу FoxPro помогает знание ее родословной. В середине
80-х лаборатория Jet Propulsion Laboratory (JPL), как и многие
государственные организации, получила в свое распоряжение микро- и
персональные компьютеры. Эти автономно работающие машины позволили инженерам
"перелопачивать" огромные наборы данных без необходимости всеми правдами и
неправдами добывать машинное время на мэйнфрейме путем объединения простых,
подобных словам общеупотребительного английского языка, команд в программы,
которые можно было исполнять под управлением операционной системы DOS. Эти
программы превратились в приложения, и на свет явился новый тип
разработчика-разработчик прикладных программ: бандит, изменник, разработчик
"на час". Часто использовались электронные таблицы и статистические пакеты,
но они были неуклюжими и в конечном итоге легко могли привести к потере
данных.
База данных стала логическим решением проблемы таких огромных объемов,
поэтому Уэйн Рэтлифф (Wayne Ratliff) написал программу с собственной базой
данных и добавил набор команд, которые могли быть исполнены применительно к
этим данным. Проект "Vulcan" предусматривал интерактивное приглашение на
ввод команды в виде точки, которое позволяло инженерам использовать
ограниченный набор команд для того, чтобы обращаться с их данными как с
физическими наборами данных, используя для этого легкозапоминаемые фразы. Со
временем эта программа превратилась в СУБД dBase фирмы Ashton-Tate.
"dBASE отличалась от таких программных проектов, как BASIC, C, FORTRAN и
COBOL тем, что в ней уже была сделана масса черновой работы. Манипулирование
данными осуществляла сама СУБД dBASE, а не пользователь, так что последний
мог сосредоточиться на своих делах, вместо того, чтобы разбираться в
утомительных подробностях открытия, чтения и закрытия файлов и заниматься
распределением дискового пространства." -Уэйн Рэтлифф
Спустя несколько лет после появления релиза этой СУБД на рынок были
выброшены несколько клонов dBase. СУБД FoxBase сделала себе репутацию на том,
что была значительно быстрее и надежнее, чем оригинал. Кроме того,
разработчики Fox живее и охотнее откликались на запросы сообщества
пользователей. Посредством регулярно выпускаемых исправлений, своевременного
оказания пользователям поддержки на форуме CompuServe и значимых, с
существенными изменениями релизов, они не отрывались от своих корней и
вместе с тем быстро развивались, добавляя инструментальные средства для
повышения производительности труда, откликаясь непосредственно на запросы
пользователей.
Когда была выпущена FoxPro, она предоставила DOS-программистам интерфейс для
работы с окнами. Разработчики Fox уже обеспечили своим пользователям
кроссплатформенные компиляторы, которые позволили разработчику осуществлять
внедрение в среде операционных систем Unix или DOS, и последовавших версиях
Windows и Mac. Затем появилась FoxPro2, которая принесла технологию
"Rushmore" (знаменитые усовершенствования внутренних механизмов FoxPro,
выразившиеся в повышении скорости обработки данных), а также встроенные
команды языка запросов SQL и конструкторы графических экранов и отчетов.
Visual FoxPro
Visual FoxPro (принадлежащая в настоящее время корпорации Microsoft) дала
ООП, реляционную модель хранения данных и доступ к удаленным данным. Поэтому
к 1995 году работающие с FoxPro разработчики естественным образом
использовали язык запросов SQL, писали объектно-ориентированные программы и
создавали n-уровневые, кроссплатформенные приложения-и при этом сохранили
возможность исполнения унаследованного кода, написанного во времена СУБД
dBase II.
Для разработчиков, использующих FoxPro, Лиса просто оказалась безопасным
направлением в разработке приложений; ваши инвестиции в эту технологию не
подвергались риску со стороны нововведений, осуществленных производителем. К
сожалению, нельзя утверждать то же самое и впредь, принимая во внимание
маркетинговую политику или другие продукты, поставляемые тем же самым
производителем. Такое положение дел привело к нынешним неверным
представлениям о FoxPro и о том, какое место она занимает в мире
разработчиков.
VFP не станет языком программирования для платформы .NET. Этот вариант
пристально рассматривался во времена версии VFP7, но такие изменения привели
бы к появлению языка, который в лучшем случае не мог бы поддерживать свою
обратную совместимость, а в худшем- утратил бы свои мощные возможности по
обработке данных. А те избыточные области, которые возникают между каркасом
.NET и развитым языком VFP и классами, создадут еще большую неразбериху и
вполне могут привести к преждевременной кончине продукта.
Поскольку она никогда не будет исполнять управляемый код, СУБД Visual FoxPro
не является больше стратегическим продуктом для корпорации Microsoft, и это
понятно. Однако, она является сложившейся платформой для разработки. Все,
что вам необходимо для написания, ввода в эксплуатацию и сопровождения n-уровневого,
работоспособного, настольного, использующего возможности Internet, COM-модели
и служб Web services проекта находится в одной коробке или доступно от
стороннего поставщика. Платформа для разработки, обеспечиваемая Visual
FoxPro, включает устойчивый объектно-ориентированный язык программирования и
реляционную, исключительно быструю базу данных, которая поддерживает таблицы
объемом до двух гигабайт или до одного миллиарда записей, она располагает
автономным OLEDB-провайдером данных. Даже в интегрированной среде разработки
IDE, с ее полностью дополняемыми и расширяемыми средствами конструирования,
значительная часть инструментов и мастеров написаны на собственном языке VFP
(с предоставлением исходного кода). Кроме того, наличествует строгая
совместимость с сервером SQL Server, превосходное взаимодействие с COM-моделью-включая
автоматизацию приложений пакета Office, мощные возможности по обработке XML-кода
и соответствующая функциональность, и при этом VFP по-прежнему совместима с
кодом, написанным более 20 лет тому назад!
Итак, Для Чего Нужна VFP Сегодня?
Она По-прежнему Является Выбором Тех Профессионалов, Которым Необходимо
Сделать Свою Раюоту
Особенно в том случае, если написание программного обеспечения не является
основным занятием этого человека.
По словам Лейтенанта Джона Харви (John Harvey):
"Я выполняю обязанности лейтенанта в канцелярии шерифа графства Шелби
(Shelby County Sheriff's Office) в Мемфисе, штат Теннеси, где я являюсь
начальником отдела Информационных Систем. Я занимаюсь разработкой систем,
которые в настоящее время используются нашей организацией, Полицией города
Мемфис, всеми местными правоохранительными органами и большинством
федеральных учреждений, таких как ФБР, ATF, Marshals и Secret Service. Мой
самый последний "большой проект " - это система на базе ноутбуков для нашей
службы розыска Fugitive Bureau, с помощью которой сотрудники осуществляют
доступ к данным посредством беспроводных модемов и технологии WiFi. Они
могут извлечь из базы данных сделанные в полиции фотоснимки, досье и т.п., а
также прямо в "полевых" условиях распечатать ордер на арест. Связующим
программным обеспечением является пакет Webconnection (VFP Web Product), и
мы получаем данные из баз данных VFP, SQL Server и мэйнфрейма Tandem
Mainframe."
Я спросил Джона: не кажется ли ему, что он мог бы сделать все это на
платформе .NET. Его ответ был таков: "У меня тут есть три .NET-разработчика,
которых я заткнул за пояс."
Джон именно так ответил на мой вопрос не потому, что разрабатываемые им
приложения в большей степени пригодны для работы в среде Fox, чем на
платформе .NET. А потому, что сотрудник шерифа смог начать использовать
данный инструмент в интерактивном режиме, автоматизировать свою работу,
преобразовать свою программу в приложение, дополнить это приложение с целью
интеграции его с другими системами и, в конечном счете, создать набор
бесценных инструментальных средств.
FoxPro - это по-прежнему выбор разработчиков со значительными инвестициями в
готовый программный код
Крис Джеффрис (Chris Jeffries) является вице-президентом компании Human
Resources MicroSystems и отвечает за разработку. Созданный этой фирмой набор
приложений для управления кадрами соперничает по мощи и функциональности с
системами SAP и PeopleSoft. Для написания ядра этого приложения были
использованы Visual FoxPro и платформа .NET, и у них есть продукты, которые
предназначены для организаций небольших и средних размеров, а также для
крупных предприятий.
Крис утверждает:
"...во всем мире существуют, по моей оценке, миллиарды записей данных,
хранящихся в таблицах FoxPro, а реализованный в FoxPro язык манипулирования
данными - это наилучшее средство для управления такими записями. Этот язык
является самым доступным в мире программирования языком, и он без труда
осваивается людьми с минимальными навыками."
По поводу миграции на платформу .NET:
"Мы тратим больше времени, разрабатывая новые решения на платформе .NET, чем
на VFP-разработку, но ядром нашего бизнеса по-прежнему остается VFP.
Настольное приложение из-за ограниченности ресурсов наиболее вероятно
останется в VFP, поскольку оно просто слишком велико, чтобы переписывать его
для платформы .NET. .NET-формы, отчеты и другие аспекты настольного
VFP-приложения должны были бы быть написаны заново, чтобы обеспечить ту же
самую степень универсальности для конечного пользователя."
FoxPro-Это По-прежнему Выбор Менеджеров с Ограниченными Ресурсами
Visual FoxPro может работать на аппаратуре, возраст которой превышает восемь
лет, и оставаться при этом достаточно производительной. Этот факт может
показаться нелепым, но если вы когда-либо работали на рынках Третьего Мира
или с военными либо правительственными учреждениями, то вам известно, что
возможность работать на устаревшем оборудовании является непреложным
требованием. Возможность распределять и масштабировать приложения,
написанные на FoxPro, не беспокоясь о лицензировании, также часто вносят
весомый вклад в решение о покупке.
В тех же самых средах, где IT-ресурсы находятся в большом почете, редко
находятся средства для сопровождения старых систем. Но благодаря высокой
степени открытости и понятности FoxPro, достаточно просто будет выяснить, во
что обойдется сохранение в эксплуатации или даже дополнение данного
приложения.
Гаретт Фитцджеральд (Garrett Fitzgerald), обладатель статуса VFP MVP,
говорит об этом так:
"FoxPro давно обеспечивает хлебом с маслом те компании, которые не хотят (или
не могут) тратить деньги на то, чтобы следовать новейшим технологиям.
Магазинчики наших Мам и Пап не склонны испытывать нужду в переходе на
решение .NET/SQL Server для ведения своих дел и не могут оправдать денежные
затраты на то, чтобы корректно его осуществить. У FoxPro достаточно энергии
для работы даже на аппаратуре с еще меньшими возможностями: сравните
требования для обоих решений. Однако, соответствующим образом написанные
Fox-приложения могут (и должны) обрабатывать наборы данных объемом в сотни
гигабайт."
О том, почему он неизменно выбирает VFP: "потому что, используя VFP, я могу
добиться высочайшей производительности и снабжать своих заказчиков
превосходными программными продуктами. "
FoxPro - Это Швейцарский Ножик для Приложений, Ориентированных на Данные
Я обнаружил, что теперь, когда у меня за плечами есть внедренные в
эксплуатацию VFP-приложения, я владею всем процессом разработки программного
обеспечения. Я разбираюсь в вопросах, лежащих в диапазоне от проектирования
до разработки до сопровождения и миграции. Мне ведомы все подробности
проектирования баз данных, объектно-ориентированного проектирования,
проектирования пользовательского интерфейса, проектирования бизнес-объектов,
уровней доступа к данным, COM-модели и служб Web services, а также шаблонов
проектирования корпоративных приложений.
Почему вы должны беспокоиться о Visual FoxPro? Потому что она используется
повсюду, обладает мощными возможностями, быстро осваивается, дешева и тот,
кому нужна ваша работа, знает, что она может делать-и потому, что
определенного рода работы по программированию предназначены для того, чтобы
осуществлять быструю и целенаправленную предварительную обработку данных.
Другими словами, мне хотелось бы быть таким .NET-разработчиком, который
знает этот инструмент, а не таким, который с ним не знаком. Даже если мне
никогда больше не придется написать еще одно FoxPro-приложение, эта СУБД
всегда будет инсталлирована на моей машине.
Формирование компонентов для Web-страниц
Дуг Хенниг
Обладая быстрыми и мощными функциями работы со строками, VFP представляет
собой отличный инструмент для формирования HTML-кода. В этом месяце Дуг
Хенниг демонстрирует как можно представить Web-страницы в виде коллекции
повторно используемых HTML-компонентов с тем, чтобы облегчить формирование
как статических, так и динамических Web-сайтов.
RSS: публикация новостей посредством XML
Тед Роше
Новые информационные RSS-потоки появляются регулярно по мере того, как все
большее и большее число разработчиков программного обеспечения делает
открытие: насколько полезна данная технология в том случае, когда необходимо
"заявить о себе" как в интересах бизнеса, так и в личных целях. Например,
web-дневник (blog) программиста может обеспечить отличный инструментальный
комплекс для документирования достижений или проблем, появляющихся в ходе
разработки текущего проекта или при поиске интересного решения. В
продолжение своей посвященной RSS-технологии статьи, опубликованной в
декабрьском номере журнала за 2004 год, Тэд Роше демонстрирует с какой
легкостью разработчики, использующие VFP, могут создавать RSS-потоки при
помощи всего лишь нескольких знакомых и мощных VFP-команд.
The Kit Box:
В поисках класса
Энди Крамек и Марсиа Акинз
Версия VFP 8.0 подарила нам такой инструмент, как Code References, -
замечательное средство для поиска строк в исходном программном коде. Однако
даже оно не всегда может помочь, когда вы пытаетесь выяснить точное
местонахождение конкретного класса (чье имя вам известно). Функция
AVCXClasses() хорошо справляется с поиском, если речь идет о классах,
определенных в VCX-библиотеках, а утилита Code References в состоянии
обнаружить большую часть классов, по одному классу за раз, определенных в
программах PRG, но такого инструмента, который делает и то и другое, не
существует. В этом месяце Энди и Марсиа приступают к решению задачи по
созданию небольшого инструмента, предназначенного для формирования полного
списка всех классов, независимо от способа их определения, и сохранения этой
информации в таблице, которая может быть использована для того, чтобы по
имени можно было найти и открыть любой класс.
Маленькие
хитрости от создателей VFP
Команда разработчиков VFP
Теперь, когда можно скачать общедоступную бета-версию VFP 9.0, вы можете
насладиться несколькими советами этого месяца непосредственно от членов
команды Visual FoxPro. Эти советы составляют лишь доли процента от новых
возможностей версии 9.0, причем многие их них напрямую отвечают на вопросы,
ставившиеся сообществом.
Введение в
Inno Setup
Рик Боруп
Говорят, даром ничего не дается. Может быть это и верно, но вот есть на
свете такая штука, как бесплатная утилита для создания инсталляций, а
называется она Inno Setup. Тот факт, что данный продукт бесплатен, - это
всего лишь сахарная глазурь для украшения торта, поскольку этот инсталлятор
представляет собой отличный инструмент, который вполне оправдал бы время,
затраченное на его изучение, даже в том случае, если бы вам пришлось за него
заплатить (что вы, конечно, можете сделать, если у вас есть желание оказать
посильную помощь и поддержать проект).
Возврат на
основную страницу
К архивам |