Architecture AppML


Architecture Web moderne

AppML combine les techniques et les idées les plus récentes du développement Web moderne.

AppML se concentre sur la vitesse, la simplicité et le faible coût :

  • À bas prix
  • Développement Web rapide et agile
  • Optimisé pour le Cloud Computing
  • Haut débit et faible consommation de bande passante
  • Architecture MVC (Modèle Viev Controller)
  • Séparation complète du contenu de la présentation
  • Hautement évolutif et testable
  • Configuration et reconfiguration faciles
  • Reconfiguration pendant l'exécution des applications
  • Prise en charge intelligente des comptes d'utilisateurs et des rôles

Architecture MVC

 

AppML utilise une architecture MVC

MVC signifie Modèle, Vue, Contrôleur

Le modèle décrit votre application.

La vue affiche vos données.

Le contrôleur contrôle votre application (bien sûr).

 

Wikipédia : modèle, vue, contrôleur

        MVC

Le MODÈLE - Juste JSON

Le modèle décrit l'application.

Le modèle est réutilisable sur différentes plateformes matérielles et logicielles (Serveur, PC, iPhone, Tablettes, etc.).

Le modèle n'est pas concerné par la présentation ou l'interface utilisateur (UI).

Le modèle est écrit en JSON :

Modèle

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

La VUE - Juste HTML

La vue est l'interface utilisateur (interface utilisateur) pour l'affichage (et la saisie) des données.

La vue est écrite en HTML et CSS :

Affichage HTML

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

Le CONTRÔLEUR - Scripts Client et/ou Serveur

Un script client dans la page Web peut contrôler l'application :

  • AppML peut afficher les données telles que définies dans le modèle
  • AppML peut afficher les données telles que définies par les attributs HTML.
  • Les applications AppML peuvent s'exécuter indépendamment du HTML (masqué)
  • (Facultatif) AppML peut demander des données de modèle à un serveur Web (serveur SQL)
  • (Facultatif) Les utilisateurs d'AppML peuvent modifier les données
  • (Facultatif) AppML peut envoyer des données à un serveur Web

Un script serveur peut contrôler l'application en :

  • Réception des requêtes du client (navigateur)
  • Restitution des données au client
  • Réception des données du client
  • Mise à jour des données sur le serveur
  • Prendre soin de l'authentification et de la sécurité

L'art de la programmation

Maintenir la taille et la complexité des applications à un niveau bas est le principal problème de toute programmation.

Maîtriser la complexité des applications informatiques, c'est le véritable art de la programmation.


Programmation déclarative

Le développement de logiciels dépasse souvent les délais et les budgets. Les logiciels finis sont souvent remplis d'erreurs de codage. En effet, le code informatique est difficile à développer, à tester et à maintenir.

Le codage est terminé . Vous devriez décrire plus ce qu'il faut faire, moins comment le faire.

Avec AppML, vous déclarez votre application dans le modèle et dans la vue .

Avec AppML , il y a moins (parfois rien) à coder .

Wikipédia : programmation déclarative


Développement d'applications rapide et agile

Contrôler la complexité des applications informatiques est le véritable art de la programmation.

Garder sous contrôle la taille et la complexité des applications est le principal problème de toute programmation.

RAD est une méthode de développement logiciel qui utilise une planification minimale au profit d'un prototypage rapide.

AppML offre un prototypage ultra-rapide, jusqu'à 100 fois plus rapide que les méthodes de développement traditionnelles.

Les prototypes d'application peuvent être exécutés directement à partir du modèle d'application, sans aucun codage.

Wikipédia : développement rapide d'applications

Le développement logiciel agile est une méthode basée sur le développement étape par étape, où les solutions sont créées par les utilisateurs et les développeurs en collaboration.

Avec AppML, les applications peuvent être écrites étape par étape, par petits incréments, des prototypes aux applications complètes.

Wikipédia : développement logiciel agile


Coder d'abord

Une application web peut être développée de deux manières différentes :

1. Code First : utilisation d'un code pré-programmé et pré-testé, en ajoutant uniquement de nouvelles descriptions d'application.

2. Contrat d'abord : coder l'application à partir de zéro en utilisant la description complète des exigences de l'application.

AppML utilise le concept le plus rationnel : Code First .


Architecture orientée services (SOA)

L'architecture orientée services (SOA) est une architecture permettant de créer des applications Web.

La SOA offre de faibles coûts de développement et une grande flexibilité.

Avec SOA , les applications peuvent être créées à partir de zéro, ou à partir d'infrastructures informatiques existantes, et être utilisées, par différentes applications, sur différents matériels et logiciels.

La SOA est parfaitement adaptée au MVC et à la programmation déclarative , où les données peuvent être facilement consommées sans se soucier de savoir comment.


Services Web

Un service Web est une interface vers des données, identifiée par une URL, tout comme une page Web.

Un service Web diffère d'une page Web uniquement par la manière dont il communique des informations.

Un service Web typique fournit uniquement des données à une page Web.

Avec AppML, HTML est l'interface utilisateur, un service Web fournit les données.

Les services Web d'origine ont été conçus pour utiliser des normes XML telles que SOAP, WSDL et UDDI.

Les services Web modernes comme AppML sont beaucoup plus faciles à utiliser.

  • Plus simple à comprendre - Peut être lu par les humains
  • Léger - pas de code ou de balisage inutile
  • Facile à mettre en œuvre - aucun outil de développement requis

Avantages des services Web

  • Les services Web sont de petites unités de code
  • Les services Web sont conçus pour gérer un ensemble limité de tâches
  • Les services Web utilisent des protocoles de communication basés sur HTTP
  • Les services Web sont indépendants des systèmes d'exploitation
  • Les services Web sont indépendants des langages de programmation
  • Les services Web peuvent connecter différentes applications, systèmes et appareils
  • Les services Web facilitent la diffusion de l'information
  • Les services Web favorisent le développement rapide d'applications

Exemple : Un petit programme destiné à fournir à d'autres applications les cours de bourse.

Exemple : Horaires des vols et systèmes de réservation de billets.

Étant donné que les services Web utilisent HTTP, ils sont indépendants des systèmes d'exploitation et des langages de programmation.


Cloud computing

Le Cloud Computing est une extension de SOA : Application-as-a-service, Storage-as-a-service, Data-as-a-service.

Pour la plupart des gens, le Cloud Computing consiste à stocker des données sur le Web :

  • E-mails et calendriers
  • Documents et feuilles de calcul
  • Livres, notes et listes de tâches
  • Musique, images et films
  • Bases de données et applications

Les raisons sont assez évidentes :

  • Pour avoir accès aux données de partout
  • Pour partager mes données avec d'autres
  • Pour survivre aux modifications matérielles ou aux pannes

Avec AppML, il est très facile de mettre à la fois des bases de données et des applications dans le cloud.