Basisprincipes van 4th Dimension Learning
Deze serie is bedoeld om mensen te helpen die overstappen van FileMaker Pro of die enige ervaring hebben met het ontwerpen van databases met een andere applicatie. Wanneer in deze serie “4D” wordt gebruikt, wordt verwezen naar “4th Dimension” en wanneer “FMP” wordt gebruikt, wordt verwezen naar “FileMaker Pro.”
Misschien wel de grootste hindernis bij de overstap vanuit de wereld van FMP is dat 4D fundamenteel anders is. De basisfilosofie van het programma is anders. De termen zijn anders. Ik zal proberen de lezer wegwijs te maken in 4D door uit te leggen hoe zaken zich verhouden tussen 4D en FMP. Sommige van deze dingen zijn echter zeer moeilijk of onmogelijk in verband te brengen, omdat ze uniek zijn voor elk product.
Referenties voor FMP hebben betrekking op versie 5.0.x en de Standard Edition van 4D versie 4.6.x.
Opmerking: De huidige adviesprijs voor FMP 5.0 is $249 en voor de 4D Standard Edition $349. Zowel 4D als FMP zijn platformonafhankelijk. Beide werken op Macintosh- en Windows-systemen. Beide hebben webmogelijkheden.
Deel I zal een stukje geschiedenis geven voor zowel FileMaker als 4D. Het is wellicht interessant om op te merken dat zowel 4D als FileMaker hun oorsprong vonden op de Macintosh en ongeveer tegelijkertijd (midden jaren 80). Deel I zal ook, niet al te gedetailleerd, het volgende behandelen:
- Systeemvereisten
- Programmastructuren
- Netwerkverschillen
- Verschillen in de runtimeversies
- Compiler
- Webhosting
- Data Charting
- Plug-ins
- Tools/hulpprogramma’s
- Resources
- Andere 4D-URL’s
Opmerking: De volgende volgorde en inhoud van elk deel zijn voorlopig.
Gerelateerd: — Een spreadsheet-eenvoudige interface bovenop een echte relationele database, met automatiseringen, weergaven en deelbare interfaces..
- Deel II behandelt het maken van een eenvoudig 4D-programma
- Deel III behandelt aangepaste menu’s
- Deel IV behandelt methoden
- Aanvullende delen nader te bepalen.
Belangrijkste punten
- 4D en FileMaker Pro zijn beide voortgekomen uit de Macintosh-databasescène uit het midden van de jaren tachtig, maar ze lossen dezelfde problemen op met zeer verschillende architecturen.
- Het moeilijkste deel van de overstap van FMP naar 4D is niet de syntaxis — het is de onderliggende filosofie van hoe gegevens, structuur en code worden gescheiden.
- 4D biedt een echte relationele engine, een programmeertaal (de 4D-taal) en een compiler, terwijl FMP historisch gezien de nadruk legde op een lay-outgestuurd model met één enkel bestand.
- De terminologie verschilt sterk tussen de twee producten, dus het leren van de 4D-vocabulaire is een voorwaarde voor het lezen van enige 4D-documentatie.
- Platformonafhankelijke ondersteuning en webmogelijkheden zijn aanwezig in beide producten, maar de manier waarop elk product deze levert — runtime, compiler en plug-inmodel — verschilt aanzienlijk.
- Dit Deel I is een kaart van het terrein; het praktijkgerichte bouwen begint in Deel II.
Waarom 4D anders aanvoelt dan FileMaker Pro
Als u jarenlang in FileMaker Pro heeft gewerkt, is uw mentale model van een database waarschijnlijk opgebouwd rond één enkel bestand dat tabellen, lay-outs, scripts en relaties allemaal op één plek bevat. U opent het bestand, u ziet een lay-out, u klikt in een veld en u bent aan het werk. Dat model is handig en het is een van de redenen waarom FMP zo populair werd bij kleine teams en citizen developers.
4D vraagt u om anders te denken. In 4D wordt de structuur van de database (tabellen, velden, relaties) gedefinieerd in een aparte structurele context van de formulieren (de gebruikersinterface) en van de methoden (de code). Deze scheiding ligt dichter bij de manier waarop traditionele client/server-relationele databases zijn georganiseerd, en het is de allerbelangrijkste conceptuele verschuiving die een FileMaker-ontwikkelaar moet maken.
Een handige manier om het verschil te kaderen:
Als u aan het winkelen bent: — Een die aansluit op de bredere Zoho-suite en prijzen per gebruiker in plaats van per app..
- FileMaker Pro heeft de neiging documentgericht te zijn. Het bestand is de applicatie.
- 4D heeft de neiging structuurgericht te zijn. De structuur definieert het datamodel, en de applicatie wordt daarop gebouwd met formulieren, methoden en menu’s.
Geen van beide benaderingen is in abstracte zin “beter”. FMP optimaliseert voor snelle iteratie door één ontwikkelaar. 4D optimaliseert voor grotere, meer gestructureerde en meer programmeerbare applicaties — wat de reden is dat het ontwikkelaars aantrok die een echte programmeertaal en een compiler nodig hadden.
Een korte gedeelde geschiedenis
Het is de moeite waard om even stil te staan bij het feit dat zowel 4D als FileMaker hun oorsprong vonden op de Macintosh en ongeveer tegelijkertijd, halverwege de jaren tachtig. Dat is geen toeval. De oorspronkelijke Macintosh creëerde een nieuwe markt voor desktopdatabasetools die door individuen en kleine bedrijven konden worden gebruikt in plaats van door mainframe-operators.
FileMaker begon als een Macintosh-product en werd later overgenomen en ontwikkeld door Claris (een spin-off van Apple), wat de reden is waarom zoveel langdurige Mac-gebruikers FileMaker associëren met het Apple-ecosysteem. 4D werd ontwikkeld door ACI (ACI US in de Verenigde Staten) en groeide uit tot een platformonafhankelijke ontwikkelomgeving met een eigen taal en compiler.
Beide producten overleefden de overgang van het klassieke Mac OS naar Windows en naar moderne besturingssystemen, en beide voegden webmogelijkheden toe. Die gedeelde afkomst is de reden waarom een FileMaker-ontwikkelaar vaak 4D-documentatie kan lezen en de problemen kan herkennen die worden opgelost, zelfs wanneer de oplossingen onbekend lijken.
Systeemvereisten en platformonafhankelijke realiteit
Zowel 4D als FMP zijn platformonafhankelijk. Beide werken op Macintosh- en Windows-systemen. Beide hebben webmogelijkheden. Dat is wat ze gemeen hebben.
Waar ze uiteenlopen, is in wat “cross-platform” betekent voor de ontwikkelaar. In een FileMaker-wereld ontwikkel je doorgaans op één platform en wordt hetzelfde bestand geopend op het andere, met lay-outs die zich aanpassen. In 4D is cross-platform ontwikkeling explicieter: u bouwt een gecompileerde of geïnterpreteerde applicatie die op elk doelplatform moet worden geïmplementeerd, en u moet zich bewust zijn van platformspecifiek gedrag, bestandspaden en interfaceconventies.
Praktische begeleiding voor de ontwikkelaar afkomstig van FMP:
- Bepaal vroegtijdig uw implementatiedoelen. Als u slechts op één platform implementeert, kunt u veel cross-platform nuances negeren. Als u voor beide implementeert, plan dit dan vanaf het eerste formulier.
- Test op het “andere” platform voordat u zich diep in het project verdiept. Cross-platform problemen zijn goedkoop om vroeg op te lossen en duur om laat op te lossen.
- Begrijp het runtimemodel. 4D maakt onderscheid tussen de ontwikkelomgeving en de geïmplementeerde runtime, een concept dat FileMaker-ontwikkelaars hier vaak voor het eerst tegenkomen.
Programmastructuren: hoe de stukken in elkaar passen
Dit is het gedeelte dat het meest loont bij zorgvuldig lezen, omdat het hier het verschil in filosofie concreet wordt.
In 4D zijn de belangrijkste structurele onderdelen:
- De structuur — de definitie van tabellen, velden en relaties. Dit is uw datamodel.
- Formulieren — de gebruikersinterface. Formulieren zijn aan tabellen gekoppeld en zijn het equivalent van FileMaker-lay-outs, maar ze zijn explicieter gescheiden van de gegevens.
- Methoden — de code. 4D heeft een volledige programmeertaal, en methoden zijn de plek waar de logica leeft.
- Menu’s — aangepaste menu’s, die deel III van deze serie in detail zal behandelen.
In FileMaker Pro zijn deze aspecten meer vermengd. Een lay-out kan zowel presentatie als logica bevatten (via scripttriggers en berekeningen), en het bestand zelf is de container voor alles.
Het praktische gevolg is dat u in 4D meer tijd zult besteden aan het ontwerpen voordat u gaat bouwen. Dat voelt eerst langzamer en later sneller. FileMaker beloont het direct inspringen; 4D beloont het eerst plannen van de structuur.
Een ruwe vergelijking:
| Aspect | FileMaker Pro (5.0.x) | 4D (Standard Edition 4.6.x) |
|---|---|---|
| Datamodel | Tabellen en relaties in het bestand | Structuur afzonderlijk gedefinieerd van de UI |
| Gebruikersinterface | Lay-outs | Formulieren |
| Logica | Scripts en berekeningen | Methoden (volledige taal) |
| Menu’s | Ingebouwde menu’s, beperkt maatwerk | Aangepaste menu’s (behandeld in deel III) |
| Implementatie | Open het bestand | Runtime en gecompileerde implementatieopties |
| Extensie | Plug-ins | Plug-ins |
Netwerkverschillen
Netwerken is een van de gebieden waarop de twee producten uiteenlopen op manieren die van belang zijn voor echte implementaties.
Het netwerkmodel van FileMaker Pro is opgebouwd rond het openen van een gedeeld bestand via een netwerk, waarbij FileMaker Server of peer-to-peer delen de gelijktijdige toegang afhandelt. Het is ontworpen om eenvoudig te zijn: u deelt een bestand, anderen openen het.
Het netwerkmodel van 4D weerspiegelt zijn client/server-erfgoed. 4D-applicaties worden doorgaans geïmplementeerd als een client die verbinding maakt met een serverproces, en de ontwikkelaar heeft meer controle — en meer verantwoordelijkheid — over de manier waarop gegevens tussen hen worden verplaatst. Dit is van belang omdat het van invloed is op het afstemmen van de prestaties, het gedrag van recordvergrendeling en de manier waarop u formulieren ontwerpt die grote recordsets weergeven.
Voor de ontwikkelaar afkomstig van FMP zijn de belangrijkste vragen om te stellen:
- Hoeveel gelijktijdige gebruikers zullen daadwerkelijk verbinding maken?
- Zal de applicatie draaien via een LAN, een WAN of het openbare internet?
- Hoeveel data zal elk formulier over het netwerk trekken, en kan dat worden verminderd?
Dit zijn vragen die FileMaker-ontwikkelaars vaak kunnen uitstellen. In 4D komen ze eerder naar boven.
Runtimes, de compiler en waarom ze ertoe doen
Twee van de meest onderscheidende 4D-concepten — en twee van de minst bekende voor FileMaker-ontwikkelaars — zijn de runtime en de compiler.
Een runtime is een versie van uw applicatie die kan worden gedistribueerd naar gebruikers die geen eigenaar zijn van de 4D-ontwikkelomgeving. Dit is hoe 4D-ontwikkelaars standalone applicaties leveren. FileMaker heeft een analoog concept in runtime-oplossingen, maar het runtime-model van 4D is centraler voor de manier waarop het product commercieel wordt gebruikt.
De compiler neemt uw geïnterpreteerde 4D-code en compileert deze naar een snellere, beter beschermde vorm. Compilatie gaat niet alleen over snelheid; het gaat ook om het beschermen van uw broncode wanneer u een applicatie distribueert. Voor ontwikkelaars die alleen in FileMaker hebben gewerkt, waarbij het bestand de applicatie is en de bron feitelijk het bestand is, is dit een werkelijk nieuw idee.
Hoe te beslissen of u wilt compileren:
- Compileer wanneer u distribueert naar eindgebruikers en prestaties en bronbescherming wilt.
- Blijf geïnterpreteerd tijdens de ontwikkeling, waar de snellere edit-testcyclus belangrijker is dan ruwe snelheid.
- Plan vroegtijdig voor compilatie, omdat code die schoon compileert meestal beter gestructureerde code is.
Webhosting, datagrafieken en plug-ins
Beide producten hebben webmogelijkheden, maar ze benaderen het web anders. FileMaker’s webpublicatie legde historisch gezien de nadruk op het serveren van lay-outs aan een browser. De webmogelijkheden van 4D zijn gekoppeld aan de taal en de server, waardoor ontwikkelaars meer programmatische controle krijgen over wat er wordt geserveerd en hoe.
Datagrafieken (data charting) is een ander gebied waar 4D-ontwikkelaars historisch gezien grepen naar plug-ins en externe tools om grafieken en rapporten weer te geven. Als grafieken belangrijk zijn voor uw applicatie, evalueer dit dan vroegtijdig in plaats van aan te nemen dat het ingebouwd is.
Plug-ins bestaan in beide ecosystemen. In FileMaker breiden plug-ins de berekenings- en scriptengine uit. In 4D breiden plug-ins de taal uit en kunnen ze diep in de applicatie inhaken. Het praktische advies is in beide werelden hetzelfde: geef de voorkeur aan ingebouwde mogelijkheden waar die bestaan, en behandel plug-ins als afhankelijkheden die je over versies heen moet onderhouden.
Tools, hulpprogramma’s en bronnen
Er zijn een paar gewoonten die ontwikkelaars die gedijen met 4D onderscheiden van degenen die worstelen:
- Lees eerst de officiële documentatie. De documentatie van 4D is de gezaghebbende bron voor de taal en het structuurmodel.
- Gebruik de ontwikkelaarsgemeenschap. Discussielijsten en gebruikersgroepen waren, en blijven, de plek waar praktische 4D-kennis leeft.
- Houd een persoonlijke bibliotheek met methoden bij. Omdat 4D-code tekstgebaseerd en herbruikbaar is, loont een goed georganiseerde methodenbibliotheek over verschillende projecten heen.
- Leer de woordenschat bewust. Termen als structuur, formulier, methode en runtime hebben specifieke betekenissen in 4D die verschillen van hun FileMaker-tegenhangers.
Voor een bredere achtergrond over het relationele model dat aan beide producten ten grondslag ligt, blijft het originele werk van E. F. Codd over relationele databases de canonieke referentie, en het Wikipedia-artikel over het relationele model is een redelijk uitgangspunt.
Voor de geschiedenis van het Macintosh-platform waaruit beide producten voortkwamen, is het Wikipedia-artikel over de Macintosh een nuttige context. Voor algemene databaseterminologie is het Wikipedia-artikel over databasebeheersystemen een behulpzame oriëntatie.
Dankbetuigingen
Speciale dank aan:
- Brendan Coveney, President ACI US, voor zijn hulp bij de geschiedenis van 4th Dimension.
- Will Porter (wporter@polytrope.com) van POLYTROPE SOLUTIONS, Houston, Texas, The XXII Group, voor zijn hulp bij het proeflezen en het me op het rechte pad houden.
- James Fortier (jim40er@halcyon.com) voor het leveren van enkele bronnen en het helpen proeflezen van het document.
- Douglas Blew (fridays@impluse.net) voor suggesties.
- Jim Staples (jstaples@acius.com) van ACI US, Inc., Macom/Press Relations, voor het proeflezen en het geven van commentaar.
- David Graham (davidgraham@mac.com) voor het ontwerpen van de web- en PDF-lay-outs voor deze handleiding.
Veelgestelde vragen
Is 4D in principe hetzelfde als FileMaker Pro?
Nee. Beiden zijn platformonafhankelijke databaseproducten die halverwege de jaren tachtig op de Macintosh zijn ontstaan en beiden hebben webmogelijkheden, maar hun onderliggende filosofieën verschillen. FileMaker Pro is documentgericht, waarbij het bestand de applicatie is, terwijl 4D de gegevensstructuur, formulieren en methoden scheidt in verschillende domeinen. Die scheiding is de reden waarom 4D meer aanvoelt als een traditionele ontwikkelomgeving.
Moet ik een programmeertaal kennen om 4D te gebruiken?
Je kunt eenvoudige dingen bouwen zonder diepgaande programmering, maar de echte kracht van 4D zit in de taal en de methoden. Als je uit FileMaker komt, waar scripts en berekeningen veel terrein bestrijken, zul je merken dat 4D van je verwacht dat je meer code schrijft voor gelijkwaardige functionaliteit. De beloning is meer controle en een betere structuur voor grotere applicaties.
Wat is een 4D-runtime en waarom is dat belangrijk?
Een runtime is een distribueerbare versie van je applicatie die gebruikers kunnen uitvoeren zonder de volledige 4D-ontwikkelomgeving te bezitten. Het is belangrijk omdat dit de manier is waarop 4D-ontwikkelaars standalone applicaties naar eindgebruikers verzenden. FileMaker heeft een soortgelijk concept, maar in 4D is het runtimemodel centraler voor commerciële implementatie.
Waarom zou ik mijn 4D-applicatie compileren?
Compilatie verbetert de prestaties en beschermt je broncode wanneer je de applicatie distribueert. Tijdens de ontwikkeling blijf je over het algemeen geïnterpreteerd voor een snellere edit-testcyclus, en je compileert wanneer je klaar bent voor verzending. Code die schoon compileert, is meestal ook beter georganiseerd, dus het is de moeite waard om vroegtijdig voor compilatie te plannen.
Hoe verschillend is netwerken tussen 4D en FileMaker Pro?
Het netwerken van FileMaker Pro is opgebouwd rond het delen van een bestand, waarbij FileMaker Server of peer-to-peer delen de gelijktijdige toegang afhandelt. Het netwerken van 4D weerspiegelt zijn client/server-erfgoed, waardoor ontwikkelaars meer controle en meer verantwoordelijkheid krijgen over hoe gegevens tussen client en server bewegen. Dat beïnvloedt de prestatie-optimalisatie, recordvergrendeling en de manier waarop je formulieren ontwerpt die grote recordsets weergeven.
Wat zal deel II van deze serie behandelen?
Deel II zal het maken van een eenvoudig 4D-programma behandelen, waarbij het proces wordt doorlopen van structuur naar formulier naar methode. Deel III zal Custom Menus behandelen, en deel IV zal dieper ingaan op Methoden. Aanvullende delen moeten nog worden bepaald, en de volgorde en inhoud van elk deel zijn voorlopig.
Copyright © 1994-2000 HPO Soft. Alle rechten voorbehouden.
Probeer FileMaker 45 dagen gratis
Het langlopende relationele databaseplatform voor teams die aangepaste apps nodig hebben op desktop, internet en mobiel vanuit één bestand.