4:e dimensionen (mjukvara)
Designad av | Laurent Ribardière |
---|---|
Utvecklare | 4D SAS |
Dök först upp | 1984 | (dev) 1987 (officiell)
Stabil frisättning | v18 R5 / 19 januari 2021
|
Förhandsgranska release | v18 R6 Beta |
Implementeringsspråk | C, C++ |
Plattform | Cross-Plattform |
OS | Windows, macOS |
Licens | Proprietär |
Filnamnstillägg | 4DB, 4DC |
Filformat | Tolkad, sammanställd |
Hemsida |
Originalförfattare | Laurent Ribardière |
---|---|
Utvecklare | 4D SAS |
Initial release | 1984 | (ss) 1987 (v1)
Stabil frisättning | v18 R5 / 19 januari 2021
|
Förhandsgranska release | v18 R6 Beta |
Skrivet i | C++ , C |
Operativ system | Windows , Mac OS |
Typ | RAD RDBMS IDE Language GUI Designer Web Server |
Licens | Proprietär |
Hemsida |
Originalförfattare | Laurent Ribardière |
---|---|
Utvecklare | 4D SAS |
Initial release | 1993 | (v1)
Stabil frisättning | v18 R5 / 19 januari 2021
|
Förhandsgranska release | v18 R6 Beta |
Skrivet i | C++ , C |
Operativ system | Windows , Mac OS |
Typ | RDBMS Web Server Application Server SQL Server Databas Server Language |
Licens | Proprietär |
Hemsida |
4D ( 4th Dimension , eller Silver Surfer , som det var känt under tidig utveckling) är ett relationsdatabashanteringssystem och IDE utvecklat av Laurent Ribardière . 4D skapades 1984 och fick en något försenad offentlig release för Macintosh 1987 med sitt eget programmeringsspråk .
4D-produktlinjen har sedan dess utökats till en SQL -backend , integrerad kompilator , integration av PHP och flera produktivitetsplugin-program och gränssnitt. Några av plugin-programmen som skapats av 4D inkluderar 4D Write (en ordbehandlare), 4D View (något som ett kalkylblad, men med extra funktionalitet) och 4D Internetkommandon (som gjorde det möjligt att lägga till Internet-relaterad funktionalitet till en databas) . Det finns också över 100 plugins från tredje part, gratis och kommersiella.
4D kan också användas som en webbserver för att köra kompilerade databasapplikationer.
Idag publiceras 4D av det franska företaget 4D SAS och har en försäljnings-, distributions- och supportnärvaro på de flesta större marknader, där USA, Storbritannien och Frankrike är de primära marknaderna. Produkten är lokaliserad på mer än ett dussin språk.
Historia
Silver Surfer, som den kallades under tidig utveckling, utvecklades av Laurent Ribardière 1984. Efter förhandlingar med Ribardiere var det planerat att Apple Inc. (tidigare Apple Computer Inc) skulle publicera programvaran men Apple avbröt planen, enligt uppgift på grund av press från andra potentiella databasutgivare som hävdade att om Apple hade sin egen "varumärkes"-databas skulle tredjepartsprodukter missgynnas på marknaden. Apple försökte på den tiden säkerställa att välkända programutgivare stödde Macintosh-plattformen, och som ett resultat återgick projektet till Laurent Ribardière , som tillsammans med den franska affärskvinnan Marylene Delbourg-Delphis publicerade 4th Dimension. Även om det publicerades oberoende stödde Apple det nya företaget och använde 4D i stor utsträckning i hela organisationen för projekt, inklusive fitnesscenterledning och CIM (Computer Integrated Manufacturing). Ett antal Apple-personal blev 4D-experter, inklusive Lance McAndrew i Apples Cupertino- huvudkontor och Andrew O'Donoghue i Apples Irland -baserade europeiska tillverkningshögkvarter, där en 4th Dimension-applikation skötte administrationen av det europeiska servicecentret.
Under de närmaste åren växte 4th Dimensions installerade bas, och utgivaren ACI etablerade ett USA-baserat dotterbolag som heter ACIUS, ursprungligen ledd av Guy Kawasaki . Efter 16 års verksamhet som ACIUS fram till 2000 ändrades namnet officiellt till 4D Inc.
1993 introducerades 4D Server v1.1, klient/serverversionen av 4th Dimension tillsammans med releasen av 4th Dimension v3.1.
1995 gick 4D v3.5 över plattformar och har sedan dess stöttat både Microsoft Windows och Apple Macintosh operativsystem.
1997 var 4D v6 den första versionen av 4D som innehöll en helt integrerad webbserver, vilket gjorde det möjligt för utvecklare att översätta 4D-formulär till HTML i farten med enbart 4D-språket.
2004 var 4D 2004 den första versionen av 4D som gjorde det möjligt för utvecklare att skapa fristående, klient/server-, webb- och Service Oriented Applications (SOA) utan att ändra någon kod.
Under 2008 lade 4D v11 till ett SQL-lager till 4D-databasmotorn och utökade inbyggd SQL till 4D-programmeringsspråket, vilket gjorde det möjligt för 4D-utvecklare att skriva inbyggd SQL-kod för att ansluta till antingen lokala eller fjärrservrar.
Under 2010 integrerade 4D v12 möjligheten att exekvera PHP-funktioner/skript från 4D-programmeringsspråket. Denna version stödde också nya replikerings- och synkroniseringskommandon och inkluderade en 64-bitarsversion av 4D Server.
Versionshistorik
Gren | Senaste versionen | Initial release | Slutlig utgåva | Status februari 2022 | Anteckningar |
---|---|---|---|---|---|
v19.x | v19.LTS | 12 juli 2021 | Pågående | Stöds | Inbyggt stöd för Apple Silicon, klasser |
v18.x | v18.LTS | 16 januari 2020 | Pågående | Stöds | Projektdatabaser för versionskontroll, inbyggda krypteringsverktyg, 4D för iOS, 4D Write Pro, 4D View Pro |
v17.x | v17.4 | 10 juli 2018 |
13 december 2020 (4D v17.5) |
Supporten upphörde 13 december 2020 | ORDA (Object Relational Data Access), Samlingar, Objektnotation, Dynamiska formulär |
v16.x | v16.6 | 10 januari 2017 |
24 juli 2019 (4D v16.6) |
Supporten upphörde 24 juli 2019 | Nytt cachehanteringssystem, Preemptive Multithreading, 4D Dev Pro 64 bitar |
v15R | v15R5 | 10 november 2015 | 14 september 2016 | Ersatt av 16.x | Förhandsgranskning av funktioner som ska finnas i v16.x |
v15.x | v15.6 | 16 juli 2015 | 25 april 2017 | Supporten avslutades 25 april 2018 | 64-bitars 4D-server för Mac-servrar; Nytt nätverkslager |
v14R | v14R5 | maj 2014 | mars 2015 | Stöds inte längre | förhandsgranskning av funktioner som ska finnas i v15.x |
v14.x | v14.6 | 12 december 2013 | 20 december 2016 | Stöds inte längre | 4D Mobile (Anslutningsalternativ för 4D Server som en datakälla för Wakanda (mjukvara) ) ; Strukturerade JSON-objekt (C_Object); SQL-vyer; nya verktyg för underhåll och övervakning, nytt journalsystem. |
v13.x | v13.6 | 14 februari 2012 | 18 juni 2015 | Stöds inte längre | Ny flertrådad HTTP-server; automatisk sessionshantering; ny utbyggbar HTTP-klient; webkit-integration och utökat Javascript-stöd; berikad listruta; extern dokumenthantering. |
v12.x | v12.6 | 3 juni 2010 | 8 oktober 2013 | Stöds inte längre | 64-bitars 4D-server för Windows-servrar; PHP integration; Synkronisering och replikering |
v11.x | v11.9 | 23 september 2008 | 7 juli 2011 | Stöds inte längre | SQL-motor; integrerat underhållscenter (MSC); SVG-hantering; Integrerat webbområde |
2004.x | 2004.8 | 31 augusti 2004 | 30 juni 2009 | Stöds inte längre | Förnyat gränssnitt; Integrering av ODBC-kommandon på hög nivå, 4D Customizer, 4D Backup och 4D Engine |
2003.x | 2003.8r2 | 17 mars 2003 | 11 april 2006 | Stöds inte längre | XML; Webbservice; Inbäddad kompilator |
v6.8.x | 6.8.6 | 15 april 2002 | 24 september 2004 | Stöds inte längre | |
v6.7.x | 6.7.5 | Stöds inte längre | |||
v6.5.x | 18 maj 1999 | Stöds inte längre | |||
v6.0.x | 6.0.5 | 1997 | 27 februari 1998 | Stöds inte längre | Integrerad webbserver |
v3.x | Stöds inte längre | 4D v3.5 var den första plattformsoberoende versionen (mac/win), | |||
v1.x | 1987 | Stöds inte längre | Endast Mac |
Arkitektur
En 4D-applikation kan köras i antingen fristående läge eller klient-serverläge.
Enanvändare
I fristående läge används 4D-applikationen (4D.exe på Windows eller 4D.app på Mac) för att öppna strukturfilen (4DB/4DC) direkt tillsammans med den tillhörande datafilen (4DD).
Klient-server
I Client-Server-paradigmet används 4D Server-applikationen (4DServer.exe på Windows eller 4DServer.app på Mac) för att öppna strukturfilen (4DB/4DC)-filen direkt tillsammans med den tillhörande datafilen (4DD). 4D kan sedan användas i fjärrläge för att ansluta till 4D-servern.
Application Editions
4D har två applikationer; 4D- och 4D-server. 4D Server körs endast som en server men 4D kan köras i antingen fristående eller fjärrläge.
4D
4D kan köras i två lägen. 4D i enanvändarläge tillåter 1 person att köra applikationen. 4D i fjärrläge används för att ansluta till en 4D-server.
4D-server
4D Server används för klient-server-anslutning till applikationen. I det här läget laddar 4D Server strukturfilen (4DB eller 4DC) och även datafilen (4DD) och ger nätverksåtkomst till 4D (i fjärrkontrollen). Varje arbetsstation har en dynamiskt uppdaterad cache för resurserna de arbetar med, medan 4D-servern underhåller data och kod.
Syntax
Det här avsnittet kommer att innehålla syntaxexempel som visar olika programmeringskonstruktioner som används i 4D, till exempel för loopar och variabel användning.
Datatyper
4D-fält, variabler och uttryck kan vara av följande datatyper:
Data typ | Fält | Variabel | Uttryck |
---|---|---|---|
Sträng | Ja | Ja | Ja |
Antal (dubbel) | Ja | Ja | Ja |
Datum | Ja | Ja | Ja |
Tid | Ja | Ja | Ja |
Boolean | Ja | Ja | Ja |
Bild | Ja | Ja | Ja |
Pekare | Nej | Ja | Ja |
KLICK | Ja | Ja | Nej |
Array | Nej | Ja | Nej |
Heltal 64 bitar | Ja | Nej | Nej |
Flyta | Ja | Nej | Nej |
Objekt | Ja | Ja | Ja |
Samling | Ja | Ja | Ja |
Odefinierad | Nej | Ja | Ja |
Mer information om 4D-datatyp finns på dokumentationssidan [ 4D Data Types]
Variabelt omfattning
Lokala variabler har prefixet med en $
som $myLocalVariable
och lever endast under hela metoden.
Processvariabler har inget prefix som myProcessVariable
och lever under hela processens varaktighet.
Interprocessvariabler (eller globala) har prefixet <>
som <>myGlobalVariable
och lever under hela programmets varaktighet.
Jämförelse av looping
För
For(vCounter;1;100) // Gör något Sluta för
Medan
$i :=1 // Initiera räknaren While($i<=100) // Loopa 100 gånger // Gör något $i :=$i +1 // Behöver öka räknaren End while
Upprepa
$i :=1 // Initiera räknaren Upprepa // Gör något $i :=$i +1 // Behöver öka räknaren tills($i=100) // Loop 100 gånger
Kapslade loopar
Följande exempel går igenom alla element i en tvådimensionell array:
For($vlElem;1;Size of array(anArray)) // ... // Gör något med raden // ... For($vlSubElem;1;Size of array(anArray{$vlElem})) / / Gör något med elementet anArray{$vlElem}{$vlSubElem}:=... Slut för Slut för
Följande exempel bygger en array av pekare till alla datumfält som finns i databasen:
ARRAY POINTER($apDateFields;0) $vlElem:=0 For($vlTable;1;Hämta sista tabellnummer) // slinga över varje tabellnummer med $vTable som nummer If(Är tabellnumret giltigt($vlTable)) / / kontrollera om tabellnummer $vTable är giltigt // endast loop på den giltiga tabellen For($vlField;1;Hämta sista fältnummer($vlTable)) // loop över varje fältnummer i aktuell tabell // med $vlField som aktuellt fältnummer If(Är fältnumret giltigt($vlTable;$vlField)) // kontrollera om fältnumret är giltigt $vpField:=Field($vlTable;$vlField) // få pekare till fältet If(Type($vpField- >)=Är datum) // kontrollera om det aktuella fältet är ett datum // utför endast dessa åtgärder om fältet är ett datum $vlElem:=$vlElem+1 INSERT I ARRAY($apDateFields;$vlElem) $apDateFields{$vlElem} :=$vpField End if End If End for End If End för
externa länkar
- Officiell hemsida
- 4D-dokumentation ( ny och äldre )
- Nytt 4D-forum ( http://discuss.4d.com/ )
- 4D Kunskapsbas
- 4th Dimension (mjukvara) hos Curlie
- 4d-databas om Stack Overflow