Affichage des articles dont le libellé est sinatra. Afficher tous les articles
Affichage des articles dont le libellé est sinatra. Afficher tous les articles

mardi 24 juillet 2012

2 exemples d'utilisation du MVC Express

Une nouvelle vidéo en ligne sur les deux usages d'Express pour node.js



 Express peut etre utilisé selon deux modes. Cette vidéo detaille l'installation et le création d'application Express.

La connaissance de Sinatra aide à comprendre le fonctionnement d'Express

La video aborde le choix du moteur de template entre  ejs ou jade .



vendredi 20 juillet 2012

Express pour Node.je et Sinatra

Express est un framework MVC pour Node.js.  C'est donc du javascript (ou du coffeescript).



Express revendique clairement sa filiation avec Sinatra pour Ruby.




Et c'est vrai que l'analogie est frappante :


Coté Sinatra :




Au delà de cette simple comparaison, Sinatra et Express appartiennent bien à la même famille des DSL dans le domaine d'application de la couche WEB.

1) Le domaine d'application de Sinatra.


Sinatra permet offre un langage de manipulation de la couche web middleware.  Ruby possède une couche middleware très puissante appelée Rack.


Rack permet de faire le lien entre une requête HTTP  entrante (url, méthode et parametre) et des objets Ruby. Il est possible d'agencer à sa guise la pile de traitement d'une requete WEB.

Sinatra offre un langage permettant de travailler directement avec ces couches.

2) Le domaine d'application d'Express


Express tout comme Sinatra permet de manipuler facilement le middleware pour Node.js appelé 'connect.js'.


Express ne fournit pas directement un DSL comme dans Sinatra. Il permet en revanche de réaliser très facilement pour Node.js des applications WEB en mode MVC.

3) Les deux modes d'utilisation de Sinatra.


Sinatra fonctionne sous deux modes:

Le mode 'classique' 

L'application tient dans un fichier et elle est écrite avec le DSL.


Le mode modulaire.


L'application peut être répartie dans plusieurs fichiers.  Il est possible d'avoir plusieurs applications pour un seul interpréteur Ruby actif. En revanche on ne pourra pas faire appel directement au DSL, il faudra passer par des méthodes.

Aucun mode n'est meilleur que l'autre. C'est vraiment deux usages différents. Dans les deux cas, le développeur pourra intervenir sur l'agencement de la couche middleware.
Dans les deux modes, il est possible et recommandé d'isoler les vues dans des sous-répertoires.


4) Les deux mode d'utilisation d'Express


Express lui aussi propose deux usages.

Le mode simple


Comme pour Sinatra, l'application tient dans un fichier et liste les actions à mener pour chaque url.



Ici un exemple en coffeescript.

Le mode MVC


Un appel à la commande express 'mon_appli' génère une arborescente qui ressemble  à celle  d'une grosse application Sinatra.


Par défaut Expres utilise le système de template 'jade' mais il est possible de choisir son moteur des template. Pour ma part , j'utilise 'ejs' qui se rapproche beaucoup de 'erb' pour ruby.

Dans les deux modes, le développeur garde la possibilité de modifier la couche middleware.



En conclusion: Sinatra est a réserver pour les petite applications, après il vaut mieux passer à Rails.

Express, lui prend en charge tout l'aspect serveur WEB (cache , session )  qui n'existe pas en l'état dans Nodes.js  Express sert souvent de base pour d'autres frameworks.
je prépare une série de vidéos sur le thème d'express, rendez vous sur twitter.





 

mercredi 6 juin 2012

Une série de vidéo sur le dsl #sinatra pour #Ruby

Je viens de terminer une série de webcast (video pour le web) consacrée au framework Sinatra pour Ruby.
Ces vidéos sont un  prolongement du site http://apprendre1chosechaquejour.herokuapp.com/ (a1ccj).
Ce site est une application du Cloud Heroku. J'ai voulu montrer pas le biais des vidéos, comment monter un tel site. Aussi après l'installation et la  création d'une application sous Sinatra, je lancerai une nouvelle série de vidéo sur la mise en ligne des applications Ruby ou Node.js  sur Heroku.

1) Installation de sinatra (vidéo 1)


La première vidéo traite de l'installation de Sinatra.  L'enregistrement vidéo  est fait à partir de recordItnow. Le son est mixé à l'image  par Pitivi. Cette vidéo est ici.


2) Première application sous sinatra (vidéo 2)




sinatrapitch
Cette vidéo est réalisée avec kazam avec prise de sous en direct. J'ai ajouté des images fixes venant d'une présentation   libreoffice. Toutes les images sont disponibles sur Flickr (lien ici) .



sinatrapitch3

3) Les blocs spéciaux sous sinatra.(vidéo 3)



sinatrapitch5
 La vidéo et le son ont été capturé par kazam.



4) Les templates (vidéo 4)




Réalisée avec  des prises courtes toujours avec kazam , puis  collage des tronçons avec kino en ajoutant des fondus enchaînés.


Toutes les vidéos sont sous : http://apprendre1chosechaquejour.herokuapp.com/videos

lundi 28 mai 2012

Une application #Sinatra ou #node.js sur heroku

Je voulais tester la création d'une application sur un Cloud. C'est fait, et c'est très facile avec le cloud HEROKU. L'opération a duré 5 minutes.

L'application s'appelle : Apprendre une chose chaque jour. A1CCJ). Elle  est realisée avec le framework Sinatra pour Ruby


J'ai mis en ligne des vidéos qui sont destinées à détailler la création du site. Chaque nouvelle vidéo donnera lieu à un tweet pour mes abonnés.

Héroku utilise la  même architecture  une application Sinatra et pour Node.js (la pile CEDAR)

Cedar is a polyglot platform with native support for many of today’s most popular and productive languages and frameworks.


Les opérations à faire sont:


  • Creer un compte chez heroku
  • Telecharger le client heroku
  • Avoir une clé publique SSH : le lien ici détaille cette phase pour github


Puis suivre les instructions d'heroku

Les 3 commandes à connaitre sont


  • git add .
  • git commit -m "un_texte"
  • git push heroku master


Et hop ... l'application est sur le cloud.
La présence dans votre répertoire d'un fichier package.json indique à Heroku que l'application utilisera node.js. Idem pour un fichier Gemfile et  ruby


(Des vidéos explicatives seront bientôt sur le site)

C'est vraiment une révolution dans l'hébergement des applications.