AppML- geschiedenis


In 1999 ontwikkelde Refsnes Data de eerste versie van AppML.

Toen al was AppML gebaseerd op HTTP-verzoekcommunicatie tussen webclient en webserver. Later werd deze methode bekend als AJAX.

In september 2000 werd gestart met een ontwikkelingsproject voor een grote Noorse klant. Het doel van het project was om een ​​enorm informatiesysteem (ongeveer 300 applicaties) om te zetten van een Windows-desktopapplicatie naar een moderne internetapplicatie, met alleen AppML.

Het op AppML gebaseerde systeem werd in 2001 gelanceerd, enkele maanden eerder dan gepland, als 's werelds eerste commerciële AJAX-toepassing. Het project was een enorm succes, waarbij de ontwikkeltijd met 75% werd verminderd in vergelijking met gewone webontwikkeling. Sindsdien zijn er nieuwe applicaties toegevoegd en het systeem dekt nu meer dan 1000 actieve applicaties.

In februari 2015 lanceerde W3Schools AppML opnieuw als een nieuw product, open voor het publiek.

AppML-ontwerpdoelen:

  • AppML-applicaties moeten via internet draaien
  • AppML-applicaties moeten platformonafhankelijk zijn
  • AppML-applicaties mogen alleen internetstandaarden gebruiken (HTML, CSS, JavaScript)
  • AppML-applicaties moeten verschillende applicatiebehoeften ondersteunen
  • AppML-applicaties moeten zichzelf beschrijven
  • AppML-applicaties moeten eenvoudig te ontwikkelen, te onderhouden en te wijzigen zijn
  • AppML-applicaties moeten toekomstbestendig zijn

De paragrafen hieronder beschrijven de oorspronkelijke visies van Refsnes Data (1999) over toekomstige webapplicaties.


Uitvoerbare bestanden zullen sterven, JavaScript blijft bestaan

Gecompileerde uitvoerbare bestanden (gecompileerd uit talen zoals C of Java) kunnen niet op verschillende hardware draaien.

Executables (EXE-bestanden, ActiveX- en COM-objecten, DLL-bestanden) zijn componenten die de ontwikkeling van applicaties die via internet kunnen draaien, verhinderen.

Toekomstige toepassingen zullen geen gebruik maken van, of vertrouwen op, uitvoerbare bestanden of andere componenten die op de computer van de klant zijn geïnstalleerd.

Onze suggesties:

Schrijf uw toekomstige applicaties met alleen HTML, CSS en JavaScript.

Zorg ervoor dat uw toekomstige toepassingen in elke webbrowser worden uitgevoerd.


Webapplicaties worden internetdiensten

De geschiedenis zit vol met grote, speciaal gebouwde, toepassingen. Veel van deze stierven heel snel, omdat ze de veranderingen in de vereisten niet konden overleven.

Applicaties moeten flexibel en gegeneraliseerd zijn en zich gracieus aanpassen aan veranderingen, zonder te worden verkruimeld of vernietigd.

Applicaties moeten kunnen worden opgeschaald van enkele tot miljoenen verzoeken per dag.

Applicaties moeten zich van de ene server naar meerdere kunnen verspreiden, of tussen servers kunnen bewegen, zonder de applicatie te breken.

Applicaties moeten kunnen samenwerken met andere applicaties.

Applicaties mogen geen grote hoeveelheden code bevatten.

Applicaties moeten worden opgesplitst in kleinere services, die gemakkelijk te maken en te onderhouden zijn.

Applicaties moeten een set internetdiensten zijn die gegevens kunnen terugsturen naar ingediende internetverzoeken.

Applicaties moeten diensten aanvragen via standaard internetprotocollen zonder een permanente verbinding met de server te onderhouden. 

Onze suggesties:

Schrijf uw toekomstige applicaties met op internet gebaseerde SOA (Service Oriented Architecture).

Maak uw applicatieservices algemeen en flexibel, en klaar voor verschillende soorten verzoeken.


Toekomstige toepassingen zijn eenvoudig te maken en te bewerken

Clients en servers wisselen op een begrijpelijke manier gegevens uit.

Aanvragen worden niet gecodeerd, als het kan worden vermeden.

Applicaties worden gemaakt en aangepast door modellen te bewerken, niet door code te bewerken.

Applicatiebeschrijvingen zijn leesbaar voor mensen.

Toepassingsbeschrijvingen zullen zichzelf beschrijven.

Applicaties worden geschreven door gebruikers, niet door programmeurs.

Onze suggesties:

Gebruik voor mensen leesbare tekstbestanden om services te beschrijven en bied services door deze beschrijvingen uit te voeren.

Gebruik tekstbestanden (zoals JSON-bestanden) om applicaties te beschrijven.

Gebruik tekstbestanden (zoals JSON-bestanden) om gegevens uit te wisselen.

Gebruik HTML, CSS en JavaScript om applicaties uit te voeren.


Drie kleine webontwikkelaars...

Er waren eens drie kleine webontwikkelaars die een nieuwe website ontwikkelden.

1. De eerste webontwikkelaar gebruikte AppML.

2. De tweede webontwikkelaar gebruikte zijn favoriete serverprogrammeertaal.

3. De derde was het gebruik van een professioneel framework voor webontwikkeling voor ondernemingen.

De eerste webontwikkelaar had binnen twee dagen een demo in gebruik. Na samenwerking met de gebruikers was in een week tijd een spannend prototype klaar. En na twee weken testen was een intelligente, snelle en gebruiksvriendelijke website klaar voor publicatie.

De tweede webontwikkelaar had zijn website na 6 maanden klaar. Maar het WWW had zijn eisen veranderd en was niet tevreden. De webontwikkelaar kon geen grote wijzigingen aanbrengen in zijn project omdat het te veel code bevatte. Dus begon hij met de ontwikkeling van versie 2.

De derde webontwikkelaar is er nooit in geslaagd zijn werk af te maken. Het professionele webontwikkelingsraamwerk was erg moeilijk te gebruiken, erg moeilijk te begrijpen en bijna onmogelijk om te testen.

Bekijk hoe de eerste ontwikkelaar het deed .