Grunderna i lärande i fjärde dimensionen
Konceptet med en runtime är en av de viktigaste – och mest missförstådda – idéerna i 4:e dimensionens (4D) värld. Det är kärnan i hur du förvandlar en databas du byggt åt dig själv till en distribuerbar applikation som andra kan använda, utan att ge dem nycklarna till din källkod eller tvinga dem att köpa en fullständig utvecklingslicens. Det här avsnittet förklarar vad runtimes är, hur 4D och FileMaker Pro (FMP) hanterade dem på olika sätt och vilka praktiska begränsningar du behöver förstå innan du planerar en distribution.
Viktiga punkter
- En runtime kombinerar en avskalad motor med dina utvecklade filer så att slutanvändare kan köra din applikation utan att äga hela utvecklingsprodukten.
- I 4D är skapandet av runtimes inbyggt i Standard Edition och kan distribueras royaltyfritt och utan “bindning”.
- 4D Runtime är en separat, omdistribuerbar applikation som kör tolkade databaser och erbjuder ingen designmöjlighet.
- 4D Runtime är för enanvändare enligt design – den kan inte nätverksanslutas, eftersom all 4D-nätverksfunktion kräver en server och betalda klientplatser.
- FileMaker Pros tillvägagångssätt krävde en Developer Edition och ett bindningssteg, och dess runtime-filer kunde inte heller nätverksanslutas.
Vad en runtime faktiskt är
En runtime är en distributionsmodell. När du utvecklar en databas arbetar du i en fullständig utvecklingsmiljö som inkluderar strukturredigeraren, formulärdesignern, metodredigeraren och alla andra designverktyg. Den miljön är kraftfull – och dyr, samt farlig att lämna till en slutanvändare som av misstag (eller avsiktligt) kan ändra din struktur.
En runtime löser alla tre problemen på en gång:
- Kostnad — slutanvändaren behöver inte köpa hela utvecklingsprodukten.
- Skydd — designmiljön tas bort, så strukturen och metoderna kan inte redigeras.
- Fokus — användaren ser bara applikationen du tänkt att de ska se, med dina anpassade menyer och gränssnitt.
Avvägningen är funktionalitet. En runtime är avsiktligt begränsad i förhållande till fullprodukten. Att förstå exakt hur den är begränsad – och om det spelar någon roll för ditt projekt – är hela poängen.
Hur 4D och FileMaker Pro skiljde sig åt
Både 4D och FMP erbjöd runtimes, men mekaniken var helt annorlunda. Jämförelsen nedan återspeglar tillståndet för de två produkterna som dokumenterades vid den tidpunkten.
| Aspekt | 4D (Standard Edition) | FileMaker Pro |
|---|---|---|
| Skapande av runtime | Inbyggt | Krävde en separat Developer Edition |
| Bindning krävs | Nej | Ja — filer bundna till motorn |
| Royalty | Royaltyfri distribution | Styrs av villkoren för Developer Edition |
| Nätverksanslutning av runtime | Stöds inte | Stöds inte, ens med FMP Server |
| Designmöjlighet i runtime | Ingen | Ingen |
Den viktigaste arkitektoniska skillnaden är bindning. FMP krävde att du band dina filer till runtime-motorn, och den motorn fungerade endast med filer som hade bundits till den. 4D tog ett lösare tillvägagångssätt: runtime-motorn är helt enkelt en separat applikation som kan öppna de databaser du designat för den, utan något bindningssteg. Den flexibiliteten är en av anledningarna till att 4D-utvecklare tenderade att uppleva runtime-distribution som mindre krånglig.
Relaterat: — Ett enkelt kalkylarksgränssnitt som sitter ovanpå en riktig relationsdatabas, med automatiseringar, vyer och delbara gränssnitt..
4D Runtime i detalj
Med 4D är förmågan att skapa runtimes inbyggd i Standard Edition. Du kan skapa obegränsat antal runtime-versioner och distribuera dem royaltyfritt. Det finns inget bindningssteg. 4D Runtime-motorn är en separat applikation, precis som 4D Standard, men den tillåter endast användningen av de skapade 4D-programmen – det finns ingen designmöjlighet överhuvudtaget.
4D Runtime betecknas som omdistribuerbar enligt 4th Dimension License Agreement och kan distribueras fritt enligt villkoren i den licensen. 4D Runtime består endast av applikationen som bär detta namn.
Några beteendemässiga detaljer är av stor betydelse i praktiken:
Om du handlar: — En appbyggare med låg kod som ansluts till den bredare Zoho-sviten och priser per användare snarare än per app..
- 4D Runtime kan bara köra tolkade databaser. Om du vill distribuera en kompilerad databas behöver du den separat inköpta 4D Runtime Classic, som tillåter runtimes av kompilerade versioner.
- När du startar 4D Runtime finns inte knappen Ny i dialogrutan Öppna databas. Du kan inte skapa en ny databas inifrån runtimen.
- Dialogrutan Öppna databas låter dig endast öppna tolkade strukturer, och endast databaser utformade för att köras i Custom Menus-miljön.
- Om du öppnar en databas som inte har någon menyrad, avslutas 4D Runtime automatiskt. Detta är ett absolut krav, inte en varning.
- Du kan inte gå in i användarmiljön eller designmiljön. Om du försöker nå designmiljön – till exempel genom att använda kortkommandot Option-f – avslutas 4D Runtime automatiskt.
Den sista punkten är värd att internalisera. Runtimen vägrar inte artigt; den avslutas. Detta är en avsiktlig säkerhetsmekanism, men det betyder att din databas måste vara korrekt konfigurerad innan du bygger runtimen, annars kommer dina användare att möta en vägg omedelbart.
Varför runtimes inte kan nätverksanslutas
Detta är den begränsning som överraskar människor mest: 4D-runtimes kan inte nätverksanslutas. Vid första anblicken verkar detta vara en allvarlig begränsning. Men det är logiskt när du väl förstår 4D:s licensarkitektur.
Allt nätverkande med 4D kräver en Server. Klienterna i sig är fria att distribuera, men en licens för varje användarplats måste fortfarande köpas. Eftersom server-och-klient-modellen redan existerar som den stödda vägen till fleranvändaråtkomst, är det enda syftet med runtime-versionen enanvändaranvändning. Runtime-versionen konkurrerar inte med Servern – den upptar en helt annan nisch.
Så beslutsträdet är enkelt:
- En användare, ingen server → en runtime är rätt distributionsfordon.
- Flera samtidiga användare → du behöver 4D Server och klientlicenser, inte en runtime.
Att försöka tvinga in en runtime i en fleranvändarroll är en återvändsgränd. Planera din arkitektur utifrån detta från början.
Hur man avgör om en runtime passar ditt projekt
Innan du bestämmer dig för en runtime-distribution, gå igenom dessa kriterier ärligt:
- Är det för enanvändare? Om mer än en person behöver samtidig åtkomst till delad data är en runtime fel verktyg.
- Tolkad eller kompilerad? Standard 4D Runtime kör endast tolkade databaser. Om du behöver kompilerad distribution, budgetera för 4D Runtime Classic.
- Använder din databas anpassade menyer? Det måste den, och den måste ha en menyrad, annars avslutas runtime-versionen vid öppning.
- Har du tagit bort alla beroenden av designtid? Varje metod eller formulär som förutsätter designåtkomst kommer att misslyckas.
- Förstår du licensvillkoren? Vidaredistribution är tillåten, men den regleras av 4th Dimension License Agreement – läs det istället för att anta.
Om du kan svara på alla fem med tillförsikt är en runtime ett rent, royaltyfritt sätt att leverera ditt arbete.
Praktisk förberedelsechecklista
Att bygga en runtime handlar mindre om ett enda kommando och mer om att förbereda din databas så att den beter sig korrekt när designmiljön är borta. En användbar checklista:
- Designa en riktig menyrad och styr applikationen genom Custom Menus-miljön.
- Testa i användarmiljön först. Om din databas beter sig fel där, kommer den att bete sig ännu sämre i en runtime.
- Ta bort eller skydda all kod som förutsätter designåtkomst, inklusive allt som utlöses av genvägar i designläge.
- Bekräfta att databasen öppnas rent utan någon dialogruta som förväntar sig en “Ny”-knapp.
- Bestäm tolkad kontra kompilerad tidigt, eftersom det avgör om du behöver 4D Runtime Classic.
- Dokumentera licensförpliktelserna som du överför till dina användare.
Det återkommande temat är att runtime-versionen är oförlåtande mot antaganden. Allt som den fullständiga miljön lät dig komma undan med måste lösas i förväg.
Var runtimes passar in i den bredare 4D-historien
Runtime-versioner är en del av en större distributionsbild som inkluderar systemkrav, programstrukturer, nätverksskillnader, kompilatorn, webbhotell, datadiagram, plug-ins och verktyg. Var och en av dessa interagerar med beslutet om runtime:
- Kompilatorn avgör om du kan leverera tolkad kod eller behöver en kompilerad runtime.
- Nätverkande avgör om en runtime överhuvudtaget är genomförbar.
- Plug-ins måste vara kompatibla med den runtime-motor du distribuerar.
- Webbhotell är en helt separat leveranskanal, skild från distribution av runtime för skrivbord.
Att tänka på runtime som alternativet för “skrivbordsleverans för enanvändare” – sida vid sida med serverbaserad fleranvändardistribution och webbdistribution – håller hela landskapet sammanhängande. För bakgrund om själva plattformen, se Wikipedia-artikeln om 4th Dimension, och för den bredare kategorin verktyg som låter små team bygga affärsapplikationer är Wikipedia-översikten över low-code development platforms en användbar referens. FileMaker, den andra produkten som diskuteras här, finns dokumenterad på FileMaker.
Vanliga frågor
Vad är en 4D runtime?
En 4D runtime är en avskalad, omdistribuerbar version av 4D-applikationen som kan köra de databaser du utvecklat men som inte erbjuder någon designkapacitet. Det låter dig distribuera ditt arbete till slutanvändare utan att de behöver köpa den fullständiga utvecklingsprodukten. Den är inbyggd i 4D Standard Edition och kan distribueras royaltyfritt.
Kan en 4D runtime användas av flera personer över ett nätverk?
Nej. 4D runtimes kan inte nätverkas. Allt nätverkande i 4D kräver en Server, och medan klienter är fria att distribuera, måste en licens köpas för varje användarplats. På grund av detta är runtime-versionens enda syfte enanvändaranvändning, och fleranvändardistributioner bör använda 4D Server istället.
Vad är skillnaden mellan 4D Runtime och 4D Runtime Classic?
Standard 4D Runtime kan endast köra tolkade databaser. Om du behöver distribuera en runtime av en kompilerad databas måste du köpa 4D Runtime Classic separat. Valet mellan dem beror helt på om du avser att leverera tolkad eller kompilerad kod.
Varför avslutas 4D Runtime när jag försöker öppna designmiljön?
Detta är avsiktligt. Runtime-versionen tar medvetet bort all designkapacitet, så ett försök att gå in i designmiljön – till exempel med genvägen Option-f – gör att den avslutas automatiskt. På samma sätt orsakar öppnandet av en databas utan menyrad en omedelbar avslutning, eftersom runtime-versionen förväntar sig databaser byggda för Custom Menus-miljön.
Kräver FileMaker Pro bindning för sina runtimes?
Ja. FMP krävde att du band dina filer till runtime-motorn, och den motorn fungerade endast med filer som var bundna till den. Det krävde också en separat Developer Edition. 4D har däremot inget bindningssteg och inkluderar skapandet av runtimes i Standard Edition.
Kan jag skapa en ny databas inifrån 4D Runtime?
Nej. När du startar 4D Runtime finns inte knappen Ny i dialogrutan Öppna databas. Dialogrutan gör det endast möjligt att öppna tolkade strukturer, och endast databaser som är utformade för att köras i Custom Menus-miljön. Skapande och design av databaser måste ske i den fullständiga utvecklingsmiljön i förväg.
Vanliga frågor
Vad är en 4D-körtid?
En 4D-runtime är en avskalad, omdistribuerbar version av 4D-applikationen som kan köra de databaser du utvecklat men som inte erbjuder någon designmöjlighet. Det låter dig distribuera ditt arbete till slutanvändare utan att de behöver köpa hela utvecklingsprodukten. Den är inbyggd i 4D Standard Edition och kan distribueras royaltyfritt.
Kan en 4D-runtime användas av flera personer över ett nätverk?
Nej. 4D-körtider kan inte kopplas till nätverk. Alla nätverk i 4D kräver en server, och medan klienter är fria att distribuera, måste en licens köpas för varje plats. På grund av detta är körtidens enda syfte enanvändaranvändning, och fleranvändardistributioner bör använda 4D Server istället.
Vad är skillnaden mellan 4D Runtime och 4D Runtime Classic?
Standard 4D Runtime kan endast köra tolkade databaser. Om du behöver distribuera en körtid för en kompilerad databas måste du köpa 4D Runtime Classic separat. Valet mellan dem beror helt på om du tänker skicka tolkad eller kompilerad kod.
Varför avslutas 4D Runtime när jag försöker öppna designmiljön?
Detta är designat. Körningstiden tar medvetet bort all designkapacitet, så ett försök att komma in i designmiljön – till exempel med genvägen Option-f – gör att den avslutas automatiskt. På samma sätt orsakar öppnandet av en databas utan menyrad en omedelbar utgång, eftersom körtiden förväntar sig databaser byggda för Custom Menus-miljön.
Kräver FileMaker Pro bindning för sina körtider?
Ja. FMP krävde att du skulle binda dina filer med runtime-motorn, och den motorn skulle bara fungera med filer bundna till den. Det krävde också en separat Developer Edition. 4D, däremot, har inget bindningssteg och inkluderar runtime-skapande i Standard Edition.
Kan jag skapa en ny databas från 4D Runtime?
Nej. När du startar 4D Runtime finns inte knappen Ny i dialogrutan Öppna databas. Dialogrutan låter dig endast öppna tolkade strukturer och endast databaser som är utformade för att köras i Custom Menus-miljön. Databasskapande och design måste ske i hela utvecklingsmiljön i förväg.
Prova FileMaker gratis i 45 dagar
Den långvariga relationsdatabasplattformen för team som behöver anpassade appar på skrivbordet, webben och mobilen från en enda fil.