AppML- architectuur


Moderne webarchitectuur

AppML combineert de meest up-to-date technieken en ideeën van moderne webontwikkeling.

AppML focus op snelheid, eenvoud en lage kosten:

  • Goedkoop
  • Snelle en flexibele webontwikkeling
  • Geoptimaliseerd voor cloudcomputing
  • Hoge snelheid en laag bandbreedteverbruik
  • MVC (Model Viev Controller)-architectuur
  • Volledige scheiding van inhoud van presentatie
  • Zeer schaalbaar en testbaar
  • Eenvoudige configuratie en herconfiguratie
  • Herconfiguratie terwijl applicaties actief zijn
  • Slimme ondersteuning voor gebruikersaccounts en rollen

MVC-architectuur

 

AppML gebruikt een MVC-architectuur

MVC staat voor Model, View, Controller

Het model beschrijft uw aanvraag.

De weergave toont uw gegevens.

De Controller bestuurt (uiteraard) uw applicatie.

 

Wikipedia: Model, weergave, controller

        MVC

Het MODEL - Alleen JSON

Het model beschrijft de toepassing.

Het model is herbruikbaar op verschillende hardware- en softwareplatforms (server, pc, iPhone, tablets, enz.).

Het model houdt zich niet bezig met presentatie of gebruikersinterface (UI).

Het model is geschreven in JSON:

Model

{
"rowsperpage" : 10,
"database" : {
    "connection" : "localmysql",
    "sql" : "SELECT CustomerName, City, Country FROM Customers",
    "orderby" : "CustomerName"
},
"filteritems" : [
    {"item" : "CustomerName", "label" : "Customer"},
    {"item" : "City"},
    {"item" : "Country"}
],
"sortitems" : [
    {"item" : "CustomerName", "label" : "Customer"},
    {"item" : "City"},
    {"item" : "Country"}
]
}

De VIEW - Alleen HTML

De weergave is de UI (User Interface) voor het weergeven (en invoeren) van gegevens.

De weergave is geschreven in HTML en CSS:

HTML-weergave

<!DOCTYPE html>
<html lang="en-US">
<title>Customers</title>
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">
<script src="https://www.w3schools.com/appml/2.0.3/appml.js"></script>
<body>

<div class="w3-container" appml-data="local?model=model_customers">
<h1>Customers</h1>
<div appml-include-html="inc_listcommands.htm"></div>
<div appml-include-html="inc_filter.htm"></div>
<table class="w3-table-all">
  <tr>
    <th>Customer</th>
    <th>City</th>
    <th>Country</th>
  </tr>
  <tr appml-repeat="records">
    <td>{{CustomerName}}</td>
    <td>{{City}}</td>
    <td>{{Country}}</td>
</tr>
</table>
</div>

</body>
</html>

De CONTROLLER - Client- en/of serverscripts

Een clientscript op de webpagina kan de toepassing besturen:

  • AppML kan gegevens weergeven zoals gedefinieerd in het model
  • AppML kan gegevens weergeven zoals gedefinieerd door HTML-kenmerken.
  • AppML-applicaties kunnen onafhankelijk van HTML worden uitgevoerd (verborgen)
  • (Optioneel) AppML kan modelgegevens opvragen bij een webserver (SQL-server)
  • (Optioneel) AppML-gebruikers kunnen gegevens bewerken
  • (Optioneel) AppML kan gegevens naar een webserver sturen

Een serverscript kan de toepassing besturen door:

  • Verzoeken ontvangen van de klant (browser)
  • Gegevens terugsturen naar de klant
  • Gegevens ontvangen van de klant
  • Gegevens op de server bijwerken
  • Zorgen voor authenticatie en beveiliging

De kunst van het programmeren

De omvang en complexiteit van de applicatie laag houden, is het grootste probleem van alle programmering.

Het beheersen van de complexiteit van computerapplicaties, is de ware kunst van het programmeren.


Declaratieve programmering

Bij softwareontwikkeling worden vaak deadlines en budgetten overschreden. Afgewerkte software zit vaak vol codeerfouten. Dit komt omdat computercode moeilijk te ontwikkelen, testen en onderhouden is.

Coderen is uit . Je zou meer moeten beschrijven wat je moet doen, minder hoe je het moet doen.

Met AppML geeft u uw aanvraag aan in het Model en in de View .

Met AppML is er minder (soms niets) te coderen .

Wikipedia: Declaratief programmeren


Snelle en flexibele applicatie-ontwikkeling

Het beheersen van de complexiteit van computerapplicaties is de ware kunst van het programmeren.

Het onder controle houden van de omvang en complexiteit van applicaties is het grootste probleem van alle programmering.

RAD is een softwareontwikkelingsmethode die minimale planning gebruikt ten gunste van rapid prototyping.

AppML levert supersnelle prototyping, tot 100 keer sneller dan traditionele ontwikkelmethoden.

Applicatieprototypes kunnen direct vanuit het applicatiemodel worden uitgevoerd, zonder enige codering.

Wikipedia: snelle applicatie-ontwikkeling

Agile softwareontwikkeling is een methode gebaseerd op stapsgewijze ontwikkeling, waarbij oplossingen door gebruikers en ontwikkelaars in samenwerking worden gecreëerd.

Met AppML kunnen applicaties stap voor stap, in kleine stappen, worden geschreven van prototype tot volledige applicatie.

Wikipedia: Agile softwareontwikkeling


Code eerst

Een webapplicatie kan op twee verschillende manieren worden ontwikkeld:

1. Code eerst: met behulp van voorgeprogrammeerde, vooraf geteste code, waarbij alleen nieuwe toepassingsbeschrijvingen worden toegevoegd.

2. Contract First: de applicatie vanaf het begin coderen met behulp van de volledige beschrijving van de applicatievereiste.

AppML hanteert het meest rationele concept: Code First .


Servicegerichte architectuur (SOA)

Service Oriented Architecture (SOA) is een architectuur voor het bouwen van webapplicaties.

SOA biedt lage ontwikkelkosten en hoge flexibiliteit.

Met SOA kunnen applicaties helemaal opnieuw worden gemaakt, of vanuit bestaande IT-infrastructuren, en door verschillende applicaties worden gebruikt op verschillende hardware en software.

SOA is perfect geschikt voor MVC en Declarative Programming , waar gegevens gemakkelijk kunnen worden gebruikt zonder dat u zich zorgen hoeft te maken over hoe.


Webservices

Een webservice is een interface naar gegevens, geïdentificeerd door een URL, net als een webpagina.

Een webservice verschilt alleen van een webpagina in de manier waarop deze informatie communiceert.

Een typische webservice levert alleen gegevens aan een webpagina.

Bij AppML is HTML de gebruikersinterface, een webservice levert de gegevens.

Originele webservices zijn ontworpen om XML-standaarden zoals SOAP, WSDL en UDDI te gebruiken.

Moderne webservices zoals AppML zijn veel gemakkelijker te gebruiken.

  • Eenvoudiger te begrijpen - Kan door mensen worden gelezen
  • Lichtgewicht - geen onnodige code of opmaak
  • Eenvoudig te implementeren - geen ontwikkeltools nodig

Voordelen van webservices

  • Webservices zijn kleine code-eenheden
  • Webservices zijn ontworpen om een ​​beperkt aantal taken uit te voeren
  • Webservices gebruiken op HTTP gebaseerde communicatieprotocollen
  • Webservices zijn onafhankelijk van besturingssystemen
  • Webservices zijn onafhankelijk van programmeertalen
  • Webservices kunnen verschillende applicaties, systemen en apparaten verbinden
  • Web Services maakt het gemakkelijk om informatie te verspreiden
  • Web Services is voorstander van snelle applicatie-ontwikkeling

Voorbeeld: Een klein programma ontworpen om andere applicaties te voorzien van de beurskoersen.

Voorbeeld: Vluchtschema's en ticketreserveringssystemen.

Omdat webservices HTTP gebruiken, zijn ze onafhankelijk van zowel besturingssystemen als programmeertalen.


Cloud computing

Cloud Computing is een uitbreiding van SOA: Application-as-a-service, Storage-as-a-service, Data-as-a-service.

Voor de meeste mensen gaat Cloud Computing over het opslaan van gegevens op internet:

  • E-mails en agenda's
  • Documenten en spreadsheets
  • Boeken, notities en takenlijsten
  • Muziek, foto's en films
  • Databases en applicaties

De redenen zijn vrij duidelijk:

  • Om overal toegang te hebben tot gegevens
  • Om mijn gegevens met anderen te delen
  • Om hardwarewijzigingen of crashes te overleven

Met AppML is het heel eenvoudig om zowel databases als applicaties in de cloud te zetten.