Microsoft Visual FoxPro

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 17:39, 15 августа 2018.
Microsoft Visual FoxPro
Visual FP.jpg
Разработчики: Microsoft
Выпущена: 1992 (1992)
Написана на: C++, Python, Go
Тип ПО: Microsoft
Веб-сайт www.microsoft.com

Microsoft Visual FoxPro - это прекращенный, ориентированный на данные, объектно-ориентированный, процедурный язык программирования, созданный Microsoft. Он был основан на FoxPro (первоначально известным как FoxBASE), который был разработан Fox Software, начиная с 1984 года. В нем содержится самый быстрый и доступный на данный момент механизм для баз данных на базе ПК. Fox Technologies объединилась с Microsoft в 1992 году, после чего программное обеспечение приобрело дополнительные функции и префикс «Визуальный». Механизм базы данных более мощный, чем Microsoft Jet Database Engine, который используется Microsoft Access. FoxPro 2.6 работал на Mac OS, DOS (Disk Operating System), Windows и UNIX. Visual FoxPro 3.0, первая «визуальная» версия, уменьшенная поддержка платформы только для Mac и Windows, а более поздние версии 5, 6, 7, 8 и 9 были только для Windows. Текущая версия Visual FoxPro работает на базе COM, и Microsoft заявила, что не собирается создавать версию Microsoft .NET. [Источник 1]


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

История

Развитие

Первоначально FoxPro (исходное название — FoxBASE) разрабатывалась фирмой Fox Software, начиная с 1984 года. В 1992 году Fox Technologies была куплена Microsoft, новые версии продукта значительно видоизменились и приобрели префикс «Visual». Последняя версия оригинального FoxPro — версия 2.6 — работала под Mac OS, DOS (Disk Operating System), Windows и UNIX; уже в версии Visual FoxPro 3.0 от MS список поддерживаемых платформ сократился до Mac OS и Windows, а в более поздних версиях от MS — уже только до Windows. Текущая версия MS Visual FoxPro основана на COM, и Microsoft утверждает, что .NET-версии продукта не будет. Существует проект Sedna, который должен обеспечить возможность взаимодействия Visual FoxPro с .NET.

В конце 2002 года было показано, что Visual FoxPro может работать на Linux под Wine, однако это, по существу, нарушает пользовательское лицензионное соглашение (EULA).

В декабре 2005 года, VFP (Visual FoxPro) находился в Top 20 индекса языков программирования TIOBE. По состоянию на август 2010 года, VFP (в сочетании с XBase) находился на 25-й позиции индекса.

В марте 2007 года Microsoft объявила, что не будет выпускать VFP 10; соответственно, VFP 9 (выпущен в производство 17 декабря 2004 г.) — последний коммерческий релиз VFP от Microsoft. Поддержка версии 9 продолжается с пакетами обновления, которые были выпущены 8 декабря 2005 и 11 октября 2007 года.

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

Разработка продукта MS прекращена с выходом SP2 для версии 9.0.[3].

В конце марта 2007 организовалось движение испаноязычного FoxPro-сообщества MasFoxPro (MoreFoxPro в английском), целью которого стало написание петиции в Microsoft с предложением продолжить работу по обновлению Visual FoxPro или открыть исходные коды.

3 апреля 2007 Microsoft ответила на просьбы заявителя таким заявлением от Алана Гривера (Alan Griver): "Мы хорошо знаем FoxPro-сообщество, и это сыграло большую роль в нашем объявлении от 13 марта. Всегда нелегко объявлять, что мы не собираемся выпускать следующую версию продукта, и к подобному мы подходим очень осторожно.

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

Чтобы далее развивать FoxPro, нам потребовалось бы приступить к созданию 64-разрядной среды разработки, что привело бы к практически полной переработке продукта. Кроме того, мы инвестируем в Microsoft SQL Server как в масштабируемую СУБД, в том числе поставляя бесплатную редакцию SQL Server Express Edition. Мы рассматривали передачу системы одному из наших партнёров, однако крупные FoxPro-клиенты дали нам понять, что они не будут использовать FoxPro, если эта система перестанет поставляться проверенным вендором. Мы полагаем, что наилучшее решение — выложить открытые исходные коды среды на CodePlex, что уравновесит потребности как сообщества, так и крупных клиентов."

История версий

Все версии указаны для Windows.

Дата выхода Версия
June 1995 Visual FoxPro 3.0
October 1996 Visual FoxPro 5.0
October 1997 Visual FoxPro 5.0a
18 May 1998 Visual FoxPro 6.0
27 June 2001 Visual FoxPro 7.0
1 February 2003 Visual FoxPro 8.0
7 October 2003 Visual FoxPro 8.0 Service Pack 1
20 December 2004 Visual FoxPro 9
20 December 2004 Visual FoxPro 9
8 December 2005 Visual FoxPro 9 Service Pack 1
16 October 2007 Visual FoxPro 9 Service Pack 2

Достоинства

– поддержка технологий Team Foundation Server, Microsoft .NET Framework и Microsoft Windows Search;

– интеграция с Microsoft Office 2007;

– возможность совместной работы над проектом;

– поддержка компонентов ActiveX;

– мощный отладчик;

– поддержка более 40 форматов файлов баз данных;

– интеграция с системой контроля версий Visual Source Safe;

– поддержка технологии OLE Automation;

– возможность разработки серверных приложений;

– большая библиотека с различными примерами кода;

– высокая производительность при работе с таблицами базы данных;

– встроенный словарь данных;

– высокая скорость обработки серверных запросов;

– поддержка графиков и диаграмм.

Недостатки

– для написания серверных приложений используется узкоспециализированный язык программирования FoxPro (диалект языка xBase);

– Microsoft больше не поддерживает данный продукт;

– несовместимость с 64-битными ОС;

– эта IDE поддерживает современные ОС Windows 8 / 10.[Источник 2]

Совместимость с операционными системами

Версия VFP 3.0 VFP 5.0 VFP 6.0 VFP 7.0 VFP 8.1 VFP 9.0
Windows 3.x ДА НЕТ НЕТ НЕТ НЕТ НЕТ
Windows NT 4.0 ДА ДА ДА ДА НЕТ НЕТ
Windows 95 ДА ДА Только среда запуска (Runtime) НЕТ НЕТ НЕТ
Windows 98 ДА ДА ДА ДА Только среда запуска (Runtime) Только среда запуска (Runtime)
Windows ME ДА ДА ДА ДА Только среда запуска (Runtime) Только среда запуска (Runtime)
Windows 2000 ДА ДА ДА ДА ДА ДА
Windows XP ДА ДА ДА ДА ДА ДА
Windows Server 2003  ? ДА ДА ДА ДА ДА
Windows Vista В режиме совместимости ДА ДА ДА ДА ДА
Windows 7 ДА ДА ДА ДА ДА ДА

Образцы кода

Объекты

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 (Visual FoxPro) имеется обширная библиотека предопределенных классов и визуальных объектов, к которым обращаются в среде IDE с помощью листа свойств (включая методы), поэтому код, такой как указанные выше классы и объекты, необходим только для специальных целей, а структура больших системы.

Обработка данных

Язык также имеет обширные команды управления базами данных и индексирования. Индекс «help» команд в 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 не рассматривается профессиональными разработчиками в качестве надежной и удобной IDE для работы с реляционными базами данными. Хотя нельзя сказать, что она полностью утратила свою популярность в связи с утратой поддержки от Microsoft в 2015 году, так как во многих учебных заведениях Испании, Индии, Чили и Аргентины студенты и преподаватели все еще пользуются этим приложением. В свою очередь, отечественные программисты уже полностью перешли на альтернативный продукт от Microsoft SQL Server.[Источник 3]

Источники

  1. Visual FoxPro [Электронный ресурс] — Дата обращения: 20.10.2017. Режим доступа: https://en.wikipedia.org/wiki/Visual_FoxPro
  2. Microsoft Visual FoxPro 9.0 [Электронный ресурс] — Дата обращения: 20.10.2017. Режим доступа: https://www.microsoft.com/en-in/download/details.aspx?id=13959
  3. Visual FoxPro [Электронный ресурс] — Дата обращения: 20.10.2017. Режим доступа: http://softprime.net/razrabotka/sredstva-razrabotki/742-visual-foxpro.html