Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Visual FoxPro был процедурным языком программирования Microsoft, ориентированным на данные, который впоследствии стал объектно-ориентированным .

Он был производным от FoxPro (первоначально известного как FoxBASE), который был разработан Fox Software с 1984 года. Fox Technologies объединилась с Microsoft в 1992 году, после чего программное обеспечение приобрело дополнительные функции и приставку «Visual». [6] FoxPro 2.6 работал с Mac OS , DOS , Windows и Unix .

Visual FoxPro 3.0, первая «визуальная» версия, сократила поддержку платформы до Mac [7] и Windows, а более поздние версии 5, 6, 7, 8 и 9 были только для Windows. Текущая версия Visual FoxPro основана на COM, и Microsoft заявила, что они не собираются создавать версию Microsoft .NET .

Версия 9.0, выпущенная в декабре 2004 г. и обновленная в октябре 2007 г. патчем SP2, была последней версией продукта.

История [ править ]

Visual FoxPro возник как член класса языков, обычно называемых языками « xBase », синтаксис которых основан на языке программирования dBase . Другие члены языковой семьи xBase включают Clipper и Recital (база данных).

Visual FoxPro, обычно сокращенно VFP, тесно интегрирован с собственным механизмом реляционной базы данных, который расширяет возможности FoxPro xBase для поддержки запросов SQL и манипулирования данными. В отличие от большинства систем управления базами данных , Visual FoxPro - это полнофункциональный динамический язык программирования , который не требует использования дополнительной среды программирования общего назначения. Его можно использовать для написания не только традиционных приложений « толстого клиента », но также промежуточного программного обеспечения и веб-приложений .

В конце 2002 года было продемонстрировано, что Visual FoxPro может работать в Linux с пакетом совместимости Wine Windows. В 2003 г. это привело к жалобам со стороны Microsoft: было заявлено, что развертывание исполняемого кода FoxPro на машинах, отличных от Windows, нарушает Лицензионное соглашение с конечным пользователем . [8]

Популярность Visual FoxPro стремительно росла и падала, согласно индексу сообщества программистов TIOBE . [9] В декабре 2005 года VFP впервые попала в топ-20. В июне 2006 года он достиг 12-й позиции, что сделало его (в то время) языком "B". По состоянию на октябрь 2019 года Visual FoxPro занимает 51 позицию в индексе TIOBE. [10]

В марте 2007 года Microsoft объявила, что не будет VFP 10 [11], что сделало VFP9 (выпущенный в производство 17 декабря 2004 года) последним коммерческим выпуском VFP от Microsoft. Пакет обновления 2 для Microsoft Visual FoxPro 9.0 был выпущен 16 октября 2007 г. [12] Поддержка версии 9 закончилась 13 января 2015 г. [13]

На момент объявления об окончании срока эксплуатации уже началась работа над следующей версией под кодовым названием Sedna (названной в честь недавно обнаруженной карликовой планеты ), которая была построена на основе кодовой базы VFP9. «Sedna» - это набор надстроек к VFP 9.0 компонентов xBase для поддержки ряда сценариев взаимодействия с различными технологиями Microsoft, включая SQL Server 2005, .NET Framework , Windows Vista, Office 2007, Windows Search и Team Foundation Server (TFS ). Microsoft выпустила Sedna под лицензией Shared source на сайте CodePlex . Microsoft пояснила, что ядро ​​VFP по-прежнему останется закрытым исходным кодом. Седна была выпущена 25 января 2008 года. [14] По состоянию на март 2008 г. все компоненты xBase VFP 9 SP2 (включая Sedna) были доступны для разработки сообществом на CodePlex.

В конце марта 2007 года испаноязычное сообщество FoxPro на MásFoxPro [15] («MoreFoxPro» на английском языке ) начало массовую кампанию по подписанию петиции в Microsoft о продолжении обновления Visual FoxPro или выпуске его для сообщества в качестве открытого исходного кода . 3 апреля 2007 года движение было отмечено технической прессой. [16]

3 апреля 2007 года Microsoft ответила на петицию следующим заявлением Алана Гривера: [16]

«Мы хорошо осведомлены о сообществе FoxPro, и это сыграло большую роль в том, что мы объявили 13 марта. Никогда не бывает легким решением объявить, что мы не собираемся выпускать еще одну версию продукта, и мы рассматриваем ее. очень осторожно.

«Мы не объявляем о завершении FoxPro: очевидно, что приложения FoxPro будут продолжать работать. По некоторым нашим внутренним оценкам, в FoxPro 2.6 работает больше приложений, чем в VFP, а FoxPro 2.6 не поддерживается во многих Visual FoxPro 9 будет поддерживаться Microsoft до 2015 года.

«Чтобы Microsoft продолжала развивать базу FoxPro, нам нужно было бы подумать о создании 64-разрядной среды разработки, что потребовало бы почти полного переписывания основного продукта. Мы также вложили средства в создание масштабируемой базы данных с SQL Server , включая свободно доступную версию SQL Server Express Edition. Что касается установления партнерских отношений со сторонним поставщиком, мы слышали от ряда крупных клиентов FoxPro, что это лишит их возможности продолжать использовать FoxPro, поскольку он больше не будет от утвержденного поставщика. Мы чувствовали, что перевод среды в открытый код на CodePlex , который уравновешивает потребности как сообщества, так и крупных клиентов, был лучшим путем вперед ».

График версии [ править ]

Все перечисленные версии предназначены для Windows. [17]

Примеры кода [ править ]

Язык FoxPro содержит команды, очень похожие на другие языки программирования, такие как Basic.

Некоторые основные примеры синтаксиса:

FOR i = от 1 до 10 x = x + 6.5 NEXT  && Вместо "NEXT" можно также использовать "ENDFOR"ЕСЛИ i = 25 i = i + 1 ELSE  i = i + 3 ENDIFx = 1 DO WHILE x <50 x = x + 1 ENDDOx = 1 ДЕЛАТЬ ПОКА .T.  x = x + 1 IF x <50 LOOP  ELSE  EXIT  ENDIF ENDDOnMonth = MONTH ( DATE ()) DO CASE CASE nMonth <= 3 MESSAGEBOX ( "Q1" ) CASE nMonth <= 6 MESSAGEBOX ( "Q2" ) CASE nMonth <= 9 MESSAGEBOX ( "Q3" ) ИНАЧЕ  MessageBox ( "Q4" ) ENDCASEДЛЯ КАЖДОГО o Control В ЭТОЙ ФОРМЕ  .Controls MESSAGEBOX (o Control .Name ) ENDFORf = Факториал (10)ФУНКЦИЯ Факториальная (n) МЕСТНАЯ i, r r = 1 FOR i = n TO 1 STEP -1 r = r * i NEXT  && Здесь также можно использовать "ENDFOR" вместо "NEXT"  RETURN r ENDFUNC

Примеры Hello World:

 * Вывод в текущем месте ? "Привет, мир" * Вывод в указанном месте @ 1,1 СКАЗАТЬ «Hello World» * Вывод в отдельное окно, очищенное на входе  WAIT WINDOW "Hello World" * Вывод в стандартном диалоговом окне,  сброшенном на ОК MESSAGEBOX ( "Hello World" )

Объект [ править ]

Вывод программы Hello World .
* Выход в определенном окне loForm = CreateObject ( "HiForm" ) loForm .Show (1)ОПРЕДЕЛЕНИЕ КЛАССА Hi Form AS Form  AutoCenter = .T.  Caption = "Привет, мир" ДОБАВИТЬ ОБЪЕКТ lblHi как ярлык  ;  С Caption = "Привет, мир!" ENDDEFINE
loMine = CREATEOBJECT ( "MyClass" )? loMine.cProp1 && Это будет работать. (Двойной амперсанд обозначает комментарий в конце строки)
? loMine.cProp2 && Ошибка программы: свойство CPROP2 не найдено, поскольку оно скрыто извне.? loMine.MyMethod1 () && Это сработает. ? loMine.MyMethod2 () && Ошибка программы: свойство MYMETHOD2 не найдено, поскольку оно скрыто извне.ОПРЕДЕЛЕНИЕ КЛАССА MyClass AS Custom  cProp1 = "My Property"  && Это общедоступное свойство  HIDDEN cProp2 && Это частное (скрытое) свойство  dProp3 = {} && Другое общедоступное свойство ПРОЦЕДУРА Init () && Конструктор класса  This .cProp2 = "Это скрытое свойство." ПРОЦЕДУРА dProp3_Access &&  ДАТА ВОЗВРАТА средства получения  свойств () ПРОЦЕДУРА dProp3_As sign (vNewVal) && Property Setter использует тег «_assign» в имени свойства  IF  VARTYPE (vNewVal) = «D»  ЭТО. DProp3 = vNewVal ENDIF PROCEDURE MyMethod1 () * Это общедоступный метод, вызывающий скрытый метод, который возвращает  * значение скрытого свойства.  RETURN  Это .MyMethod2 () СКРЫТАЯ ПРОЦЕДУРА MyMethod2 () && Это частный (скрытый) метод  RETURN  This .cProp2 ENDDEFINE
  • VFP имеет обширную библиотеку предопределенных классов и визуальных объектов, доступ к которым в среде IDE осуществляется с помощью таблицы свойств (включая методы ) [18], поэтому такой код, как описанные выше классы и объекты, необходим только для специальных целей и в рамках большой системы.

Обработка данных [ править ]

В языке также есть обширные команды для работы с базой данных и индексирования. В указателе команд «справки» в VFP 9 описано несколько сотен команд и функций. В приведенных ниже примерах показано, как кодировать создание и индексирование таблиц, однако в VFP есть экраны построения таблиц и баз данных, которые создают таблицы и индексы, не заставляя вас писать код.

Вывод программы обработки данных .
 * Создать таблицу  CREATE TABLE randData (iData I) * Заселите со случайными данными , используя команды XBase и SQL DML  ДЛЯ I = 1 до 50 APPEND BLANK ЗАМЕНЫ IDATA с ( RAND () * 100) INSERT INTO randData (IDATA) VALUES ( RAND () * 100) ENDFOR * Поместите структурный индекс на данные  ИНДЕКС НА iData TAG iData ЗАКРЫТЬ ДАННЫЕ && Не закрывать открытые библиотеки и т. Д. * Отображение упорядоченных данных с помощью команд в стиле xBase.  ИСПОЛЬЗУЙТЕ randData SET ORDER TO iData LOCATE  && вместо GO TOP. Обеспечивает использование индекса для поиска TOP  LIST NEXT 10 && First 10  GO BOTTOM SKIP -10 LIST REST && Last 10  CLOSE DATA * Просматривайте упорядоченные данные с помощью команд SQL DML  SELECT * ;  ОТ randData ;  ЗАКАЗАТЬ ПО iData ПО убыванию

Доступ ODBC с использованием сквозной передачи SQL [ править ]

 PRIVATE cAuthorID, cAuthorName && Частные переменные заменяют любую предыдущую глобальную или частную переменную с тем же именем LOCAL nHnd, nResult && Локальные переменные видны только здесь * Подключиться к источнику данных ODBC  nHnd = SQLCONNECT ( «ODBCDSN» , «пользователь» , «pwd» ) * Введите цикл, чтобы мы могли выйти к коду закрытия соединения в случае ошибки  DO WHILE .T.  * Выполните команду SQL  nResult = SQLEXEC (nHnd, "USE master" ) IF nResult <0 MESSAGEBOX ( "MASTER database не существует!" ) EXIT  && Чтобы закрыть соединение  ENDIF * Получение данных с удаленного сервера и сохранение их в локальном курсоре данных  nResult = SQLEXEC (nHnd, «SELECT * FROM Author» , «QAUTHORS» ) IF nResult <0 MESSAGEBOX ( «Невозможно выполнить удаленную команду SQL SELECT!» ) EXIT  && Чтобы закрыть соединение  ENDIF * Обновите запись в удаленной таблице, используя параметры  cAuthorID = "1001"  cAuthorName = "Новое имя"  nResult = SQLEXEC (nHnd, "ОБНОВЛЕНИЕ авторов SET auth_name =? CAuthorName WHERE auth_id =? CAuthorID" ) IF nResult <0 MESSAGEBOX ( " Unable для выполнения удаленной команды SQL UPDATE! " ) EXIT  && Чтобы закрыть соединение  ENDIF * Если мы попали сюда, мы получили все успешно  EXIT  && Exit безоговорочно  ENDDO * Закройте соединение  SQLDISCONNECT (nHnd)

Приложения [ править ]

Некоторые известные приложения, написанные на Visual FoxPro, включают:

  • PWCT : бесплатный язык визуального программирования с открытым исходным кодом для разработки программного обеспечения

См. Также [ править ]

  • Визуальные объекты
  • Xbase ++
  • Гавань

Ссылки [ править ]

  1. ^ «Обновления Visual FoxPro 9.0» . Центр разработчиков Visual FoxPro . Microsoft . Проверено 7 июня 2013 года .
  2. ^ "Загрузить Microsoft Visual FoxPro 9.0 Service Pack 2.0" . Центр загрузок . Microsoft. 16 октября 2007 . Проверено 7 июня 2013 года .
  3. ^ «Системные требования» . Центр разработчиков Visual FoxPro . Microsoft . Проверено 7 июня 2013 года .
  4. ^ «Часто задаваемые вопросы» . Центр разработчиков Visual FoxPro . Microsoft . Проверено 7 июня 2013 года .
  5. ^ «Послание к сообществу» . Центр разработчиков Visual FoxPro . Microsoft . Проверено 7 июня 2013 года .
  6. ^ Нью-Йорк Таймс
  7. ^ Microsoft Visual FoxPro 3.0 для Power Macintosh теперь доступен , 25 июля 1996 г., news.microsoft.com
  8. ^ Visual FoxPro для Linux: нарушение лицензионного соглашения с конечным пользователем? , 13 мая 2003 г., Эд Лиф, Linux Journal
  9. ^ История индекса Tiobe для FoxPro
  10. ^ https://www.tiobe.com/tiobe-index/
  11. ^ Обращение к сообществу
  12. ^ Microsoft Visual FoxPro 9.0 с пакетом обновления 2.0
  13. ^ «Жизненный цикл Microsoft Visual FoxPro 9.0» . support.microsoft.com . Проверено 31 августа 2018 .
  14. ^ Загрузка Microsoft SEDNA
  15. ^ Mas FoxPro - Visual FoxPro Wiki
  16. ^ a b Петиция разработчиков в Microsoft о пересмотре отказа от FoxPro Автор: Мэри Джо Фоли (3 апреля 2007 г.) - Все о Microsoft - ZDNet.com
  17. ^ История FoxPro
  18. ^ «Инструменты для повышения производительности разработки Visual FoxPro» . Microsoft . Проверено 20 декабря 2014 .

Внешние ссылки [ править ]

Страницы Microsoft [ править ]

  • Главная страница Visual FoxPro Microsoft
  • Плата поддержки MSDN FoxPro
  • Онлайн-справка VFP

Другие страницы [ править ]

  • Visual FoxPro Wiki Репозиторий информации FoxPro (написанной на VFP).
  • Сайт, посвященный истории FoxPro
  • VFPx Попытка сообщества Visual FoxPro создать надстройки с открытым исходным кодом для VFP 9.0.