Визуальный ФоксПро
![]() Visual FoxPro v9, работающий под управлением Windows XP | |
Разработчик(и) | Майкрософт |
---|---|
Финальный выпуск | |
Операционная система | Windows 2000 , Windows XP и Windows Server 2003. [3] |
Платформа | ИА-32 [4] |
Доступно в | IDE: английский, немецкий, испанский Время выполнения: выше плюс французский, китайский, русский, чешский, корейский. |
Тип | Интегрированная среда разработки , язык программирования |
Лицензия | Коммерческое проприетарное программное обеспечение |
Веб-сайт | MSDN |
Visual FoxPro — язык программирования , разработанный Microsoft . Это ориентированный на данные язык программирования , процедурный , с функциями объектно-ориентированного программирования (ООП).
Он был создан на основе FoxPro (который сам произошел от FoxBASE), который был разработан Fox Software начиная с 1984 года. Fox Technologies объединилась с Microsoft в 1992 году, после чего программное обеспечение приобрело дополнительные функции и приставку «Visual». [5] FoxPro 2.6 работал в Mac OS , DOS , Windows и Unix .
Visual FoxPro 3.0, первая «Visual» версия, ограничила поддержку платформы только Mac. [6] и Windows, а более поздние версии 5, 6, 7, 8 и 9 были только для Windows. Текущая версия Visual FoxPro основана на COM , и Microsoft заявила, что не намерена создавать версию Microsoft .NET .
Версия 9.0, выпущенная в декабре 2004 г. и обновленная в октябре 2007 г. патчем SP2, была окончательной версией продукта. Поддержка закончилась в январе 2010 года, а расширенная поддержка — в январе 2015 года. [7]
История
[ редактировать ]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 года ВФП впервые вошла в топ-20. В июне 2006 года он достиг 12-й позиции, что сделало его (на тот момент) языком категории «B». По состоянию на январь 2023 года Visual FoxPro занимает 21 позицию в индексе TIOBE. [10]
В марте 2007 года Microsoft объявила, что VFP 10 не будет. [11] таким образом VFP9 (выпущенный в производство 17 декабря 2004 г.) стал последним коммерческим выпуском VFP от Microsoft. Пакет обновления 2 для Microsoft Visual FoxPro 9.0 был выпущен 16 октября 2007 г. [12] Поддержка версии 9 закончилась 13 января 2015 г. [7]
На момент объявления об окончании срока эксплуатации уже началась работа над следующей версией под кодовым названием 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 под лицензией общего исходного кода на сайте CodePlex . Microsoft пояснила, что ядро VFP по-прежнему останется с закрытым исходным кодом. Седна была освобождена 25 января 2008 года. [13] По состоянию на март 2008 года все компоненты xBase VFP 9 SP2 (включая Sedna) были доступны для разработки сообществом на CodePlex.
В конце марта 2007 года массовую кампанию. испаноязычное сообщество FoxPro в MásFoxPro начало [14] («MoreFoxPro» на английском языке ) подписать петицию к Microsoft с просьбой продолжить обновление Visual FoxPro или выпустить его для сообщества как открытый исходный код . 3 апреля 2007 года движение было отмечено технической прессой. [15]
3 апреля 2007 г. Microsoft ответила на петицию заявлением Алана Грайвера: [15]
«Мы очень хорошо осведомлены о сообществе 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. [16]
Версия | Дата выпуска |
---|---|
Визуальный ФоксПро 3.0 | июнь 1995 г. |
Визуальный ФоксПро 5.0 | Октябрь 1996 г. |
Визуальный ФоксПро 5.0а | Октябрь 1997 г. |
Визуальный ФоксПро 6.0 | 18 мая 1998 г. |
Визуальный ФоксПро 7.0 | 27 июня 2001 г. |
Визуальный ФоксПро 8.0 | 1 февраля 2003 г. |
Visual FoxPro 8.0 Пакет обновления 1 | 7 октября 2003 г. |
Визуальный ФоксПро 9 | 20 декабря 2004 г. |
Visual FoxPro 9 с пакетом обновления 1 | 8 декабря 2005 г. |
Visual FoxPro 9 с пакетом обновления 2 | 16 октября 2007 г. |
Примеры кода
[ редактировать ]Язык FoxPro содержит команды, очень похожие на другие языки программирования, такие как BASIC.
Некоторые основные примеры синтаксиса:
FOR i = 1 to 10
x = x + 6.5
NEXT && Instead of "NEXT" can also use "ENDFOR"
IF i = 25
i = i + 1
ELSE
i = i + 3
ENDIF
x = 1
DO WHILE x < 50
x = x + 1
ENDDO
x = 1
DO WHILE .T.
x = x + 1
IF x < 50
LOOP
ELSE
EXIT
ENDIF
ENDDO
nMonth = MONTH(DATE())
DO CASE
CASE nMonth <= 3
MESSAGEBOX("Q1")
CASE nMonth <= 6
MESSAGEBOX("Q2")
CASE nMonth <= 9
MESSAGEBOX("Q3")
OTHERWISE
MESSAGEBOX("Q4")
ENDCASE
FOR EACH oControl IN THISFORM.Controls
MESSAGEBOX(oControl.Name)
ENDFOR
f = Factorial(10)
FUNCTION Factorial(n)
LOCAL i, r
r = 1
FOR i = n TO 1 STEP -1
r = r * i
NEXT && Can also use "ENDFOR" here instead of "NEXT"
RETURN r
ENDFUNC
Привет, мир, примеры:
* Output at the current location
? "Hello World"
* Output at a specified location
@ 1,1 SAY "Hello World"
* Output in a separate window, cleared on input
WAIT WINDOW "Hello World"
* Output in a standard dialog box, cleared on OK
MESSAGEBOX("Hello World")
Объект
[ редактировать ]
* Output in a defined window
loForm = CREATEOBJECT("HiForm")
loForm.Show(1)
DEFINE CLASS HiForm AS Form
AutoCenter = .T.
Caption = "Hello, World"
ADD OBJECT lblHi as Label ;
WITH Caption = "Hello, World!"
ENDDEFINE
loMine = CREATEOBJECT("MyClass")
? loMine.cProp1 && This will work. (Double-ampersand marks an end-of-line comment)
? loMine.cProp2 && Program Error: Property CPROP2 is not found because it's hidden externally.
? loMine.MyMethod1() && This will work.
? loMine.MyMethod2() && Program Error: Property MYMETHOD2 is not found because it's hidden externally.
DEFINE CLASS MyClass AS Custom
cProp1 = "My Property" && This is a public property
HIDDEN cProp2 && This is a private (hidden) property
dProp3 = {} && Another public property
PROCEDURE Init() && Class constructor
This.cProp2 = "This is a hidden property."
PROCEDURE dProp3_Access && Property Getter
RETURN DATE()
PROCEDURE dProp3_Assign(vNewVal) && Property Setter uses the "_assign" tag on the property name
IF VARTYPE(vNewVal) = "D"
THIS.dProp3 = vNewVal
ENDIF
PROCEDURE MyMethod1()
* This is a public method, calling a hidden method that returns
* the value of a hidden property.
RETURN This.MyMethod2()
HIDDEN PROCEDURE MyMethod2() && This is a private (hidden) method
RETURN This.cProp2
ENDDEFINE
- VFP имеет обширную библиотеку предопределенных классов и визуальных объектов, доступ к которым в IDE осуществляется через страницу свойств (включая методы ). [17] поэтому код, подобный приведенному выше, определяющему классы и объекты, необходим только для специальных целей и в рамках больших систем.
Обработка данных
[ редактировать ]Язык также имеет обширные команды манипулирования базами данных и индексирования. В «справочном» указателе команд VFP 9 описано несколько сотен команд и функций. В приведенных ниже примерах показано, как запрограммировать создание и индексирование таблиц, однако в VFP есть экраны построения таблиц и баз данных, которые создают таблицы и индексы, не заставляя вас писать код.

* Create a table
CREATE TABLE randData (iData I)
* Populate with random data using xBase and SQL DML commands
FOR i = 1 TO 50
APPEND BLANK
REPLACE iData WITH (RAND() * 100)
INSERT INTO randData (iData) VALUES (RAND() * 100)
ENDFOR
* Place a structural index on the data
INDEX ON iData TAG iData
CLOSE DATA && Do not close open libraries etc
* Display ordered data using xBase-style commands
USE randData
SET ORDER TO iData
LOCATE && In place of GO TOP. Enforces use of index to find TOP
LIST NEXT 10 && First 10
GO BOTTOM
SKIP -10
LIST REST && Last 10
CLOSE DATA
* Browse ordered data using SQL DML commands
SELECT * ;
FROM randData ;
ORDER BY iData DESCENDING
Доступ к ODBC с использованием сквозной передачи SQL
[ редактировать ] PRIVATE cAuthorID, cAuthorName && Private variables supplant any previous global or private variable of the same name
LOCAL nHnd, nResult && Local variables are visible only here
* Connect to an ODBC data source
nHnd = SQLCONNECT ("ODBCDSN", "user", "pwd")
* Enter a loop so we can exit to the close connection code if there's an error
DO WHILE .T.
* Execute a SQL command
nResult = SQLEXEC (nHnd, "USE master")
IF nResult < 0
MESSAGEBOX ("MASTER database does not exist!")
EXIT && To close the connection
ENDIF
* Retrieve data from the remote server and stores it in a local data cursor
nResult = SQLEXEC (nHnd, "SELECT * FROM authors", "QAUTHORS")
IF nResult < 0
MESSAGEBOX ("Unable to execute remote SQL SELECT command!")
EXIT && To close the connection
ENDIF
* Update a record in a remote table using parameters
cAuthorID = "1001"
cAuthorName = "New name"
nResult = SQLEXEC (nHnd, "UPDATE authors SET auth_name = ?cAuthorName WHERE auth_id = ?cAuthorID")
IF nResult < 0
MESSAGEBOX ("Unable to execute remote SQL UPDATE command!")
EXIT && To close the connection
ENDIF
* If we get here, we have retrieved everything successfully
EXIT && Exit unconditionally
ENDDO
* Close the connection
SQLDISCONNECT(nHnd)
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Обновления Visual FoxPro 9.0» . Центр разработчиков Visual FoxPro . Майкрософт . Проверено 7 июня 2013 г.
- ^ «Загрузить Microsoft Visual FoxPro 9.0 с пакетом обновления 2.0» . Центр загрузки . Майкрософт. 16 октября 2007 года . Проверено 7 июня 2013 г.
- ^ «Системные требования» . Центр разработчиков Visual FoxPro . Майкрософт . Проверено 7 июня 2013 г.
- ^ «Часто задаваемые вопросы» . Центр разработчиков Visual FoxPro . Майкрософт . Проверено 7 июня 2013 г.
- ^ Поллак, Эндрю (25 марта 1992 г.). «Microsoft выйдет на новый рынок, приобретя программное обеспечение Fox» . Нью-Йорк Таймс . п. Д1.
- ^ Microsoft Visual FoxPro 3.0 для Power Macintosh теперь доступен , 25 июля 1996 г., news.microsoft.com
- ^ Перейти обратно: а б «Майкрософт Visual FoxPro 9.0» . Learn.microsoft.com .
- ^ Visual FoxPro для Linux: нарушение лицензионного соглашения? , 13 мая 2003 г., Эд Лиф, Linux Journal
- ^ История индекса Тиобе для FoxPro
- ^ «Индекс | TIOBE — Компания по обеспечению качества программного обеспечения» .
- ^ Сообщение сообществу
- ^ Microsoft Visual FoxPro 9.0 с пакетом обновления 2.0
- ^ Загрузка Microsoft SEDNA
- ^ Больше FoxPro — Visual FoxPro Wiki
- ^ Перейти обратно: а б Разработчики обращаются к Microsoft с просьбой пересмотреть поэтапный отказ от FoxPro Автор: Мэри Джо Фоули (3 апреля 2007 г.) — Все о Microsoft — ZDNet.com
- ^ История FoxPro
- ^ «Инструменты повышения производительности разработки Visual FoxPro» . Майкрософт . Проверено 20 декабря 2014 г.
Внешние ссылки
[ редактировать ]Страницы Майкрософт
[ редактировать ]Другие страницы
[ редактировать ]- Сайт, посвященный истории FoxPro
- VFPx Попытка сообщества Visual FoxPro по созданию надстроек с открытым исходным кодом для VFP 9.0.
- онлайн-клона Fox In Cloud Домашняя страница
- Языки программирования
- Языки программирования четвертого поколения
- Языки программирования, ориентированные на данные
- Объектно-ориентированные языки программирования
- Семейство языков программирования XBase
- Процедурные языки программирования
- Инструменты разработки настольных приложений для баз данных
- Инструменты разработки Microsoft
- Программное обеспечение базы данных Microsoft
- Языки программирования Майкрософт
- Языки программирования, созданные в 1984 году.
- Средства разработки Microsoft, выпуск которых прекращен
- Языки программирования высокого уровня
- программное обеспечение 1984 года
- Мультипарадигмальные языки программирования
- Программное обеспечение Microsoft, выпуск которого прекращен
- Табличное программирование