10 mars 2022

Le monde a-t-il vraiment besoin d'un autre framework frontend ?

Le monde a-t-il vraiment besoin d'un autre framework frontend ? Je pense que c'est le cas, car différents cadres ont différentes hypothèses sous-jacentes qui conduisent à une optimisation pour différentes choses. Jetons un coup d'œil aux principes qui ont amenés à construire Hilla en tant que framework qui intègre des backends Spring Boot avec des frontends TypeScript réactifs.



‘Autour du code’ Bonjour, dans cet article, nous allons partir à la découverte de hilla.

Nous utilisons souvent les Frameworks web et librairie JavaScript comme Vuejs, React ou encore Angular pour créer nos applications web d’entreprise, le constat est que l’approche typique du développement d’application web n’est pas parfaitement alignée sur les besoins des applications métier typiques, pas de panique un nouveau cadre est mis en place pour ces types d’application.

Hilla qu'est-ce que c'est ? 

Hilla est un framework web moderne pour Java.

Hilla intègre un back-end Java Spring Boot avec un front-end TypeScript réactif. Il vous aide à créer des applications plus rapidement grâce à une communication serveur sécurisée, des composants d'interface utilisateur inclus et des outils intégrés.





Hilla vous aide à accéder facilement à l'arrière-plan grâce à des points d'accès sécurisés.

  • Hilla génère automatiquement des définitions TypeScript pour tous les types de paramètres et de
     retours.
  • Appelez le serveur via des méthodes TypeScript asynchrones au lieu d'URL.
  • Vérification de type au moment de la construction.
  • Les points de terminaison sont sécurisés par défaut.




Déclaratif et basé sur les composants.

Hilla utilise un modèle de programmation réactive simple, mais puissant, basé sur Lit
Il permet de :
  • Définir les composants et les vues de manière déclarative en HTML.
  • Mettre à jour le modèle efficacement chaque fois que l'état de l'application change.
  • De lier les propriétés et les valeurs à l'aide de la syntaxe JavaScript standard.
  • Créer et valider des formulaires à l’aide de Binder
  • Naviguer entre les vues et saisissez les paramètres avec Router.



Il faut savoir que les composants Vaadin inclus comprennent tous les éléments de base dont on a besoin pour créer des applications complexes.

Le backend avec Spring Boot 

Hilla utilise Spring Boot sur le serveur. Cela signifie que vous pouvez démarrer rapidement et avoir accès à toute la puissance de l'écosystème Spring :
  • Accédez simplement à votre base de données avec Spring Data.
  • Sécurisez votre application avec Spring Security.
  • Déployez votre application sous forme de JAR autonome.


Hilla offre une chaîne d'outils sans configuration pour créer des applications Web qui incluent à la fois votre interface utilisateur frontend et votre pile Java dans un seul projet. L'extraction de données à partir du back-end Java est simple, grâce au code TypeScript généré automatiquement.

Hilla combine Java côté serveur et TypeScript côté client pour une productivité accrue.

Allez plus loin avec Hilla 
Pour quoi avoir construit Hilla

"backends for frontends" #pattern.




13 févr. 2022

Création d'un conteneur Docker pour une application Spring Boot

Nous allons créer un conteneur Docker pour une simple application hello World ! Spring boot en utilisant Maven


Prérequis :

Une fois que vous avez installé tous les logiciels requis, il est temps de télécharger le code source à partir de git.

Téléchargez et décompressez le code source ou clonez le code en utilisant Git  :


Comprendre le POM.xml qui se trouve dans le repo git cloné.


Ici, nous avons l'artefact requis pour construire le Docker avec le groupId et la version. Nous mentionnons ici le préfixe de l'image Docker que nous allons construire à l'étape suivante. Cette configuration spécifie une chose obligatoire, à savoir que l'image sera créée sous le nom de mydocker/docker-spring-boot



Cette partie de POM.xml contient les plugins nécessaires à la construction du projet.

Le plugin Maven de Spring Boot collecte tous les jars sur le classpath et construit un seul jar exécutable "docker-spring-boot-1.0.jar", ce qui rend plus pratique l'exécution et le transport de votre service. Il recherche la méthode public static void main() pour la signaler comme classe exécutable. Il fournit également un résolveur de dépendances intégré qui définit le numéro de version pour correspondre aux dépendances de Spring Boot.

La configuration spécifie également les éléments suivants :

  • une tâche pour décompresser le fichier jar
  • le nom de l'image (ou balise) est défini à partir des propriétés du fichier jar, qui se retrouvera ici sous la forme suivante mydocker/docker-spring-boot
  • l'emplacement du fichier Jarfile décompressé, que nous aurions pu coder en dur dans le fichier Dockerfile 
  • un argument de construction pour docker pointant vers le fichier jar (le fichier jar peut être renommé dans le pom.xml avec la balise <finalName>hello</finalName>)


Configuration de l'application Spring Boot 

Comprendre la classe MainApplication.java qui se trouve dans le dossier src du répertoire cloné.



La classe est marquée comme @SpringBootApplication et comme @RestController, ce qui signifie qu'elle est prête à être utilisée par Spring MVC pour gérer les requêtes web. @RequestMapping fait correspondre / à la méthode hello() qui envoie simplement une réponse " Hello Docker World ". La méthode main() utilise la méthode SpringApplication.run() de Spring Boot pour lancer une application.

Exécutez l'application sans le conteneur Docker (c'est-à-dire dans l'OS hôte).

Avec Maven, exécutez le cmd ci-dessous pour construire le jar et lancer l'application sur le port 8080
./mvnw package && java -jar target/hello.jar
et allez sur localhost:8080 pour voir votre message "Hello Docker World".

Si vous pouvez voir le message "Hello Docker World", l'application Spring Boot est en place et fonctionne dans Tomcat. Mais elle n'est pas encore conteneurisée.


Conteneurisons-le

Comprendre le Dockerfile simplifié qui est là dans le repo cloné.




Ce Dockerfile possède un paramètre JAR_FILE pointant vers un répertoire dans lequel nous avons les jar de l'application. Avant de construire l'image Docker, vérifions que Docker est en cours d'exécution en exécutant la commande ci-dessous

docker ps
Si vous obtenez un message d'erreur, quelque chose ne va pas. Revoyez la configuration de Docker


Construction de l'image Docker avec le plugin maven

./mvnw spring-boot:build-image

Exécuter l'image Docker

$ docker run -p 8081:8080 -t docker-spring-boot:1.0
L'application est alors disponible sur http://localhost:8081 (visitez-la et elle dit "Hello Docker World"). Ici, 8081 est le port du Docker et 8080 est le port de Tomcat. Cela signifie que l'application fonctionnant sur le port 8080 de Tomcat sera disponible sur le port 8081 de Docker.

Lorsque le Docker est en cours d'exécution, vous pouvez voir dans la liste des conteneurs, par ex :
$ docker ps


Pour arrêter le Docker, vous pouvez faire docker stop avec l'id du conteneur. 

$  docker stop 9606259fb494


C'est fait ! Nous avons créé un conteneur Docker pour l'application Spring Boot.


Le monde a-t-il vraiment besoin d'un autre framework frontend ?

Le monde a-t-il vraiment besoin d'un autre framework frontend ? Je pense que c'est le cas, car différents cadres ont différentes hyp...