mardi 21 juin 2011

Feuille de route 2011 - Swift

On ne s'en rend pas forcément compte en ne lisant que les numéros de version d'Alfresco, mais chaque version possède un nom de baptême donné par les développeurs. Il y a par exemple eu "Slingshot" pour la version 3.0, un peu plus tard "Cheetah" avec la version 3.4 et voici que se prépare depuis quelques mois la future version d'Alfresco : "Swift".

Swift ne porte pas encore officiellement un numéro de version, mais on commence par contre à avoir une très bonne vision des nouveautés qu'elle comportera. Et elles sont nombreuses !

Voici donc un résumé des plus importantes.

Coté interface tout d'abord, Share va recevoir un très grand nombre d'améliorations, pour apporter de nouvelles capacités bien sûr, mais aussi pour faciliter la prise en main de l'existant. Il est difficile de tout lister en quelques lignes, mais on peut citer, entre autres :
  • Un dépôt de documents par glisser-déposer, basé sur HTML5.
  • De nouvelles dashlets de bienvenue pour guider les nouveaux utilisateurs.
  • Une page de détails des documents revue, pour améliorer la lisibilité.
  • Le support des formats vidéos.
  • Les fonctions "j'aime" ou encore de nouvelles capacités de tri.
  • La réorganisation des composants (Wiki, blog, ...) par glisser-déposer.
  • Des thèmes par sites.
  • Des notifications en mode "push" par e-mail.
  • ... et des dizaines d'autres améliorations pour gagner en souplesse et en puissance !
Certaines de ces nouveautés sont visibles sur ce site, mis à disposition par un partenaire Alfresco.

Mais une nouvelle version d'Alfresco, ce n'est jamais uniquement des nouveautés coté interface utilisateur, c'est aussi de nombreuses améliorations à un niveau beaucoup plus bas. Par exemple :
  • L'intégration de SOLR, sur laquelle on reviendra certainement sur ce blog, et qui va amener les capacités d'indexation à un niveau beaucoup plus haut avec en particulier la notion de serveur d'indexation séparé.
  • L'intégration du moteur de workflows Activiti, qui lui va décupler les capacités de gestion des processus. Nous y reviendrons aussi.
  • De gros travaux sur la gestion de certains protocoles en mode cluster. Sont concernés CIFS, FTP, CMIS, WebDAV, ou encore l'implémentation de MSSP.

Le lien entre les fonctions de bas niveau et l'interface utilisateur, c'est la notion de console d'administration. Avec Swift, la console d'administration qui se contentait jusqu'à présent de permettre la gestion des utilisateurs et des groupes va pouvoir aussi gérer la majorité des services Alfresco. Configuration des serveurs de fichiers, de l'intégration avec la messagerie (IMAP, SMTP), des flux d'activité, de l'authentification, etc ...

Autre amélioration dans la gestion, les modèles de données (définition des types, aspects et propriétés) seront aussi manipulables dans l'interface !

Coté web, l'apparition d'un framework de publication va permettre de connecter Alfresco à de nombreux canaux de publication afin de pousser le contenu vers de nombreuses cibles en parallèle, de Twitter à YouTube en passant par de nombreux autres. Tout cela en conservant un contrôle sur le moment de la publication mais aussi avec une traçabilité complète. Encore un sujet à couvrir ultérieurement sur ce blog.

Enfin les développeurs ne seront pas oubliés. En plus de toutes les API liées à ces fonctionnalités, de nombreuses améliorations vont venir simplifier les extensions de Share, le processus de mise à jour ou encore enrichir le support de CMIS.

Il y a encore beaucoup à dire sur Swift, et ce sera l'objet de plusieurs posts ici même, dans les prochains mois. Restez en ligne !

En attendant, vous pouvez aussi lire ce document qui reprend ces informations (et plus encore).

mardi 14 juin 2011

Dashlet spécifique HelloWorld 3 (3/3)

Introduction :

Ce post fait suite à celui sur le dashlet HelloWorld 2.
Le dashlet HelloWorld 3 introduit le concept de fichier de configuration d'un webscript de présentation.


Structure du projet :

Le projet, dans votre IDE, a la structure suivante :




















La différence avec le projet HelloWorld 2 réside dans la présence d’un fichier de configuration du webscript : hello-world.get.config.xml

Si vous n’êtes pas familier avec les fichiers de configuration de webscript :

http://wiki.alfresco.com/wiki/Web_Scripts#Web_Script_Configuration


Comprendre le fichier de configuration :


Le fichier XML de configuration du webscript peut porter des variables qui sont accessibles, entre autres, par le fichier contrôleur javascript.

hello-world.get.config.xml :

<hello-world>

<greeting>hello</greeting>

</hello-world>

La variable “greeting” ainsi définie peut être appelée par le fichier contrôleur javascript, par le biais d’un objet javascript “XML”, de la manière suivante :

hello-world.get.js

function main()

{

var s = new XML(config.script);

var greeting = s.greeting;

// Set the model object

if (greeting == "hello")

{

model.greeting = "hello";

}

else

{

model.greeting = "goodbye";

}

}

main();

Il faut noter que les variables définies dans le fichier de configuration du webscript sont également accessibles depuis le fichier de “vue “ (template freemarker).
Ici, nous avons fait le choix d’appeler la variable “greeting” dans le fichier javascript, en utilisant une méthode E4X (https://developer.mozilla.org/en/e4x )

L’avantage principal de définir des variables dans le fichier de configuration est la réutilisabilité (??! tout commentaire pour me fournir le terme français correct sera le bienvenu) du webscript. En effet, quiconque souhaiterait implémenter ce webscript, mais en personnalisant son comportement pourrait ne modifier que cet unique fichier de configuration, et non pas tout un ensemble de fichiers divers (javascript contrôleur, templates, etc …)


Liens :


Share Extras :

http://code.google.com/p/share-extras/

Le blog de Will Abson :

http://blogs.alfresco.com/wp/wabson/

A propos des webscripts :

http://wiki.alfresco.com/wiki/Web_Scripts

http://ecmarchitect.com/images/articles/alfresco-webscripts/web-script-article.pdf

http://www.springsurf.org/sites/1.0.0.M3/spring-webscripts/spring-webscripts-documentation/reference/index.html

A propos de MDC E4X :

https://developer.mozilla.org/en/e4x

Alfresco Share et sa personnalisation :

http://wiki.alfresco.com/wiki/Alfresco_Share

un excellent exemple avec DeckShare :

http://blogs.alfresco.com/wp/solutions/deckshare/


Alfresco community :

http://www.alfresco.org