Fog Creek Software
[Image]
[Image]

[page faite avec CityDesk]

Dans les Coulisses de CityDesk 

Dans cet article, le fondateur de Fog Creek Software Joel Spolsky dévoile les coulisses de ce que CityDesk fait et comment il fonctionne. Cet article est destiné aux développeurs web expérimentés et aux programmeurs.

Préambule

La première chose à regarder quand vous lancez CityDesk est une fenêtre révélant l'arborescence de votre site.

[Image]


Elle ressemble à un groupe de dossiers, avec des articles, des fichiers HTML et des images dedans -- et oui, c'est bien ça. Mais tout cet ensemble est stocké en un seul fichier unique sur votre disque dur en utilisant Microsoft Jet, exactement dans le même format que Microsoft Access. Si vous avez Access sur votre système, vous pouvez ouvrir un fichier CityDesk et le décortiquer (peep under the hood ?)

La manière la plus simple d'utiliser CityDesk est d'extraire votre site existant, avec tous ses fichiers et documents, à l'intérieur de cette fenêtre. Vous pouvez les réarranger, éditer les fichiers HTML dans un éditeur WYSIWIG ou éditer n'importe quel fichier en utilisant n'importe quel éditeur que vous avez installé. Voilà à quoi ressemble l'éditeur HTML intégré.

[Image]

Il est complètement WYSIWYG et très facile à utiliser pour des personnes habituées à utiliser un traitement de texte. Il y a un vérificateur d'orthographe, une fonction "glisser-déposer", un compteur de mots, etc. Insérer une image est aussi simple que de la glisser à un endroit.

Un clic de souris et votre site est publié. CityDesk copie les fichiers en utilisant FTP ou la copie de fichier sur n'importe quel serveur que vous spécifiez. Après qu'un fichier ait été copié une fois, il ne le recopiera plus à nouveau à moins qu'il n'ait changé. (Vous pouvez outrepasser cette optimisation et republier l'intégralité du site en cochant une boîte).

Bien sûr, si vous le désirez, vous pourriez utiliser CityDesk comme un utilitaire très cher de transfert de fichier. Mais laissez-moi d'abord vous dévoiler ce qui rend le concept CityDesk des milliards de fois plus puissant.

Un concept simple

Si vous avez un site web avec plus de 3 pages, vous avez toutes les chances que la plupart de ces pages se ressemblent. Pensez à un site populaire d'actualités comme  CNN. Cliquez sur n'importe quel article, et vous obtenez une page qui est à 90% la même que n'importe quel autre article. Les pages pourraient toutes contenir les mêmes éléments en haut et en bas, les mêmes polices de caractère et les mêmes couleurs. La seule chose qui les différencie sont les mots au milieu.

Au coeur de CityDesk existe un concept très simple : le Masque. Au lieu de créer des milliers de pages avec la même mise en page et des contenus différents, vous créez un masque avec un trou en son milieu où vous pouvez coller différents contenus pour créer chacune des pages.

A quoi ressemblent les masques CityDesk ? A rien d'inhabituel. Ce sont juste des pages HTML qui contiennent des gardiens de place au lieu du texte actuel. Voilà un masque simple et grossier :

<html>
<head>
{$ .headline$}
<h1>{$.headline $}</h1>
{$ .body $}
</body>
</html>

Comme vous pouvez le constate les gardiens de places sont encadrés par des accolades {$ and $}. Maintenant imaginez que vous ayez une base de données simple qui ressemble à ça :

Headline Body
Grandmother of Eight Makes Hole in One So shaken as we are, so wan with care, find we a time for frighted peace to pant, and breathe short-winded accents of new broils to be commenced in strands afar remote.
Police begin campaign to run down jaywalkers Hung be the heavens with black, yield day to night! Comets, importing change of times and states, brandish your crystal tresses in the sky, and with them scourge the bad revolting stars that have consented unto Henry's death!
Deaf mute gets new hearing in killing O for a Muse of fire, that would ascend the brightest heaven of invention, a kingdom for a stage, princes to act and monarchs to behold the swelling scene!

En remplaçant chacune des lignes de cette base de données à l'intérieur du masque, nous pourrions générer trois pages web complètes et joliment mises en page. (Bien sûr, si le masque est horrible, les pages le seraient aussi, mais vous savez ce que je veux dire par là !)

Voilà à quoi cela ressemble pour éditer un masque dans CityDesk :

[Image]


Même si CityDesk a un éditeur WYSIWYG simple, pour obtenir exactement ce que vous voulez beaucoup de concepteurs les éditeront en Vue HTML :

[Image]

En fait nous nous attendons à ce que les concepteurs de masque travaillent avec leurs éditeurs HTML favoris et nous leur facilitons la tâche :

[Image]

Table des Matières Automatique

La première chose dont a besoin chaque site est une table des matières -- quelquechose qui liste les articles disponibles et les relient à elle. Dans CityDesk vous pouvez créer une table des matières à l'endroit où vous voulez en écrivant un petit peu de code simple CityScript : ici un exemple :

<html>
<head>
<title>{.headline $}
</title>
</head>
<body>
<h1>Contents</h1>
$ foreach x in (folder "news") $}
<a href="{$ x.link $<> }">
{$ x.headline $}
</a><br>
{$ next $}
</body>
</html>

Il y a une petite boucle ici encadrée par  foreach et next. Ce qui veut dire en anglais "pour chaque article qui est dans le dossier appelé news, imprime le titre, et place un lien vers l'article lui-même". Si le dossier "news" contenait trois articles, cela produirait une table des matières comme suit :

Contents
Article One
Article Two
Article Three

Au cas où vous effacez, renommez, bougez ou ajoutez un article, la table des matières sera automatiquement mise à jour.

Vous pouvez changer la mise en page de la table des matières en modifiant le HTML. Une fonctionnalité populaire est d'inclure un message teaser  après le nom de l'article. Il y a une place pour entrer cela dans l'éditeur d'article. Ensuite votre table des matières ressemblera à cela :

Article One
Why you should read this story.

Article Two
Something interesting about this story.

Article Three
No, really, this is the most interesting one.

Vous pouvez avoir autant de tables des matières que vous voulez dans tout votre site. En modifiant les conditions de la boucle  foreach, vous pouvez vraiment faire des choses intéressantes, par exemple : 

  • lister tous les articles dans un fichier particulier 
  • lister tous les articles dans un intervalle de dates
  • lister tous les articles marqués avec un mot-clé particulier
  • lister tous les articles d'un auteur en particulier

Si vous voulez une table des matières qui liste "les 10 premiers articles du dossier  opinions écrit par John Q. Editor en 2002, classée par ordre alphabétique et excluant tout article qui serait destiné uniquement aux utilisateurs expérimentés, c'est possible.

Vous le préféreriez cuit ou frit

La puissance des masques dépend du contenu que vous cuisinez dedans. La plupart des éditeurs HTML comme FrontPage ont des masques, mais une fois que vous mettez du contenu dedans, la page est figée. Le contenu est cuit dedans. Si vous voulez changez le masque sur des centaines de pages différentes, vous devez éditer des centaines de pages différentes.

Les systèmes de gestion de contenu puissants font frire les masques à chaque fois qu'un utilisateur réclame une page. Le contenu de la page et le masque ne sont pas assemblés jusqu'à ce que quelqu'un réclame la page. Le problème de cette approche est que cela ne peut être fait à moins que vous n'installiez un logiciel spécial sur le serveur web, quelquechose que peu de maître-toiliers peuvent faire. La majorité d'entre nous ont un site web quelquepart avec un accès FTP.

Ainsi CityDesk adopte une approche intermédiaire. Nous gardons le contenu dans une base de données, séparée des masques, jusqu'à ce que vous appuyez sur le bouton  Publish danc CityDesk. A cet instant, CityDesk remplace le contenu à l'intérieur des masques et télécharge tous les fichiers modifidés sur votre serveur web.

Rien sur le serveur

La raison pour laquelle CityDesk est si pratique pour tant de personnes est que vous n'avez rien de spécial à placer sur le serveur web. CityDesk utilise juste le protocole FTP pour copier les fichiers vers un répertoire que vous choisissez. Quand vous avez fini, votre site Web ressemble et fonctionne exactement comme un site web où vous auriez laborieusement codé à la main toutes les pages.

Chaque fois que vous publiez, CityDesk a une fonctionnalité de Prévisualisation qui vous laisse voir exactement à quoi votre site web ressemble  avant de le propulser dans le monde.

Si votre serveur web ne supporte pas le protocole FTP, CityDesk pourra, à la demande, créer une copie complète de votre site web entier sur votre disque dur (ou sur n'importe quel disque connecté sur le réseau). Ensuite vous pouvez utiliser d'autres mécanismes (cvs, scp, rdist, sneaker-net or carrier-pigeon) pour placer les fichiers en cours sur le serveur.

Quand CityDesk copie votre site vers le serveur, il publie aussi un fichier XML avec une liste des fichiers et de leurs "checksum" (Qu'est-ce qu'un checksum ? ). La prochaine fois que vous essayez de publier, CityDesk peut rapidement savoir exactement lesquels de ces fichiers ont changé. Ainsi si vous aviez changé une toute petite chose dans un fichier, ce fichier seulement doit être copié sur le serveur Web.

Facile

La philosophie de CityDesk est qu'il devrait être super facile pour des débutants de mettre à jour leurs sites web en utilisant CityDesk. Une fois que vous avez verrouillé le mode concepteur CityDesk, il y a seulement quatre boutons sur la barre d'outils.   [Image]

  Même l'écrivain le plus hostile aux ordinateurs qui pourrait être rebuté par un programme plein de fonctionnalités, peut se laisser former sur comment ajouter, éditer ou enlever des articles. Editer des articles devient aussi facile qu'utiliser un traitement de texte standard. Ajouter des images est une simple question de "glisser déposer".

Fonctionnalités Avancées

Parce que dans CityDesk, tout réside dans une base de données, vous pouvez pratiquer toutes sortes de choses avec cette gestion de contenu. Ci-après rapidement une liste de fonctionnalités :

Langues - votre site peut apparaître en autant de langues que vous le désirez. Vous avez une interface multi-fenêtres pour les traducteurs. Les traducteurs peuvent facilement lister tous les articles nouveaux ou modifiés qui ont besoin d'être traduits.

Audiences Multiples - un mécanisme simple vous permet de créer de multiples versions de votre site pour différentes audiences. Une fois réglé, un article donnée peut être ciblé vers tous ou vers un public spécifié.

Ne Jamais Publier Avant / Après - Un article donné peut être limité dans le temps. Il pourra ne pas être publié avant et/ou après des dates que vous spécifiez.

Familles de Masques  - Comme nous l'avons vu précédemment, à chaque article est assigné un masque qui détermine sa mise en page. Vous pouvez aussi créer des groupes de masques appelés des familles de Masques qui vous permettent de publier votre site avec plusieurs apparences complètement différentes. Par exemple, une version pourrait être du HTML riche, pendant que l'autre version serait dédiée aux terminaux Palm.

Variables - Vous pouvez définir une variable, par exemple, {$.Copyright$}, en un lieu, et qui sera intégrée sur l'ensemble de votre site. Maintenant au Nouvel An, vous pouvez changer la notice de copyright en un seul endroit.

Lieux de Publication Multiples  -  Admettons que vous publiez la version française de votre site sur un serveur en France, la version anglaise sur un serveur aux Etats-Unis, et que vous ayez aussi un serveur privé pour votre site où vous faites vos essais. CityDesk vous laisse définir autant de lieux de publication que vous le voulez tout en vous simplifiant cette tâche de gestion.

Nombreux Utilisateurs Concurrents - Parce que Jet (notre moteur de base de données) est nativement multiutilisateurs, avec la version professionnelle de CityDesk, vous pouvez monter jusqu'à 255 personnes éditant le site au même moment. Ils ouvrent simplement le même fichier CityDesk sur un LAN ou un VPN et CityDesk se charge du reste.

Essayez-le, c'est gratuit !

La version Débutant, qui vous laisse construire un site web jusqu'à 50 pages avec un utilisateur, est entièrement gratuite. Téléchargez-là maintenant ! La Version Familiale (500 pages) et la Version Professionnelle (Nombre illimité de pages, multi-utilisateurs) sont proposées à un prix raisonnable et livrées avec la garantie Fog Creek Software : remboursement intégral sans questions posées pendant 90 jours suivant l'achat. Vous pouvez acheter CityDesk dès maintenant et le télécharger dans le magasin  Fog Creek .

CityDesk is a trademark of Fog Creek Software, Inc. Windows, FrontPage, Jet, and Access are trademarks of Microsoft Corp. All other trademarks belong to their respective holders.



[A faire] Présentation de CityDesk[langue française - Gaule]

[A faire] Fog Creek Home[langue anglaise ou US]

[A faire] Email: info@fogcreek.com 

[page faite avec CityDesk] site meter Valid HTML 4.01!