Cours-Gratuit
  • Accueil
  • Blog
  • Cours informatique
home icon Cours gratuits » Cours informatique » Cours programmation » Cours JAVA » Cours Framework JAVA

Cours développement d'application web avec le Framework Apache Pivot [Eng]

Cours développement d'application web avec le Framework Apache Pivot [Eng]
Participez au vote ☆☆☆☆☆★★★★★

Cours développement d'application web avec le Framework Apache Pivot

Présentation d'Apache Pivot

Bios d'orateur

  • Greg Brown
  • Architecte logiciel senior
  • 15 ans d’expérience en développement d’applications client et serveur dans les services et la R & D
  • Fondateur Apache Pivot
  • Todd Volkert
  • Architecte logiciel senior
  • 13 ans d'expérience dans le développement d'applications Web et de clients riches
  • Cofondateur d'Apache Pivot

Qu'est-ce que Apache Pivot?

  • Plateforme open source pour la création d'applications Internet riches en Java (ou tout langage de script JVM: Groovy, JavaScript, Scala, etc.)
  • Similaire à Adobe Flex ou Microsoft Silverlight, mais basé sur la JVM plutôt que sur Flash ou Silverlight.
  • Les applications pivot peuvent être exécutées en tant qu'applet ou en tant qu'application de bureau autonome (installée ou lancée via Web Start).
  • Comme d’autres plates-formes RIA, inclut des fonctionnalités qui facilitent la création d’applications graphiques modernes:
  • Langage de balisage d'interface utilisateur basé sur XML déclaratif ("WTKX")
  • Thèmes (aka "skins") / style
  • liaison de données
  • Effets et transitions (animations)
  • Intégration de services Web (JSON / REST)

Pourquoi RIA?

  • Les exigences fonctionnelles de nombreuses applications Web ont commencé à évoluer au-delà des capacités du navigateur.
  • Difficile de créer une expérience utilisateur en HTML réellement comparable à celle d'une application de bureau
  • Les plates-formes RIA établissent un lien entre les expériences Web et de bureau
  • Permettre aux développeurs de créer des applications qui ressemblent davantage à des applications de bureau natives, mais qui peuvent être déployées via le Web. • Intègrent souvent des effets visuels destinés à améliorer l'expérience utilisateur globale (animations et autres comportements dynamiques).

Pourquoi Pivot?

  1. Fournir une option viable aux développeurs qui souhaitent créer des applications Internet riches en Java
  • Flex: ActionScript
  • Silverlight: C # / JavaScript
  • JavaFX: script JavaFX
  1. Fournir une alternative réellement ouverte aux développeurs RIA
  • Flex, Silverlight et JavaFX sont toutes des plateformes propriétaires.
  • Pivot est complètement open source et entièrement dirigé par la communauté de développement de logiciels.

Vue d'ensemble de la plateforme

  • Les classes de pivot sont regroupées dans les bibliothèques suivantes:
  • - classes d'utilitaires communes, non liées à l'interface utilisateur (collections, traitement des événements, localisation, threading, E / S, etc.)
  • - API client / serveur REST
  • - WTK / Terra L & F
  • - Composants de création de graphiques (nécessite le fournisseur de graphiques; actuellement basé sur JFreeChart)

Hiérarchie de classes WTK

Démo «évier de cuisine»

Application de démonstration «évier de cuisine»

"Bonjour WTKX!"

Balançoire

  • Swing peut également être utilisé pour créer des AIR.
  • Pivot et Swing utilisent Java2D sous le capot
  • Pivot offre de nombreux avantages qui en font une alternative plus convaincante et moderne.
  • Avantages du pivot: • Fournit un langage de balisage XML pour simplifier la construction de l'interface utilisateur
  • Prise en charge intégrée des services de données basés sur JSON et REST
  • Prise en charge intégrée de la liaison de données
  • Prise en charge au niveau de la plate-forme pour les effets visuels et les transitions. • Tirant parti des nouvelles fonctionnalités du langage Java:

génériques, énumérations, boucles, variables et annotations

JavaFX

  • Pivot permet aux développeurs de créer des applications en Java, par opposition au langage de script JavaFX. • Accent légèrement différent: «Application» par rapport à

“Rich” (livraison média) dans “RIA”

  • Pas mutuellement exclusif!

GWT

  • GWT permet également aux développeurs d’utiliser Java pour écrire des applications Web.
  • L’environnement d’exécution d’une application GWT est le navigateur et non une machine virtuelle Java:
  • Le code s’exécute comme interprété en JavaScript, pas en bytecode
  • Ne prend pas en charge l’API Java complète (pas d’E / S, réseau, thread, réflexion, XML, etc.) - essentiellement, seul le langage Java
  • Présentation effectuée via une manipulation CSS et DOM plutôt que par une API de dessin 2D

Application didactique «Stock Tracker»

  • Exemple d'application simple mais pratique. • Souligne les fonctionnalités clés de la plateforme et les meilleures pratiques de développement.

Stock Tracker Caractéristiques principales

  • Balisage de l'interface utilisateur à l'aide de WTKX
  • Gestion des événements
  • requêtes Web
  • liaison de données
  • localisation

WTKX

  • Interface utilisateur pivot souvent définie dans WTKX
  • La structure hiérarchique de XML est parallèle à la hiérarchie des composants, ce qui facilite la visualisation du résultat obtenu.
  • Les développeurs connaissent la métaphore des balises.
  • Peut toujours être défini dans le code - WTKX n’est qu’un «raccourci»
  • Non compilé - représentation sérialisée du graphe d'objet
  • Généralement chargé au moment de l'exécution à partir des fichiers JAR de l'application
  • Peut charger dynamiquement (à partir du serveur, par exemple)
  • Amorce rapide WTKX:
  • Éléments
  • Uppercase = instance de classe
  • Minuscule = propriété
  • Attributs = propriétés
  • Namespaces = packages Java
  • préfixe «wtkx» (identifiants, inclus, etc.)
  • Code de script (logique)
  • opérateurs de résolution:
  • Utilisé dans les valeurs d'attribut WTKX
  • '%' = résolution de la ressource (localisation)
  • «@» = résolution de l’emplacement (URL relative)
  • '$' = résolution variable
  • Liaison WTKX: • Mappe les objets définis dans WTKX avec des variables membres Java («injection de dépendance»).
  • wtkx: id mappe à l'annotation @WTKX
  • L’implémentation de l’interface Bindable garantit que les liaisons sont traitées
  • L'argument Resources permet à l'instance liée de conserver une référence au groupe de ressources utilisé pour traiter le fichier WTKX.

 Gestion des événements

  • WTKX = structure, code = comportement
  • Généralement exécuté en réponse à un «événement» (bouton enfoncé, sélection modifiée, etc.)
  • Les écouteurs d’événements sont souvent connectés à Bindable # initialize ()
  • Peut également être enregistré dans un script en ligne, similaire au HTML
  • Actions: • Extension de la classe abstraite .Action
  • Définit la méthode abstraite perform ()
  • Utilisé pour attacher des comportements d'application à plusieurs éléments de l'interface utilisateur (par exemple, un bouton de barre d'outils, un élément de menu, etc.)
  • peut être activé / désactivé; les composants attachés reflètent l'état

Requêtes Web

  • Moyens de communication natifs du serveur Pivot • Partie de la bibliothèque de classes “Web”
  • Similaire à XMLHTTPRequest dans un navigateur Web
  • Faciliter la communication et la mise en œuvre des services REST
  • Utilisez JSON par défaut, mais vous pouvez utiliser n’importe quel format de données (XML, CSV, sérialisation Java, etc.).
  • Les données de devis renvoyées par la requête HTTP GET à • Les arguments de chaîne de requête spécifient les symboles et les champs à récupérer, renvoie un fichier CSV:
  • Stock Tracker utilise une instance de .GetQuery pour récupérer les données
  • POST, PUT et DELETE également pris en charge
  • Utilise une instance de org.apache.pivot.serialization.CSVSerializer pour désérialiser les données.
  • Renvoie les guillemets sous forme d'instance utilisée comme données de modèle pour la vue tabulaire.
  • Par défaut, CSVSerializer renvoie une liste de tableaux HashMaps.
  • Non typé - toutes les données sont des chaînes
  • Peut être configuré pour renvoyer des instances de tout type de Java Bean
  • Stock Tracker utilise une classe de haricots StockQuote pour convertir les chaînes en nombres (pour le tri)
  • Extension de .Query • Classe de base abstraite (générique) pour l'exécution d'opérations en arrière-plan
  • Définit une seule méthode execute () abstraite qui renvoie le résultat de l'opération. • GetQuery renvoie Object (dans ce cas, les données de résultat).
  • execute () est synchrone - bloque l'interface utilisateur
  • Task fournit une surcharge prenant une instance de .concurrent. TaskListener
  • L'appelant est averti de manière asynchrone par rappel lorsque la tâche a réussi ou échoué.
  • L'interface utilisateur reste sensible

Liaison de données

  • Mappe les valeurs entre un ensemble d’éléments de l’interface utilisateur et une structure de données, appelée «contexte de liaison».
  • Élimine le code habituel fastidieux pour le remplissage manuel des données de terrain
  • Utilise un modèle de chargement / stockage:
  • load () renseigne l'interface utilisateur avec les valeurs du contexte • store () renseigne le contexte avec les valeurs de l'interface utilisateur • Mappe bien vers les applications basées sur REST:
  • GET - charge ()
  • POST / PUT - store ()
  • Le contexte de liaison est soit une instance de org.apache.pivot.collections.Dictionary, soit un bean Java pouvant être encapsulé dans org.apache.beans.BeanAdapter (qui implémente Dictionary).
  • Facile à lier aux données JSON renvoyées par une requête Web

- Les objets JSON sont renvoyés en tant qu'instances de HashMap, qui implémente Dictionary

  • Stock Tracker utilise la liaison pour remplir le formulaire de détail de devis:
  • la propriété «textKey» associe un texte d'étiquette à une clé de liaison
  • Le contexte de liaison est une instance du bean StockQuote renvoyé par GetQuery / CSVSerializer. • Utilise le «mappage de liaison» pour transformer les données lors de la liaison:

 Localisation

  • Le texte traduisible et les autres ressources stockées dans des «ensembles de ressources». • Dans Pivot, les ensembles de ressources sont des fichiers JSON plutôt que des fichiers .properties.
  • Utilisez UTF-8 en mode natif, par rapport à ISO-8859.
  • Peut être hiérarchique, vs plat
  • Ensembles de ressources Stock Tracker (par défaut et «fr»):
  • Le formulaire de détail de devis utilise des étiquettes de formulaire localisées:

Decouvrir ces documents

  • Formation sur le développement web avec le Framework Apache Cocoon

    Formation sur le développement web avec le Framework Apache Cocoon

  • Documentation pour débuter avec le Framework Apache Wicket et Eclipse JEE

    Documentation pour débuter avec le Framework Apache Wicket et Eclipse JEE

  • Cours pour démarrer avec le Framework Apache Jena

    Cours pour démarrer avec le Framework Apache Jena

  • Framework Apache UIMA cours pour débutant

    Framework Apache UIMA cours pour débutant

  • Manuel d’utilisation d’Apache Mesos Framework [Eng]

    Manuel d’utilisation d’Apache Mesos Framework [Eng]

  • Guide de démarrage avec le Framework Apache HBase

    Guide de démarrage avec le Framework Apache HBase

  • Manuel avancé sur l’utilisation du Framework JAVA apache Accumulo

    Manuel avancé sur l’utilisation du Framework JAVA apache Accumulo

  • Développement d'applications Web avec le framework PHP Symfony 2

    Développement d'applications Web avec le framework PHP Symfony 2

Articles connexes

  • Tuto Python & Django : créer une page web
  • Application Python : gestion des comptes
  • Comment élaborer un plan de développement des compétences ?
  • Exercice d'application 2: Les immobilisations incorporelles
  • Comment devenir un consultant en développement durable et RSE?
  • Comment faire un planning pour le développement d'un logiciel ou d'une application informatique?
  • Java VS Python : Quel langage est le meilleur ?
  • Exercice Access 2003 : gestion des cours avec requêtes
  • Contactez-nous
  • A propos de nous
  • On recrute
  • Rechercher dans le site
  • Politique de confidentialité
  • Droit d'auteur/Copyright
  • Conditions générales d'utilisation
  • Plan du site
  • Accueil
  • Blog
  • Finance et compta.
  • Formations Pro.
  • Logiciels & Apps
  • Organisation
  • Cours informatique
  • Aide à la rédaction
  • Etudes et Metiers
  • Science et Tech
  • Titans de la Tech
id 11354 02