Megatokyo 3 en développement

Je me suis enfin lancé dans le développement de la version 3 de mon application universelle Megatokyo.

L’idée est de profiter du portage vers Windows 10 (la version 1 était en Silverlight pour Windows Phone 8, la 2 en UWP pour Windows 8.1) afin de revoir une bonne partie du fonctionnement général de l’application.

En effet, l’application actuelle a comme gros défaut d’avoir du mal à exécuter la tâche de fond qui va vérifier la présence de nouveautés. De plus, le scanne effectué pour extraire les données du site officiel nécessaires au bon fonctionnement est assez lourd et demande pas mal de temps au démarrage de l’application.

Passer à une application 3 tiers

L’idée est donc de déporter tous les traitements vers un serveur qui stockera toutes les informations nécessaires, préviendra les clients des mises à jour et transférera les données sur demande.

Plusieurs avantages à ça :

  • Le client devient plus léger et ne fait que charger des données déjà prêtes.
  • Plus de tâche de fond côté client qui peut échouer faute de ressource et consomme de la batterie.
  • Des notifications beaucoup plus ponctuelles et riches.
  • Plus de demande de traduction pour chaque client, mais une seule fois par langue.

L’idée est aussi d’en profiter pour apprendre à utiliser .NET Core 2.1, la version libre et multi-plateforme de du Framework .NET.

La partie serveur

Le serveur se compose de deux logiciels distincts. Le premier est un service qui va analyser les données et envoyer les notifications, le second un Web Service qui permet au client de venir chercher les données.

Les deux sont donc en .NET Core 2.1 et hebergé sur mon serveur Debian.

Le service de notification

Le service de notification est une simple application console exécutée en tant que daemon via Systemd.

Son principe est de récupérer le flux RSS du site officiel, de détecter les nouvelles entrées (planche ou diatribe) puis de lancer une récolte d’information pour complèter celles reçues via le flux RSS.

Une fois les données récupérées, elles sont stockées dans une base MySQL puis une notification est émise vers Azure Notification Hub qui s’occupe de la distribuée à tous les clients enregistrés.

Le Web Service

Le Web Service est un projet de type Web API en ASP.NET Core 2.1 qui permet d’interroger la base de données MySQL.

Il s’occupe aussi de la traduction des diatribes via Bing Translator (faute de mieux !) et enregistre celle-ci dans la base de données afin qu’elle puisse être réutilisée.

Ce Web Service est accessible via nginx en HTTPS et sait répondre aux demande de certification Let’s Encrypt.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.