4-е измерение (программное обеспечение) - 4th Dimension (software)
Разработано | Лоран Рибардиер |
---|---|
Разработчик | 4D SAS |
Впервые появился | 1984 | (разработчик) 1987 (официальный)
Стабильный выпуск | v18 R5 / 19 января 2021 г .
|
Предварительный выпуск | v18 R6 Бета
|
Язык реализации | C, C ++ |
Платформа | Кроссплатформенность |
Операционные системы | Windows, macOS |
Лицензия | Проприетарный |
Расширения имени файла | 4ДБ, 4ДК |
Форматы файлов | Интерпретировано, составлено |
Веб-сайт | нас |
Автор (ы) оригинала | Лоран Рибардиер |
---|---|
Разработчики) | 4D SAS |
Первый выпуск | 1984 | (сс) 1987 г . (v1)
Стабильный выпуск | v18 R5 / 19 января 2021 г .
|
Предварительный выпуск | v18 R6 Бета
|
Написано в | C ++ , C |
Операционная система | Windows , Mac OS |
Тип | RAD RDBMS IDE Language GUI Designer Веб-сервер |
Лицензия | Проприетарный |
Веб-сайт | нас |
Автор (ы) оригинала | Лоран Рибардиер |
---|---|
Разработчики) | 4D SAS |
Первый выпуск | 1993 | (v1)
Стабильный выпуск | v18 R5 / 19 января 2021 г .
|
Предварительный выпуск | v18 R6 Бета
|
Написано в | C ++ , C |
Операционная система | Windows , Mac OS |
Тип | РСУБД Веб-сервер Сервер приложений Сервер базы данных SQL Server Язык |
Лицензия | Проприетарный |
Веб-сайт | нас |
4D ( 4th Dimension , или Silver Surfer , как его называли в начале разработки) - это система управления реляционными базами данных и IDE, разработанная Лораном Рибардьером . 4D был создан в 1984 году, а в 1987 году его публичный выпуск для Macintosh был немного отложен с собственным языком программирования.
С тех пор линейка продуктов 4D расширилась до серверной части SQL , интегрированного компилятора , интеграции PHP и нескольких надстроек и интерфейсов для повышения производительности. Некоторые из надстроек, созданных 4D, включают 4D Write (текстовый процессор), 4D View (что-то вроде электронной таблицы, но с дополнительными функциями) и 4D Internet Commands (которые позволяют добавлять в базу данных все виды функций, связанных с Интернетом). . Есть также более 100 сторонних плагинов, как бесплатных, так и коммерческих.
4D также можно использовать в качестве веб-сервера для запуска скомпилированных приложений баз данных.
Сегодня 4D издается французской компанией 4D SAS и имеет представительства по продажам, распространению и поддержке на большинстве основных рынков, при этом основными рынками являются США, Великобритания и Франция. Продукт локализован более чем на десяток языков, включая английский, французский, немецкий, японский, чешский, иврит, арабский, корейский и персидский.
История
Silver Surfer, как его называли во время ранней разработки, был разработан Лораном Рибардьером в 1984 году. После переговоров с Рибардьер планировалось, что Apple Inc. (ранее Apple Computer Inc.) опубликует программное обеспечение, но Apple отменила план, как сообщается, из-за давления. от других потенциальных издателей баз данных, которые утверждали, что если бы у Apple была собственная база данных «брендов», продукты сторонних производителей оказались бы в невыгодном положении на рынке. В то время Apple пыталась гарантировать, что известные издатели программного обеспечения поддерживают платформу Macintosh, и в результате проект вернулся к Лорану Рибардье , который вместе с французской бизнес- леди Мэрилен Дельбур-Дельфис опубликовал 4th Dimension. Несмотря на независимую публикацию, Apple поддержала новое предприятие и широко использовала 4D во всей организации для проектов, включая управление фитнес-центрами и CIM (Computer Integrated Manufacturing). Ряд сотрудников Apple стали экспертами по 4D, в том числе Лэнс МакЭндрю из штаб-квартиры Apple в Купертино и Эндрю О'Донохью из ирландской производственной штаб-квартиры Apple в Европе, где приложение 4th Dimension управляло всей администрацией Европейского сервисного центра.
В течение следующих нескольких лет установленная база 4th Dimension росла, и издатель ACI основал дочернюю компанию ACIUS в США, которую первоначально возглавлял Гай Кавасаки . После 16 лет работы в качестве ACIUS до 2000 года название было официально изменено на 4D Inc .
В 1993 г. был представлен 4D Server v1.1, клиент-серверная версия 4th Dimension, а также выпуск 4th Dimension v3.1.
В 1995 году 4D v3.5 стала кроссплатформенной и с тех пор поддерживает операционные системы Microsoft Windows и Apple Macintosh .
В 1997 году 4D v6 была первой версией 4D, которая содержала полностью интегрированный веб-сервер, позволяющий разработчикам переводить формы 4D в HTML на лету, используя только язык 4D.
В 2004 году 4D 2004 была первой версией 4D, которая позволила разработчикам создавать автономные, клиент-серверные, веб-приложения и сервис-ориентированные приложения (SOA) без изменения кода.
В 2008 году 4D v11 добавила уровень SQL в ядро базы данных 4D и расширила собственный SQL до языка программирования 4D, что позволило разработчикам 4D писать собственный код SQL для подключения к локальным или удаленным серверам.
В 2010 году в 4D v12 была интегрирована возможность выполнять функции / сценарии PHP из языка программирования 4D. Эта версия также поддерживала новые команды репликации и синхронизации и включала 64-битную версию 4D Server.
История версий
Ветка | Последняя версия | Первый выпуск | Окончательный релиз | По состоянию на февраль 2019 г. | Заметки |
---|---|---|---|---|---|
v18.x | v18.LTS | 16 янв.2020 г. | Непрерывный | Поддерживается | Базы данных проекта для контроля версий, встроенные инструменты шифрования, 4D для iOS, 4D Write Pro, 4D View Pro |
v17.x | v17.4 | 10 июля 2018 г. | Непрерывный | Поддерживается | ORDA (объектно-реляционный доступ к данным), коллекции, объектная нотация, динамические формы |
v16.x | v16.6 | 10 янв 2017 | Непрерывный | Поддержка закончилась 24 июля 2019 г. | Новая система управления кешем, вытесняющая многопоточность, 4D Dev Pro, 64-разрядная версия |
v15R | v15R5 | 10 ноя 2015 | 14 сен 2016 | Заменено версией 16.x | Предварительный просмотр функций, которые будут в v16.x |
v15.x | v15.6 | 16 июл 2015 | 25 апреля 2017 | Поддержка закончилась 25 апреля 2018 г. | 64-битный 4D-сервер для серверов Mac; Новый сетевой уровень |
v14R | v14R5 | Май 2014 г. | Март 2015 г. | Больше не поддерживается | предварительный просмотр функций, которые будут в v15.x |
v14.x | v14.6 | 12 декабря 2013 г. | 20 декабря 2016 | Больше не поддерживается | 4D Mobile (варианты подключения для 4D Server в качестве источника данных для Wakanda (программное обеспечение) ); Структурированные объекты JSON (C_Object); Представления SQL; новые инструменты для обслуживания и мониторинга, новая система журналов. |
v13.x | v13.6 | 14 февраля 2012 г. | 18 июн 2015 | Больше не поддерживается | Новый многопоточный HTTP-сервер; автоматическое управление сессией; новый расширяемый HTTP-клиент; интеграция с webkit и расширенная поддержка Javascript; расширенный список; внешний документооборот. |
v12.x | v12.6 | 3 июн 2010 | 8 октября 2013 г. | Больше не поддерживается | 64-битный 4D-сервер для серверов Windows; Интеграция с PHP; Синхронизация и репликация |
v11.x | v11.9 | 23 сен 2008 | 7 июл 2011 | Больше не поддерживается | Движок SQL; комплексный центр технического обслуживания (MSC); Управление SVG; Интегрированная веб-область |
2004.x | 2004,8 | 31 августа 2004 г. | 30 июня 2009 г. | Больше не поддерживается | Обновленный интерфейс; Интеграция высокоуровневых команд ODBC, 4D Customizer, 4D Backup и 4D Engine |
2003.x | 2003.8r2 | 17 марта 2003 г. | 11 апреля 2006 г. | Больше не поддерживается | XML; Веб-службы; Встроенный компилятор |
v6.8.x | 6.8.6 | 15 апреля 2002 г. | 24 сен 2004 | Больше не поддерживается | |
v6.7.x | 6.7.5 | Больше не поддерживается | |||
v6.5.x | 18 мая 1999 г. | Больше не поддерживается | |||
v6.0.x | 6.0.5 | 1997 г. | 27 февраля 1998 г. | Больше не поддерживается | Встроенный веб-сервер |
v3.x | Больше не поддерживается | 4D v3.5 была первой кроссплатформенной версией (mac / win), | |||
v1.x | 1987 г. | Больше не поддерживается | Только Mac |
Архитектура
Приложение 4D может работать как в автономном режиме, так и в режиме клиент-сервер.
Один пользователь
В автономном режиме приложение 4D (4D.exe в Windows или 4D.app на Mac) используется для открытия файла файла структуры (4DB / 4DC) непосредственно вместе с соответствующим файлом данных (4DD).
Клиент-Сервер
В парадигме клиент-сервер приложение 4D Server (4DServer.exe в Windows или 4DServer.app в Mac) используется для открытия файла файла структуры (4DB / 4DC) непосредственно вместе с соответствующим файлом данных (4DD). Затем 4D можно использовать в удаленном режиме для подключения к серверу 4D.
Редакции приложений
4D имеет два приложения; 4D и 4D Сервер. 4D Server работает только как сервер, но 4D может работать как в автономном, так и в удаленном режиме.
4D
4D может работать в двух режимах. 4D в однопользовательском режиме позволяет запускать приложение одному человеку. 4D в удаленном режиме используется для подключения к серверу 4D.
4D Сервер
4D Server используется для подключения клиент-сервер к приложению. В этом режиме 4D Server загружает файл структуры (4DB или 4DC), а также файл данных (4DD) и предоставляет сетевой доступ к 4D (удаленно). Каждая рабочая станция имеет динамически обновляемый кэш ресурсов, с которыми они работают, в то время как 4D Server поддерживает данные и код.
Синтаксис
Этот раздел будет включать примеры синтаксиса, демонстрирующие различные программные конструкции, используемые в 4D, такие как циклы и использование переменных.
Типы данных
Поля, переменные и выражения 4D могут быть следующих типов данных:
Тип данных | Поле | Переменная | Выражение |
---|---|---|---|
Нить | да | да | да |
Номер (двойной) | да | да | да |
Дата | да | да | да |
Время | да | да | да |
Логический | да | да | да |
Картина | да | да | да |
Указатель | Нет | да | да |
BLOB | да | да | Нет |
Множество | Нет | да | Нет |
Целое число 64 бита | да | Нет | Нет |
Плавать | да | Нет | Нет |
Объект | да | да | да |
Неопределенный | Нет | да | да |
Более подробную информацию о типах данных 4D можно найти на странице документации по типам данных 4D.
Переменная область
Локальные переменные имеют префикс $
like $myLocalVariable
и действуют только на время действия метода.
Переменные процесса не имеют префикса like myProcessVariable
и действуют на протяжении всего процесса.
Межпроцессные (или глобальные) переменные имеют префикс <>
Like <>myGlobalVariable
и действуют на протяжении всего приложения.
Сравнение зацикливания
Для
For(vCounter;1;100) // Do something End for
Пока
$i :=1 // Initialize the counter While($i<=100) // Loop 100 times // Do something $i :=$i +1 // Need to increment the counter End while
Повторить
$i :=1 // Initialize the counter Repeat // Do something $i :=$i +1 // Need to increment the counter Until($i=100) // Loop 100 times
Оптимизация циклов
Вы можете использовать вещественные, целые и длинные целые переменные, а также счетчики межпроцессных, технологических и локальных переменных. Для длинных повторяющихся циклов, особенно в режиме компиляции, используйте локальные переменные типа Long Integer.
Вот пример:
C_LONGINT($vlCounter) // use local Long Integer variables For($vlCounter;1;10000) // Do something End for
Вложенные циклы
В следующем примере рассматриваются все элементы двумерного массива:
For($vlElem;1;Size of array(anArray)) // ... // Do something with the row // ... For($vlSubElem;1;Size of array(anArray{$vlElem})) // Do something with the element anArray{$vlElem}{$vlSubElem}:=... End for End for
В следующем примере создается массив указателей на все поля даты, присутствующие в базе данных:
ARRAY POINTER($apDateFields;0) $vlElem:=0 For($vlTable;1;Get last table number) // loop over each table number with $vTable as the number If(Is table number valid($vlTable)) // check if table number $vTable is valid // only loop on the valid table For($vlField;1;Get last field number($vlTable)) // loop over each field number within current table // with $vlField as the current field number If(Is field number valid($vlTable;$vlField)) // check if field number is valid $vpField:=Field($vlTable;$vlField) // get pointer to field If(Type($vpField->)=Is date) // check if current field is a date // only performs these actions if field is a date $vlElem:=$vlElem+1 INSERT IN ARRAY($apDateFields;$vlElem) $apDateFields{$vlElem}:=$vpField End if End If End for End If End for