Czwarty wymiar (oprogramowanie)
Zaprojektowany przez | Laurent Ribardière |
---|---|
Deweloper | 4D SAS |
Po raz pierwszy pojawiły się | 1984 | (dev) 1987 (oficjalnie)
Wersja stabilna | v18 R5 / 19 stycznia 2021 r
|
Wersja podglądu | v18 R6 Beta |
Język implementacji | C, C++ |
Platforma | Wieloplatformowy |
system operacyjny | Windowsa, macOS |
Licencja | Prawnie zastrzeżony |
Rozszerzenia nazw plików | 4DB, 4DC |
Formaty plików | Zinterpretowane, skompilowane |
Strona internetowa |
Oryginalni autorzy | Laurent Ribardière |
---|---|
Deweloperzy | 4D SAS |
Pierwsze wydanie | 1984 | (ss) 1987 (v1)
Wersja stabilna | v18 R5 / 19 stycznia 2021 r
|
Wersja podglądu | v18 R6 Beta |
Napisane w | C++ , C |
System operacyjny | Windowsa , Mac OS |
Typ | RAD RDBMS IDE Projektant języka GUI Serwer WWW |
Licencja | Prawnie zastrzeżony |
Strona internetowa |
Oryginalni autorzy | Laurent Ribardière |
---|---|
Deweloperzy | 4D SAS |
Pierwsze wydanie | 1993 | (v1)
Wersja stabilna | v18 R5 / 19 stycznia 2021 r
|
Wersja podglądu | v18 R6 Beta |
Napisane w | C++ , C |
System operacyjny | Windowsa , Mac OS |
Typ | RDBMS Serwer sieci Web Serwer aplikacji SQL Server Język serwera bazy danych |
Licencja | Prawnie zastrzeżony |
Strona internetowa |
4D ( 4th Dimension lub Silver Surfer , jak nazywano go na wczesnym etapie rozwoju) to system zarządzania relacyjnymi bazami danych i IDE opracowany przez Laurenta Ribardière'a . 4D powstał w 1984 roku i miał nieco opóźnione publiczne wydanie dla komputerów Macintosh w 1987 roku z własnym językiem programowania .
Od tego czasu linia produktów 4D rozszerzyła się o zaplecze SQL , zintegrowany kompilator , integrację PHP oraz kilka wtyczek i interfejsów zwiększających produktywność. Niektóre z wtyczek stworzonych przez 4D to 4D Write (procesor tekstu), 4D View (trochę jak arkusz kalkulacyjny, ale z dodatkową funkcjonalnością) i 4D Internet Commands (co pozwoliło na dodanie funkcji związanych z Internetem do bazy danych) . Istnieje również ponad 100 wtyczek innych firm, bezpłatnych i komercyjnych.
4D może być również używany jako serwer WWW , do uruchamiania skompilowanych aplikacji bazodanowych.
Obecnie 4D jest publikowane przez francuską firmę 4D SAS i prowadzi sprzedaż, dystrybucję i wsparcie na większości głównych rynków, przy czym głównymi rynkami są Stany Zjednoczone, Wielka Brytania i Francja. Produkt jest zlokalizowany w kilkunastu językach.
Historia
Silver Surfer, jak nazywano go na wczesnym etapie rozwoju, został opracowany przez Laurenta Ribardière'a w 1984 roku. Po negocjacjach z Ribardiere planowano, że Apple Inc. (dawniej Apple Computer Inc) opublikuje oprogramowanie, ale Apple anulował ten plan, podobno z powodu presji od innych potencjalnych wydawców baz danych, którzy twierdzili, że gdyby Apple miał własną bazę danych „marki”, produkty stron trzecich byłyby w niekorzystnej sytuacji na rynku. Apple starał się wówczas, aby znani wydawcy oprogramowania wspierali platformę Macintosh, w wyniku czego projekt powrócił do Laurenta Ribardière'a , która wraz z francuską bizneswoman Marylene Delbourg-Delphis opublikowała 4th Dimension. Chociaż niezależnie opublikowano, Apple wsparło nowe przedsięwzięcie i szeroko stosowało 4D w całej organizacji do projektów, w tym do zarządzania centrami fitness i CIM (Computer Integrated Manufacturing). Wielu pracowników Apple zostało ekspertami 4D, w tym Lance McAndrew w centrali Apple w Cupertino i Andrew O'Donoghue w europejskiej centrali produkcyjnej Apple w Irlandii , gdzie aplikacja 4th Dimension zarządzała administracją Europejskiego Centrum Usług.
W ciągu następnych kilku lat baza 4th Dimension rosła, a wydawca ACI założył spółkę zależną z siedzibą w USA o nazwie ACIUS, początkowo kierowaną przez Guya Kawasakiego . Po 16 latach funkcjonowania jako ACIUS do 2000 roku nazwa została oficjalnie zmieniona na 4D Inc.
W 1993 roku 4D Server v1.1, wersja klient/serwer 4th Dimension została wprowadzona wraz z wydaniem 4th Dimension v3.1.
W 1995 roku 4D v3.5 stało się wieloplatformowe i od tego czasu obsługuje zarówno systemy operacyjne Microsoft Windows , jak i Apple Macintosh .
W 1997 roku 4D v6 była pierwszą wersją 4D, która zawierała w pełni zintegrowany serwer WWW, umożliwiając programistom tłumaczenie formularzy 4D na HTML w locie, używając tylko języka 4D.
W 2004 roku 4D 2004 była pierwszą wersją 4D, która umożliwiła programistom tworzenie samodzielnych aplikacji typu klient/serwer, sieciowych i aplikacji zorientowanych na usługi (SOA) bez zmiany kodu.
W 2008 roku 4D v11 dodał warstwę SQL do silnika bazy danych 4D i rozszerzył natywny SQL do języka programowania 4D, co umożliwiło programistom 4D pisanie natywnego kodu SQL w celu łączenia się z lokalnymi lub zdalnymi serwerami.
W 2010 roku 4D v12 zintegrowało możliwość wykonywania funkcji / skryptów PHP z poziomu języka programowania 4D. Ta wersja obsługiwała również nowe polecenia replikacji i synchronizacji oraz zawierała 64-bitową wersję 4D Server.
Historia wersji
Oddział | Ostatnia wersja | Pierwsze wydanie | Ostateczne wydanie | Stan luty 2022 r | Notatki |
---|---|---|---|---|---|
v19.x | v19.LTS | 12 lipca 2021 r | Bieżący | Utrzymany | Natywna obsługa Apple Silicon, Classes |
v18.x | v18.LTS | 16 stycznia 2020 r | Bieżący | Utrzymany | Bazy danych projektu do kontroli wersji, Wbudowane narzędzia szyfrujące, 4D dla iOS, 4D Write Pro, 4D View Pro |
v17.x | v17.4 | 10 lipca 2018 r |
13 grudnia 2020 r. (4D v17.5) |
Wsparcie zakończyło się 13 grudnia 2020 r | ORDA (obiektowo relacyjny dostęp do danych), kolekcje, notacja obiektowa, formularze dynamiczne |
v16.x | v16.6 | 10 stycznia 2017 r |
24 lipca 2019 (4D v16.6) |
Wsparcie zakończyło się 24 lipca 2019 r | Nowy system zarządzania pamięcią podręczną, wielowątkowość z wywłaszczaniem, 4D Dev Pro 64-bitowy |
v15R | v15R5 | 10 listopada 2015 r | 14 września 2016 r | Zastąpiony przez 16.x | Podgląd funkcji, które mają być w wersji 16.x |
v15.x | v15.6 | 16 lipca 2015 r | 25 kwietnia 2017 r | Wsparcie zakończyło się 25 kwietnia 2018 r | 64-bitowy serwer 4D dla serwerów Mac; Nowa warstwa sieciowa |
v14R | v14R5 | maj 2014 r | marzec 2015 r | Nie jest już obsługiwany | podgląd funkcji, które mają być w wersji 15.x |
v14.x | v14.6 | 12 grudnia 2013 r | 20 grudnia 2016 r | Nie jest już obsługiwany | 4D Mobile (opcje łączności dla 4D Server jako źródła danych dla Wakandy (oprogramowanie) ); Strukturyzowane obiekty JSON (C_Object); widoki SQL; nowe narzędzia do obsługi i monitoringu, nowy system kronikowania. |
v13.x | v13.6 | 14 lutego 2012 r | 18 czerwca 2015 r | Nie jest już obsługiwany | Nowy wielowątkowy serwer HTTP; automatyczne zarządzanie sesją; nowy rozszerzalny klient HTTP; integracja webkit i rozszerzona obsługa Javascript; wzbogacone pole listy; zarządzanie dokumentacją zewnętrzną. |
v12.x | v12.6 | 3 czerwca 2010 r | 8 października 2013 r | Nie jest już obsługiwany | 64-bitowy serwer 4D dla serwerów Windows; integracja PHP; Synchronizacja i replikacja |
v11.x | v11.9 | 23 września 2008 r | 7 lipca 2011 r | Nie jest już obsługiwany | silnik SQL; zintegrowane centrum konserwacji (MSC); zarządzanie plikami SVG; Zintegrowany obszar sieciowy |
2004.x | 2004.8 | 31 sierpnia 2004 r | 30 czerwca 2009 r | Nie jest już obsługiwany | Zmieniony interfejs; Integracja poleceń ODBC wysokiego poziomu, 4D Customizer, 4D Backup i 4D Engine |
2003.x | 2003.8r2 | 17 marca 2003 r | 11 kwietnia 2006 | Nie jest już obsługiwany | XML; Usługi internetowe; Wbudowany kompilator |
v6.8.x | 6.8.6 | 15 kwietnia 2002 | 24 września 2004 r | Nie jest już obsługiwany | |
v6.7.x | 6.7.5 | Nie jest już obsługiwany | |||
v6.5.x | 18 maja 1999 r | Nie jest już obsługiwany | |||
v6.0.x | 6.0.5 | 1997 | 27 lutego 1998 | Nie jest już obsługiwany | Zintegrowany serwer WWW |
v3.x | Nie jest już obsługiwany | 4D v3.5 była pierwszą wersją międzyplatformową (mac/win), | |||
v1.x | 1987 | Nie jest już obsługiwany | Tylko Mac |
Architektura
Aplikacja 4D może działać w trybie Standalone lub Client-Server.
Pojedynczy użytkownik
W trybie autonomicznym aplikacja 4D (4D.exe w systemie Windows lub 4D.app w systemie Mac) jest używana do otwierania pliku struktury (4DB/4DC) bezpośrednio wraz z powiązanym plikiem danych (4DD).
Klient-serwer
W paradygmacie klient-serwer aplikacja 4D Server (4DServer.exe w systemie Windows lub 4DServer.app w systemie Mac) jest używana do otwierania pliku struktury (4DB/4DC) bezpośrednio wraz z powiązanym plikiem danych (4DD). 4D może być następnie używany w trybie zdalnym do łączenia się z Serwerem 4D.
Edycje aplikacji
4D ma dwa zastosowania; Serwer 4D i 4D. 4D Server działa tylko jako serwer, ale 4D może działać w trybie autonomicznym lub zdalnym.
4D
4D można uruchomić w dwóch trybach. 4D w trybie jednego użytkownika pozwala na obsługę aplikacji przez 1 osobę. 4D w trybie zdalnym służy do łączenia się z serwerem 4D.
Serwer 4D
Serwer 4D służy do połączenia klient-serwer z aplikacją. W tym trybie serwer 4D ładuje plik struktury (4DB lub 4DC), a także plik danych (4DD) i zapewnia dostęp sieciowy do 4D (w trybie zdalnym). Każda stacja robocza ma dynamicznie aktualizowaną pamięć podręczną zasobów, z którymi pracuje, podczas gdy serwer 4D przechowuje dane i kod.
Składnia
Ta sekcja będzie zawierać przykłady składni demonstrujące różne konstrukcje programistyczne używane w 4D, takie jak pętle for i użycie zmiennych.
Typy danych
Pola, zmienne i wyrażenia 4D mogą należeć do następujących typów danych:
Typ danych | Pole | Zmienny | Wyrażenie |
---|---|---|---|
Strunowy | Tak | Tak | Tak |
Numer (podwójny) | Tak | Tak | Tak |
Data | Tak | Tak | Tak |
Czas | Tak | Tak | Tak |
logiczne | Tak | Tak | Tak |
Zdjęcie | Tak | Tak | Tak |
Wskaźnik | NIE | Tak | Tak |
KROPELKA | Tak | Tak | NIE |
Szyk | NIE | Tak | NIE |
Liczba całkowita 64 bity | Tak | NIE | NIE |
Platforma | Tak | NIE | NIE |
Obiekt | Tak | Tak | Tak |
Kolekcja | Tak | Tak | Tak |
Nieokreślony | NIE | Tak | Tak |
Więcej informacji na temat typu danych 4D można znaleźć na stronie dokumentacji [Typy danych 4D].
Zmienny zakres
Zmienne lokalne są poprzedzone znakiem $ ,
takim jak $myLocalVariable
i działają tylko przez czas trwania metody.
Zmienne procesowe nie mają prefiksu takiego jak myProcessVariable
i są aktywne przez cały czas trwania procesu.
Zmienne międzyprocesowe (lub globalne) są poprzedzone znakiem <>
takim jak <>myGlobalVariable
i są aktywne przez cały czas działania aplikacji.
Porównanie pętli
Dla
For(vCounter;1;100) // Zrób coś Koniec dla
Chwila
$i :=1 // Inicjalizacja licznika While($i<=100) // Zapętlenie 100 razy // Zrób coś $i :=$i +1 // Potrzeba zwiększenia licznika Koniec while
Powtarzać
$i :=1 // Inicjalizacja licznika Powtórz // Zrób coś $i :=$i +1 // Musisz zwiększyć licznik do($i=100) // Zapętl 100 razy
Pętle zagnieżdżone
Poniższy przykład przechodzi przez wszystkie elementy tablicy dwuwymiarowej:
For($vlElem;1;Size of array(anArray)) // ... // Zrób coś z wierszem // ... For($vlSubElem;1;Size of array(anArray{$vlElem})) / / Zrób coś z elementem anArray{$vlElem}{$vlSubElem}:=... Koniec dla Koniec dla
Poniższy przykład tworzy tablicę wskaźników do wszystkich pól dat znajdujących się w bazie danych:
ARRAY POINTER($apDateFields;0) $vlElem:=0 For($vlTable;1;Pobierz ostatni numer tabeli) // pętla nad każdym numerem tabeli z $vTable jako liczbą If(Czy numer tabeli jest ważny($vlTable)) / / sprawdź, czy numer tabeli $vTable jest poprawny // tylko pętla na prawidłowej tabeli For($vlField;1;Get last field number($vlTable)) // pętla nad każdym numerem pola w bieżącej tabeli // z $vlField jako aktualny numer pola If(Czy numer pola jest poprawny($vlTable;$vlField)) // sprawdź czy numer pola jest poprawny $vpField:=Field($vlTable;$vlField) // pobierz wskaźnik do pola If(Type($vpField- >)=Jest datą) // sprawdź, czy bieżące pole jest datą // wykonuje te czynności tylko wtedy, gdy pole jest datą $vlElem:=$vlElem+1 INSERT IN ARRAY($apDateFields;$vlElem) $apDateFields{$vlElem} :=$vpField Koniec jeśli Koniec Jeśli Koniec dla Koniec Jeśli Koniec dla
Linki zewnętrzne
- Oficjalna strona internetowa
- Dokumentacja 4D ( nowe i starsze )
- Nowe forum 4D ( http://discuss.4d.com/ )
- Baza wiedzy 4D
- 4th Dimension (oprogramowanie) w Curlie
- Baza danych 4d na Stack Overflow
- Oprogramowanie wieloplatformowe
- Narzędzia do tworzenia aplikacji bazodanowych dla komputerów stacjonarnych
- Języki programowania wysokiego poziomu
- Proceduralne języki programowania
- Języki programowania stworzone w 1984 roku
- Własne systemy zarządzania bazami danych
- Systemy zarządzania relacyjnymi bazami danych