TwinXeon by Renaudet
/Accueil/Tous les articles
Développement : un bureau virtuel en ligne (XHTML)
Un projet ambitieux

J'ai commencé un nouveau projet en parallèle avec mon simulateur de vol spatial. Il s'agit d'un bureau virtuel tout en XHTML pour me faire la main avec XHTML, CSS, JavaScript et HTML 5.

L'originalité de ce projet me direz-vous ?

Eh bien je crois qu'il s'agit du seul bureau virtuel en ligne qui reprend l'intégralité des concepts d'un environnement graphique fenêtré. Il est basé sur un WindowManager JavaScript évolué chargé de gérer les fenêtres et construit par dessus une API de base (style MFC). Le bureau proprement dit organise un certain nombre de services de base, le principal étant l'accès au FileSystem virtuel.

Le look and feel est repris d'environnements graphiques bien connus, avec un gros clin d'oeil à XP. Etant également un fan des WindowManager X des premiers temps, comme Motif ou CDE, je rajouterai peut-être la notion de bureau virtuel dans le bureau virtuel.

Une petite copie d'écran du bureau sous Firefox 11.0 (le rendu est quasi identique sous IE 9.0, Opera, Chrome ou Safari, bien que je ne puisse pas tester ces derniers comme je le voudrais) :


(cliquer sur la copie d'écran pour lancer le bureau, ou suivez ce lien)

Pour le moment, le gros du travail consiste à développer les APIs, et en particulier à finaliser le WindowManager, puis les APIs de base du fenêtrage, un peu selon le concept des MFC Windows.

J'ai déjà mis en place un système de chargement dynamique du menu principal. Ainsi, le bureau envoie une requête AJAX auprès du serveur pour récupérer les items de menu. Chaque item arrive accompagné du nom de la fonction JavaScript à déclencher en cas d'action utilisateur, et éventuellement de l'URL relative de la bibliothèque JavaScript à charger.

Autre APIs finalisées, la création de barres de menus et de fenêtres popup.



Une fois ces APIs de base stabilisées, il me faudra développer les services standards du bureau : horloge (ça, c'est déjà fait), Notepad (c'est bien avancé, grâce à mon travail sur l'éditeur RichText pour TwinXeon), Agenda, et peut-être même un éditeur pour étendre dynamiquement le bureau. Suivront les services de personnalisation (choix des couleurs, image de fond etc.) et les applications métier.

Mais avant tout, il me faudra développer un FileManager correct. Je reprendrais peut-être le principe de navigation de la page Plan du Site de TwinXeon... Le travail a commencé, et on peut déjà naviguer dans le système de fichier virtuel. A noter que les données affichées dans le FileManager sont déjà des données réelles (Utilisez Firebug et vous verrez !).

J'ai ouvert un Forum pour collecter les remarques éventuelles sur ce projet. Vous êtes encouragés vivement à l'utiliser.

Téléchargements

Les ressources associées à ce projet seront consignées sur cette nouvelle section dynamique de téléchargement sur TwinXeon.

Changelog du projet

[Edit du 29/03/2012] le FileManager est déjà bien avancé, et le Notepad est fonctionnel, ainsi que le DrawingPad (utilitaire de dessin vectoriel basique)





[Edit du 01/04/2012] Le FileManager, le Notepad et le DrawingPad sont complètement fonctionnels. J'ai entamé le développement d'un panneau de configuration pour modifier l'apparence du bureau : couleur de fond, couleur des bordures de fenêtres... Nouveaux composants MFC : FileDialog et ColorDialog.

    

J'ai également implémenté la notion de session sécurisée (par clavier à code) avec espace protégé sur le FileSystem virtuel, et accès simplifié au FileSystem publique (/public)



[Edit du 02/04/2012] Modification du LockScreen pour inclure un accès simplifié au bureau publique, et modification sur le serveur pour invalider la session à la sortie de l'application. Il me reste à résoudre le problème de la durée de vie de la session. Je vais sans doute utiliser un ping récurrent. Ce n'est pas très propre, mais c'est très facile à implémenter.



Autre modification : ajout du Panneau de Configuration où seront regroupées toutes les options de customisation du bureau. Pour le moment, il s'agit de la couleur de fond et des couleurs de bordure des fenêtres (active / inactives), mais d'autres options suivront. Les modifications peuvent être sauvegardées sur le serveur.

[Edit du 04/04/2012]Légère modification duLockScreen pour permettre le retour surTwinXeon. Ajout du copyright. Retour par défaut sur leLockScreen. Modification complète de la personnalisation du bureau par fichier.vdinitrc à la mode X.
Ajout d'un mécanisme de chargement de script depuis leFileSystem virtuel. Ceci permet de développer ses propres applications fenêtrées. Cette fonctionnalité sera réservée aux membres enregistrés, c'est à dire ceux qui en auront fait demande écrite à l'administrateur de TwinXeon viace formulaire.
J'ai également commencé un embryon d'éditeur de script. Pour le moment, c'est très basique et il y a beaucoup de bugs, mais il est fonctionnel et permet également d'éditer le fichier de configuration privé.


[Edit du 19/04/2012] Implémentation d'un client de Chat compatible avec le service de Chat sur TwinXeon. Le client se connecte et se déconnecte automatiquement. Il utilise le nom de login comme identifiant, ce qui veut dire que l'accès publique au service de Chat via ce client est assez restreint. J'ai également démarré un outil de création de pages HTML à partir des fichiers RichText créé dans l'arborescence privée de l'utilisateur. Le service EST d'accès aux ressources permet déjà de donner accès à ces ressources depuis un browser.



[Edit du 05/05/2012] Refonte complète de l'éditeur RichText. Il n'y a plus désormais qu'un seul composant avec des plugins spécifiques sur l'ensemble du site TwinXeon.



Gros travail sur les APIs REST pour accéder aux documents du FileSystem virtuel au travers d'HTTP. Aussi, création d'un client JavaScript de visualisation des fichiers vectoriels issus du DrawingPad. Enfin, ajout de nombreuses fonctions au DrawingPad.



[Edit du 13/05/2012] Mise en ligne de la version 2.0 du DrawingPad qui devient un véritable outil d'édition de dessin vectoriel. J'implémenterai certainement dans le futur une fonction d'export SVG. En attendant, le format interne reste propriétaire (basé sur HPGL).



Autre ajout : la possibilité de publier directement ses dessins à l'aide d'une page générique, en utilisant la racine d'URL : http://twinxeon.no-ip.org/moebius/virtualDesktop/displayDrawing/



Ajoutez votre commentaire :
  Votre pseudo :
  Votre adresse mail (obligatoire):
  Votre commentaire :
 
Site optimisé pour un affichage en 800x600 sous Firefox 8.x - ©Copyright 2011-2012 by Nicolas Renaudet