mercredi 24 octobre 2007

mardi 23 octobre 2007

Archetype sur The INQ !

Un chouette article vient d'être publié sur la sortie d'Archetype sur The Inquirer France !

Tout se trouve ici !

vendredi 19 octobre 2007

Archetype est sorti !

Après des mois de développements, nous sommes fiers de présenter notre première release publique de Archetype JavaScript Framework.

Archetype est un framework JavaScript. Il ne s’agit pas d’un toolkit qui propose de simplifier le code, c’est un vrai framework ! Il est basé sur des librairies d'excellente facture pour lui servir de base : Prototype et Scriptaculous. Il vise à permettre de créer des applications réellement "web 2.0" en offrant une suite de services indispensables pour avoir des logiciels de bonne qualité géré principalement par JavaScript.

Il offre les services suivants:
  • Gestion intelligente des dépendances, et chargement de l'ensemble des fichiers du projet pour la page chargée : sur les projets chargés en JavaScript il est courant d'avoir des problèmes de chargement, aussi Archetype prend en charge de manière simple et efficace tous les chargements de fichiers.
  • Améliorations des systèmes objets du JavaScript : héritage, singleton, appel des méthodes parentes, fonctions importées, etc.
  • Un système de log configurable : JavaScript manque de possibilités de logguer proprement des informations afin de permettre un debogage aisé de l'application : Plusieurs loggers sont disponibles dans le framework, suivant les besoins, et gérés simplement par configuration.
  • Un système de template html (ou tout autre format basé sur du texte): il interprète (très rapidement) en JavaScript, et permet ainsi de gérer parfaitement un Modèle Vue-Contrôleur côté client.
  • Conteneur léger : un des concepts les plus forts d'Archetype. Ce système de conteneur (appelé Component) offre de nouvelles possibilités au développement JavaScript: description des dépendances et chargement automatiques de celles-ci, stabilité du "this" dans l'objet, services transversaux automatisés basé sur des conventions (et/ou des configurations), proxy pré/post méthode de l'objet, permettant par exemple d'émettre/écouter simplement les événements concernant l'objet.
  • Widgets réutilisables : basés sur les "Components", les "GraphicalComponents" permettent de rassembler en un concept simple, un ensemble de fichier css/html/javascript, en widgets réutilisables de page en page et de projet en projet.
  • Communication Evènementielle : Grâce à Archetype, il devient simple de communiquer par évènements avec tous les composants, qu'ils se trouvent dans la page elle même ou dans une frame/iframe contenue dans celle-ci!
Le projet Archetype a pour but d'offrir au développeur web tous les outils pour travailler en JavaScript comme avec les frameworks serveur, mais sans cacher ce JavaScript dans une couche serveur qui s'avère toujours trop simple pour pouvoir réaliser ce que le client désire.

Archetype offre donc un véritable environnement de travail au développeur, en utilisant les principes des meilleurs outils connus actuellement dans le domaine du développement web et favorise l'utilisation de pratiques reconnues dans un langage qui était alors dépourvu de toutes ces structures qui sont pourtant indispensables à des applications de qualité, faciles à faire évoluer et à maintenir.

Voici la version 0.1.0 qui présente d’ores et déjà le cœur fonctionnel de ce qui est peut être le premier framework JavaScript prévu pour gérer une application RIA et Web 2 de taille conséquente.

Essayez-le !

Nous appliquons déjà notre framework dans divers projet mais nous sommes avides de vos retours et vos commentaires!

Vous pouvez nous joindre et nous faire vos retours sur le Google Group.

mardi 16 octobre 2007

Awiki

Avec une version 0.1 imminente, le besoin d'avoir une démonstration d'Archetype sur un site public est important.
Toujours pour la même raison, Archetype a de plus en plus besoin de son propre site. Mais le site d'un Framework pour faire des sites a inévitablement une lourde charge car il doit être sa propre démonstration.

Nous en sommes arrivé à la conclusion suivante : et si, grâce à Archetype, nous faisions un wiki ! En utilisant notre propre moteur de wiki pour notre site, nous remplissons nos deux besoins en une fois !

Baptisé Awiki pour, vous l'aurez deviné, Archetype Wiki, ce "sous projet" veut répondre à beaucoup d'attentes que je vais tenter de lister :
  • Démo : comme indiqué en introduction, ce site doit être la démonstration qu'on peut faire facilement un site avec Archetype, et proprement !
  • Site officiel : nous le destinons à terme pour le site officiel du Framework.
  • POC middle : le projet doit pouvoir faire la démonstration non pas seulement de la partie Web mais aussi de l'intégration avec un middle Java à base de DWR / Spring / Hibernate
  • Intégration : le but n'est pas de réinventer la roue. Il faut à la fois démontrer que Archetype peut s'intégrer avec d'autres technologies et profiter de ces technologies pour proposer rapidement un outil puissant.
  • Wiki Web 2 : les moteurs de wiki sont légions, après un écrémage rapide des différentes offres, il en reste deux ou trois tout au plus. Dans ces deux ou trois, on ne peut pas dire qu'ils soient très Web 2. Quelques idées émergent tout de même (ex: TidlyWiki) sur la dynamisation du concept, awiki devra les intégrer et en proposer de nouvelles.
  • Wysiwyg : Cela découle du point précédent. Pourtant mediawiki qui représente un très fort pourcentage des wiki utilisé fonctionne toujours avec une syntaxe qui lui est propre. awiki sera Wysiwyg, nous optons (sauf revirement) pour l'intégration de TinyMCE pour cela.
  • Dernier point et non des moindres, si nous arrivons à une solution stable, il est tout à fait envisageable de le publier comme projet à part entière.
Cela fait énormément d'ambition pour ce que nous considérons comme un "sous projet" d'Archetype.
Pourtant il nous semble cohérent de penser qu'avec une architecture middle bien maîtrisée, une édition gérée par TinyMCE et Archetype en chef d'orchestre, nous puissions aboutir rapidement sur un système robuste et pratique.