Blog

Orchard Harvest 2012 : Theming

Dimanche 9 Septembre, 10:00 am - 10:45 am 

Speaker : Sébastien Ros (@sebastienros)

Cette session avait pour objectif de présenter les bases de la création de thèmes pour Orchard.

Successful web sites = Design + Content + Performance

Le premier principe a avoir à l’esprit est qu’un site efficace repose sur 3 ingrédients :

  • Un Design convivial et ergonomique.
  • Des Contenus pertinents et bien structurés.
  • Des Performances qui permettent de supporter la charge des visites.

La philosophie de développement dans Orchard est d’essayer de respecter le plus possible ces prérogatives, notamment lorsqu’il s’agit de la gestion des thèmes et de l’interface utilisateur.

Des captures d’écran de sites existants nous ont rappelé à quel point une interface graphique inadaptée (couleurs criardes, surcharge des contenus, gifs animés, …) peut desservir le contenu du site.

Plusieurs sites se sont ainsi déjà lancés dans la création de thèmes Orchard, parmi lesquels :

Thèmes Orchard

Parmi les avantages des thèmes développés pour Orchard, on peut voir qu’ils sont :

  • Tailored (adaptés sur mesure aux contenus)
  • Framework based (reposent sur une plateforme solide)
  • Platform oriented (utilisent de nombreux outils et aides pour personnaliser au mieux le design)

Pour rappel, un thème se compose des éléments suivants :

  • Un fichier Manifest qui décrit ses informations globales.
  • Des ressources graphiques (css, images, scripts)
  • Un fichier placement.info qui spécifie le positionnement des shapes.

Il peut également hériter d’un thème parent pour bénéficier des éléments de base, tout en permettant de le personnaliser.

Shape tracing

Concernant les aides à la personnalisation, le module de ‘Shape Tracing’ active une fenêtre en base des pages similaire à l’outil de développement Web de votre navigateur (ex : Firebug) et vous permet de sélectionner les éléments dans la hiérarchie des contenus, qu’il s’agisse de zones, de listes de contenus ou même de pièces ou de champs.

Il est très utile pour comprendre le fonctionnement des Shapes et la façon dont sont reliés les modèles de données et leur templates d’affichages.

Shapes

La définition d’une shape est la suivante :

A dynamic object which carries a hierarchy of data representing what will be rendered on the targeted medium

Une traduction simpliste pourrait être : Un objet dynamic (au sens C# du terme) qui transporte une hiérarchie de données représentant ce qui sera affiché sur le média cible.

Durant le reste de la présentation, des exemples de code ont ensuite été mis en oeuvre afin d’expliquer le fonctionnement des Shapes dans les Views et les différentes façons de les afficher et de tirer parti des nombreuses classes et méthodes d’aide à l’affichage des shapes.

Il y aurait beaucoup de choses à expliquer à propos des Shapes. ça fera peut-être l’objet d’un futur article.

Les choix que vous faîtes en choisissant un thème graphique pour votre site sont très importants pour sa réussite.
La création de thèmes dans un CMS doit être à la fois flexible et performante.

Dans Orchard, ils vous permettent de réaliser des designs très avancés et de les personnaliser de manière simple et efficace.

Si vous avez des questions sur les thèmes dans Orchard, n’hésitez pas à poster un commentaire.


>>

Orchard Harvest 2012 : Managing a community

Dimanche 9 Septembre, 9:00 am - 9:45 am, Speakers : Erik Shultz (@erikoutercurve) - Arra Derderian (@arraderderian)

Outercurve Foundation

Erik Shultz, Developer advocate chez Outercurve, nous a présenté la mission de cette fondation qui se trouve derrière de nombreux projets open source comme CodePlex. Il a également parlé de la Free Software Foundationdon’t le but est de promouvoir les logiciels libres ainsi que des exemples de Corporate Projects comme MySql.

Il en a profité pour rappeler les rôles que peuvent avoir les contrivbuteurs dans ce genre de projets :

  • Utilisateurs
  • Contributeurs
  • Committers
  • Project Leaders

Erik a rédigé un résumé des sessions auxquelles il a assisté pendant la conférence :http://www.outercurve.org/Blogs/EntryId/64/Orchard-Harvest-Eric-Schultz.

Boston Orchard User Group

Arra Derderian est à l’origine du groupe utilisateur Orchard de Boston : http://orchardcmsboston.org/.

Il nous a détaillé la façon don’t ils organisent des meetings réguliers. Ils utilisent notamment le site MeetUp :http://www.meetup.com/Boston-Orchard-CMS-User-Group/.

Le modèle Open Source et les communautés d’utilisateurs et de développeurs sont 2 moteurs importants de l’évolution d’Orchard.


>>

Orchard Harvest 2012 : Sessions Day 1

Voici un résumé des autres sessions qui ont eu lieu le premier jour de la conférence Orchard Harvest 2012, le Samedi 8 Septembre.

Module development

2 pm - 3:30 pm, Speaker : Sipke Schoorstra (@sfmskywalker)

Sipke, membre du comité de pilotage d’Orchard, nous a fait un tour d’horizon des différentes API utilisables par les développeurs pour créer leurs modules.

Il s’agissait donc essentiellement d’exemple de code pour implémenter des fonctionnalités comme un formulaire de contact, des notifications ou des filters.

Localization

3:45 pm - 4:30 pm, Speaker : Piotr Szmyd (@pszmyd, Proligence)

Piotr, un autre membre du comité Orchard, nous a présenté les multiples façons de localiser un site Orchard.

Il a expliqué les différences entre la localisation (traduire des ressources) et l’internationnalisation (appliquer une culture à un site) et le fonctionnement du Localizer (et du mot clé T(“…”) qu’on utilise dans les views et les classes).

La gestion de toutes les cultures existantes et des ressources localisées pour Orchard peuvent être récupérées (et administrées) depuis le site http://orchardproject.net/localize.

Plusieurs modules peuvent vous aider à gérer vos contenus localisées et les langues de votre site :

  • Q42.DbTranslations
  • Orchard.CulturePicker
  • Vitus.Localization

Enfin, il nous a donné un exemple de chargement de la culture en récupérant la langue par défaut du navigateur en se basant sur l’attribut ‘Accept-Language’.

Panel

5 pm - 5:45 pm, Intervenants : Sébastien Ros, Bertrand Le Roy, Sipke Schoorstra, Piotr Szmyd

Pour terminer la journée, les membres du comité présents ont répondu à des questions ouvertes de la part participants dans la salle :

  • Comment Orchard a démarré ?
  • Comment bien commencer avec Orchard ?
  • Peut-on facilement construire une Business Line Application ?
  • Est-ce qu’il existe une fonctionnalité similaire aux short codes de WordPress ?
  • Peut-on vraiment construire un site Orchard à l’aide de Web Matrix ?
  • Quels sont les mécanismes de Cache utilisables ?
  • Est-ce que le module Multi-tenants est une bonne réponse pour gérer des sites multi-clients ?

Ces questions mériteraient à elles seules un article chacune. Si vous aussi vous avez des questions, n’hésitez pas à laisser un commentaire.

Bref, il est toujours intéressant d’assister à des sessions présentées par les développeurs qui utilisent au quotidien et font évoluer en permanence la plateforme Orchard.


>>

Orchard Harvest 2012 Sessions : Ecommerce

Samedi 8 Septembre, 11h – 11h45.

Speakers : Bertrand Le Roy (@bleroy, Director of creativity Nwazet), Brett Morrison (@morrisonbrett, CIO de OneStop Internet)

Nwazet

Bertrand Le Roy nous a donné un aperçu des différentes solutions possibles pour mettre en place un site Ecommerce avec Orchard:

  • Google Checkout
  • Amazon
  • Square
  • Magelia
  • Nwazet commerce

La partie la plus simple est celle du panier mais ensuite, c’est là que les choses se compliquent, lorsqu’on commence à devoir implémenter les paiements, les expéditions, les stocks et toutes les régles métiers car aucun site Ecommerce ne se ressemble et il y a toujours des scénarios différents à implémenter.

Il nous a exposé le cas concret de son site Nwazet qui commercialise du open hardware et software en proposant une multitude de modules et de kits qui vous permettent de créer votre propre ‘micro ordinateur‘. Avec Orchard, il est ainsi possible de faire évoluer ces produits en les regroupants dans des bundles ou en ajoutant des galleries d’images.

OneStop

Brett Morrison nous a quant à lui parlé de la façon dont ils utilisent Orchard depuis maintenant 2 ans et comment ils ont fait le choix de ce CMS depuis le tout début afin de s’en servir pour leurs sites Web Frontaux, tout en gardant un catalogue, une prise de commande et une administration Ecommerce en WebForms, grâce à des répertoires virtuels et un mécanisme de redirections.

Ils ont aussi fait appel à de nombreux développeurs Orchard talentueux, dont certains membres du comité de pilotage pour réaliser des modules et ainsi répondre aux demandes des clients. Dans sa volonté de participer à l’évolution d’Orchard, certains de ces modules vont d’ailleurs bientôt être mis à disposition pour toute la communauté, via la galerie de module Orchard.

Bref, on voit que des sites web existants utilisent déjà Orchard en tant que solution pour leur Front Ecommerce.

De nombreux scénarios sont encore à implémenter mais Orchard et ses modules Ecommerce se positionne comme une alternative viable pour ce genre de sites.

Si vous avez des questions, n’hésitez pas à laisser un commentaire.


>>

Orchard Harvest 2012 Sessions : The future of Orchard

Samedi 8 Septembre, 10h – 10h45.

Speaker : Sébastien Ros.

WP_000106

L’objectif de cette session était d’avoir un aperçu des futures fonctionnalités implémentées dans les prochaines versions d’Orchard.

Fonctionnalités les plus attendues

Un moyen simple de voir les fonctionnalités les plus demandées est de parcourir le site http://orchard.uservoice.comsur lequel on peut proposer des idées et voter pour celles qu’on souhaite en priorité.

Voici donc de possibles axes de développements pour des modules qui sont encore à réaliser :

  • Workflow : Mécanisme de validation et d’état : Draft => Review => Published
  • Deploiement : Gérer la synchronisation des contenus entre les différents environnement : Développement, Recette / Staging, Production.
  • Layers : ‘Placed Content Part’ pour plus facilement disposer des éléments dans une page.
  • Calendar / Events : ‘Event Part’ avec une date de début et de fin, ‘Projection Layout’ pour afficher les dates et évènements dans un calendrier (Mois, Semaine, Jour, …)
  • Shapes : ‘Code editor’ pour rendre les shapes un peu plus dynamiques et éditables.

Contributions des développeurs

Sébastien en a profité pour rappeler les étapes qui mène à la création de modules :

  • Discussion : Dans le forum, les réseaux sociaux ou par mail pour faire part d’une idée.
  • Design : Pour définir les grandes lignes et l’objectif du module
  • Implémentation : pour le développement

Il a ainsi donné des exemples de contributions très concluantes qui ont conduit au développement de modules comme Autoroute (Gestion des urls dynamiques) ou Content items permissions avec l’aide de personnes se trouvant à l’autre bout du monde (Angleterre, Nouvelle Zélande, …)

Démos de modules

Dans le même genre d’idées, un module Scheduler a récemment était publié sur la galerie :http://gallery.orchardproject.net/List/Modules/Orchard.Module.Orchard.Scheduler/1.5.4

Il permet de planifier des actions en utilisant le moteur de Rules (Règles qui réagissent à des évènements) et TaskLease (exécution de tâches en arrière plan).

Gestion des médias

Une des grandes évolutions attendues à partir de la version 1.7 (la 1.6 n’étant essentiellement qu’une mise à jour de librairies importantes comme ASP.NET MVC 4, Web API, NHibernate 3.3 ainsi que des corrections de bugs) sera la nouvelle gestion des médias.

Un des développements en cours s’appelle le Media Processing qui va permettre d’appliquer des filtres sur des images.

Voici des exemples de filtres qui peuvent être regroupés dans des Profiles (= série de filtres identifiée par un nom) :

  • Thumbnail : Resize, Crop = redimensionner une image
  • Image Format : changer le format de l’image source
  • CDN : faire pointer vers un Content Delivery Network

Les filtres à disposition sont de plus extensibles et peuvent être développés depuis d’autres modules pour enrichir les existants.

Des évolutions viseront également à améliorer les performances et la gestion des contenus (versionning, …).

Document databases

Orchard permet déjà de stocker ses données dans des bases Sql Server, Sql Compact et bientôt MySql.

Une réflexion est évoquée en parallèle afin de permettre de supporter des bases NoSql qui seraient très appropriées pour indexer les types de contenus présents dans Orchard.

Etant donné que des moteurs comme MongoDb (Non transactionnel) ou RavenDb (payant) ne s’avèrent pas être des alternatives qui répondent à toutes les attentes, une des pistes serait d’utiliser YesSql, un moteur de base de données documentaire pouvant se servir de n’importe quelle base de données relationnelle.

Bref, il y a encore de futures fonctionnalités très intéressantes à développer pour Orchard.
N’hésitez pas à rejoindre le projet Orchard et à participer pour contribuer à son évolution. 


>>

Orchard Harvest 2012 : Keynote

Ce week end (8 et 9 Septembre 2012), j’ai eu la chance de participer à la première conférence organisée autour d’Orchard, le CMS .NET Open Source communautaire : Orchard Harvest 2012

La conférence s’est déroulée à Santa Monica en Californie à l’hôtel Double Trees Hilton.

Voici un aperçu des thèmes qui ont été abordés lors du keynote :

Speakers : Bertrand Le Roy (Nwazet), Sébastien Ros (Microsoft), Ylan Kunstler (OneStop)

Remerciements aux sponsors : Microsoft, OuterCurve, OneStop, Nwazet

Quelques chiffres pour comprendre ce que Orchard représente aujourd’hui :

  • 12 releases depuis 0.1 jusqu'à 1.5.1
  • 425 modules et thèmes
  • 2,500,000 downloads
  • 2000 bugs fermés
  • 50 000 messages sur le forum, 650 questions sur Stackoverflow
  • 8 pays avec des communautés

Quelques sites qui utilisent Orchard :

  • Amc theatres
  • Spyoptic
  • Qualnomics
  • ShowOrchard : lancé aujourd’hui

Annonce de contributions de plusieurs modules pour la galerie de la part de OneStop.

Fonctionnalités qui seront implémentées dans Orchard pour la prochaine version 1.6 :

  • Amélioration des performances
  • Visual Studio 2012
  • Support de base de données MySql
  • ASP.NET MVC 4 et WebApi
  • Database caching

Démos de futures modules et fonctionnalités (1.x) :

  • SysCache
    • MiniProfiler
  • WebAPI
    • Console CodeGen module
    • Custom ApiController

>>