AppML- Architektur


Moderne Webarchitektur

AppML vereint die aktuellsten Techniken und Ideen der modernen Webentwicklung.

AppML konzentriert sich auf Geschwindigkeit, Einfachheit und niedrige Kosten:

  • Kostengünstig
  • Schnelle und agile Webentwicklung
  • Optimiert für Cloud-Computing
  • Hohe Geschwindigkeit und niedriger Bandbreitenverbrauch
  • MVC-Architektur (Model Viev Controller).
  • Vollständige Trennung von Inhalt und Präsentation
  • Hochgradig skalierbar und testbar
  • Einfache Konfiguration und Neukonfiguration
  • Neukonfiguration bei laufender Anwendung
  • Intelligente Unterstützung für Benutzerkonten und Rollen

MVC-Architektur

 

AppML verwendet eine MVC-Architektur

MVC steht für Model, View, Controller

Das Modell beschreibt Ihre Anwendung.

Die Ansicht zeigt Ihre Daten an.

Der Controller steuert (natürlich) Ihre Anwendung.

 

Wikipedia: Modell, Ansicht, Controller

        MVC

Das MODELL - Nur JSON

Das Modell beschreibt die Anwendung.

Das Modell ist auf verschiedenen Hardware- und Softwareplattformen (Server, PC, iPhone, Tablets usw.) wiederverwendbar.

Das Modell befasst sich nicht mit Präsentation oder Benutzerschnittstelle (UI).

Das Modell ist in JSON geschrieben:

Modell

{
"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"}
]
}

Die ANSICHT - Nur HTML

Die Ansicht ist die UI (Benutzeroberfläche) zum Anzeigen (und Eingeben) von Daten.

Die Ansicht ist in HTML und CSS geschrieben:

HTML-Ansicht

<!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>

Der CONTROLLER - Client- und/oder Serverskripte

Ein Client-Skript auf der Webseite kann die Anwendung steuern:

  • AppML kann Daten wie im Modell definiert anzeigen
  • AppML kann Daten wie durch HTML-Attribute definiert anzeigen.
  • AppML-Anwendungen können unabhängig von HTML ausgeführt werden (versteckt)
  • (Optional) AppML kann Modelldaten von einem Webserver (SQL-Server) anfordern
  • (Optional) AppML-Benutzer können Daten bearbeiten
  • (Optional) AppML kann Daten an einen Webserver senden

Ein Serverskript kann die Anwendung steuern durch:

  • Empfangen von Anfragen vom Client (Browser)
  • Rücksendung von Daten an den Client
  • Empfangen von Daten vom Client
  • Aktualisieren von Daten auf dem Server
  • Kümmert sich um Authentifizierung und Sicherheit

Die Kunst des Programmierens

Anwendungsgröße und -komplexität gering zu halten, ist das Hauptproblem jeder Programmierung.

Die Komplexität von Computeranwendungen zu beherrschen, ist die wahre Kunst des Programmierens.


Deklarative Programmierung

Softwareentwicklung sprengt oft Fristen und Budgets. Fertige Software ist oft voller Programmierfehler. Dies liegt daran, dass Computercode schwierig zu entwickeln, zu testen und zu warten ist.

Codierung ist out . Sie sollten mehr beschreiben, was zu tun ist, und weniger , wie es zu tun ist.

Mit AppML deklarieren Sie Ihre Anwendung im Model und in der View .

Mit AppML muss weniger (manchmal gar nichts) programmiert werden .

Wikipedia: Deklarative Programmierung


Schnelle und agile Anwendungsentwicklung

Die Komplexität von Computeranwendungen zu kontrollieren, ist die wahre Kunst der Programmierung.

Anwendungsgröße und -komplexität unter Kontrolle zu halten, ist das Hauptproblem jeder Programmierung.

RAD ist eine Softwareentwicklungsmethode, die minimale Planung zugunsten von Rapid Prototyping verwendet.

AppML liefert superschnelles Prototyping, bis zu 100-mal schneller als herkömmliche Entwicklungsmethoden.

Anwendungsprototypen können ohne Codierung direkt aus dem Anwendungsmodell ausgeführt werden.

Wikipedia: Schnelle Anwendungsentwicklung

Agile Softwareentwicklung ist eine Methode, die auf einer schrittweisen Entwicklung basiert, bei der Lösungen von Benutzern und Entwicklern gemeinsam erstellt werden.

Mit AppML können Anwendungen Schritt für Schritt in kleinen Schritten von Prototypen bis hin zu vollständigen Anwendungen geschrieben werden.

Wikipedia: Agile Softwareentwicklung


Codieren Sie zuerst

Eine Webanwendung kann auf zwei verschiedene Arten entwickelt werden:

1. Code First: Verwendung von vorprogrammiertem, vorab getestetem Code, wobei nur neue Anwendungsbeschreibungen hinzugefügt werden.

2. Vertrag zuerst: Codierung der Anwendung von Grund auf unter Verwendung der vollständigen Anwendungsanforderungsbeschreibung.

AppML verwendet das rationalste Konzept: Code First .


Serviceorientierte Architektur (SOA)

Serviceorientierte Architektur (SOA) ist eine Architektur zum Erstellen von Webanwendungen.

SOA bietet niedrige Entwicklungskosten und hohe Flexibilität.

Mit SOA können Anwendungen von Grund auf oder aus bestehenden IT-Infrastrukturen erstellt und von verschiedenen Anwendungen auf unterschiedlicher Hardware und Software verwendet werden.

SOA passt perfekt zu MVC und deklarativer Programmierung , wo Daten einfach genutzt werden können, ohne sich Gedanken darüber machen zu müssen, wie.


Internetdienste

Ein Webdienst ist eine Schnittstelle zu Daten, die durch eine URL identifiziert wird, genau wie eine Webseite.

Ein Webdienst unterscheidet sich von einer Webseite nur in der Art und Weise, wie er Informationen übermittelt.

Ein typischer Webdienst stellt einer Webseite nur Daten zur Verfügung.

Bei AppML ist HTML die Benutzeroberfläche, ein Web Service stellt die Daten bereit.

Ursprüngliche Webdienste wurden entwickelt, um XML-Standards wie SOAP, WSDL und UDDI zu verwenden.

Moderne Webdienste wie AppML sind viel einfacher zu verwenden.

  • Einfacher zu verstehen - Kann von Menschen gelesen werden
  • Leicht – kein unnötiger Code oder Markup
  • Einfach zu implementieren – keine Entwicklungstools erforderlich

Vorteile von Webdiensten

  • Webdienste sind kleine Codeeinheiten
  • Webdienste sind darauf ausgelegt, eine begrenzte Anzahl von Aufgaben zu bewältigen
  • Webdienste verwenden HTTP-basierte Kommunikationsprotokolle
  • Webservices sind betriebssystemunabhängig
  • Webservices sind unabhängig von Programmiersprachen
  • Webdienste können verschiedene Anwendungen, Systeme und Geräte verbinden
  • Web Services erleichtert die Verteilung von Informationen
  • Web Services begünstigt eine schnelle Anwendungsentwicklung

Beispiel: Ein kleines Programm, das andere Anwendungen mit den Börsenkursen versorgen soll.

Beispiel: Flugpläne und Ticketreservierungssysteme.

Da Webservices HTTP verwenden, sind sie sowohl von Betriebssystemen als auch von Programmiersprachen unabhängig.


Cloud Computing

Cloud Computing ist eine Erweiterung von SOA: Application-as-a-Service, Storage-as-a-Service, Data-as-a-Service.

Für die meisten Menschen geht es beim Cloud Computing darum, Daten im Internet zu speichern:

  • E-Mails und Kalender
  • Dokumente und Tabellen
  • Bücher, Notizen und Aufgabenlisten
  • Musik, Bilder und Filme
  • Datenbanken und Anwendungen

Die Gründe liegen auf der Hand:

  • Von überall Zugriff auf Daten haben
  • Um meine Daten mit anderen zu teilen
  • Um Hardwareänderungen oder Abstürze zu überstehen

Mit AppML ist es sehr einfach, sowohl Datenbanken als auch Anwendungen in die Cloud zu stellen.