Partager via


Réponses au grand jeu concours de l’été

 

Bienvenue sur la page des réponses - et des explications - du jeu-concours de l’été 2008. Avec environ dix fois plus de participants que l’année passée, vous avez été nombreux à tenter votre chance. Cela dit, si on compte beaucoup d’appelés, on dénombre peu d’élus : un peu plus de 7% d’entre vous seulement peuvent se targuer d’avoir trouvé les 8 bonnes réponses. De fait, si la majorité des questions n’a pas posé de problème majeur, certaines, plus délicates, ont su vous mettre à l’épreuve. Que vous ayez bien répondu ou non, je vous invite à parcourir cette page pour profiter de nos explications et, qui sait, découvrir des ressources que vous ne connaissez pas encore. Bonne lecture !

 

 


Accès rapide :

  • Question 1 : Qu’est-ce qui est inscrit sur le t-shirt de Lucas ?
  • Question 2 : De quoi avez-vous besoin pour faire tourner une application Silverlight côté client ?
  • Question 3 : Quels sont les principaux déterminants de l’ergonomie web ?
  • Question 4 : A quoi correspond le bout de code suivant : (...)
  • Question 5 : Lors de la création d'un document Open XML de type WordML, telle qu'expliquée par Fabien Reinle dans les colonnes de Tech Head Brothers, quelle instruction permet d'ajouter la partie principale du document ?
  • Question 6 : Quel est le plus ancien des MVPs développeurs résidant en France ?
  • Question 7 : Thomas Lebrun en parle sur son blog : quel élément doit-on utiliser, sur un objet métier, lorsque l'on souhaite notifier l'interface utilisateur que l'objet a été modifié ?
  • Question 8 : Quel concept permet d'activer une politique événementielle pour une bibliothèque de documents SharePoint ? Quelques indices sur cet article de Ludovic Lefort.

 


Les réponses en gras sont les bonnes.

 

Question 1 : Qu’est-ce qui est inscrit sur le t-shirt de Lucas ?

  • J’ai personnalisé ma newsletter MSDN (9%)
  • MSDN est mon guide spirituel et me montre le chemin de l’absolution (8%)
  • Newsletter MSDN (83%)

 

Si plus de 8 personnes sur 10 ont trouvé Lucas ou ont deviné ce qui figurait sur son t-shirt, une personne sur douze environ a tout de même opté pour la deuxième réponse, plutôt loufoque pourtant ! Notez que la première réponse aurait pu être la bonne car de tels t-shirts existent bel et bien :)

Pour trouver Lucas, il fallait zoomer à gauche de la statue, dans l’eau, puis, sur l’image des chutes du Niagara, en haut à droite, dans la cascade. On pouvait ensuite lire « Newsletter MSDN » sur le t-shirt de Lucas :)

C’est certainement plus clair en images :

Liens utiles :

 

Haut de pageHaut de page

 

Question 2 : De quoi avez-vous besoin pour faire tourner une application Silverlight côté client ?

  1. Du .NET Framework 1.1 et du Player Silverlight (18%)
  2. Du Player Silverlight uniquement (81%)
  3. De tongs MSDN, surtout la gauche (1%)

 

Cette question valide que la distinction entre Silverlight et le Framework .NET est claire dans votre esprit. Une personne sur six s’est d’ailleurs laissé prendre au piège en répondant que le .NET Framework dans sa version 1.1 était nécessaire. Pourtant, il vous faut savoir que le plug-in Silverlight, dans sa version 2.0, intègre un sous-ensemble du .NET Framework. Il n’est donc pas nécessaire qu’une quelconque version du Framework soit déployée sur le poste client qui exécutera une application Silverlight 2.0.

Liens utiles :

 

Haut de pageHaut de page

 

Question 3 : Quels sont les principaux déterminants de l’ergonomie web ?

  1. Des règles universelles, contextuelles et d’usage (48%)
  2. Les standards du web et les technologies utilisées (50%)
  3. Ca dépend. Moi par exemple, j’aime bien le violet RVB(128,100,162), c’est clairement la couleur de l’été ! (2%)

 

A en juger par la répartition des réponses, nombres d’entre vous - une moitié - ont opté pour une définition de l’ergonomie dictée par les standards et les technologies. Cependant, un code conforme au W3C ne constitue en aucun cas une garantie en termes d’ergonomie. Cela dit, se conformer aux standards est essentiel, mais pour d’autres raisons !

Quant à la réponse et à sa justification, Amélie Boucher, Directrice Associée de People Square nous la donne au micro de Dick Lantim, lors du ReMIX 08. Il faudra retenir deux enseignements majeurs de cette vidéo : il n’y a pas d’ergonomie en soi, elle dépend nécessairement de ce que veut faire l’utilisateur, ou même de quel utilisateur il s’agit : ces deux points sont rattachés à la notion de règles contextes. Le second point à retenir de cette présentation est que les technologies ne doivent pas dicter les choix d’ergonomie ; ceux-ci doivent se faire dans un second temps, une fois le besoin identifié et les spécifications rédigées – de la même manière qu’un développeur ne se lance dans le code avant d’avoir défini, ou reçu, un cahier des charges.

Si vous n’êtes pas d’accord, ou trouvez tout simplement mon explication laconique, je vous conseille vivement de consulter le webcast de Dick et Amélie pour vous laisser convaincre du bien fondé de leurs propos !

Liens utiles :

 

Haut de pageHaut de page

 

Question 4 : A quoi correspond le bout de code suivant :  

var q =

       from e in db.Employees

       join o in db.Orders on e equals o.Employee into ords

       from o in ords.DefaultIfEmpty()

       select new {e.FirstName, e.LastName, Order = o};
  1. C’est …une jointure croisée entre Employees et Orders (63%)
  2. C’est …une jointure gauche ouverte entre Employees et Orders (31%)
  3. C’est …difficile à dire… très difficile ! (6%)

 

Cette question est celle qui a connu le plus faible taux de bonnes réponses, environ 30%.

Pour revenir à la réponse, et à son explication surtout, je me permets de citer Mitsu qui a eu l’amabilité de rédiger la question et l’explication associée : « Ceci est une jointure gauche ouverte (left outer join) entre Employees et Orders. C’est une des rares syntaxes Linq to Sql qui n’est pas très lisible. On fait un join classique (inner), on récupère le résultat (into ords) sur lequel on fait un test pour accepter la nullité. » J’espère que c’est plus clair pour la majorité d’entre vous, moi j’avoue que j’aurais bien aimé que le coach me vienne en aide ... Peut-être se penchera t-il prochainement sur ce sujet !

Liens utiles :

 

Haut de pageHaut de page

 

Question 5 : Lors de la création d'un document Open XML de type WordML, telle qu'expliquée par Fabien Reinle dans les colonnes de Tech Head Brothers, quelle instruction permet d'ajouter la partie principale du document ?

  1. MainDocumentPart mainPart = package.MainDocumentPart; (8%)
  2. MainDocumentPart mainPart = package.AddMainDocumentPart(); (83%)
  3. MainDocumentPart mainPart = package.AddMainDocumentPart; (9%)

 

Cette question était-elle trop facile pour les développeurs émérites que vous êtes ? Une chose est certaine : vous êtes plus de 8 sur 10 a avoir trouvé la bonne réponse. Il faut dire qu’une lecture attentive de l’article de Fabien Reinle vous donnait toutes les clés indispensables à la manipulation du contenu d’un fichier Open XML de type docx en s’attachant, pas à pas, à montrer de manière pratique comment générer le framework, écrire un fichier WordML et en lire son contenu.

Comme Fabien l’indique, le format Open XML représente une grande avancée puisqu’il permet de manipuler les documents Word sans avoir à recourir à des interop, c’est-à-dire sans nécessiter la présence de Microsoft Word sur la machine qui procède aux manipulations du document. Une spécificité rendue possible par la structure même du format Open XML, qui se présente comme un fichier archive regroupant plusieurs fichiers appelés « part ». Si vous n’êtes pas encore familier du format Open XML, standard ISO, je vous laisse consulter les quelques liens qui suivent.

Liens utiles :

 

Haut de pageHaut de page

 

Question 6 : Quel est le plus ancien des MVPs développeurs résidant en France ?

  1. Richard Clark (73%)
  2. Antoine La Porte (17%)
  3. Gérard Bianca (10%)

 

Au vu du nombre de mails reçus à ce sujet (*), cette question semblait de prime abord être l’une des plus difficiles du jeu concours. Pourtant, vous êtes une nette majorité à avoir indiqué que Richard Clark est le plus ancien des MVPs développeurs résidant en France. Et il faut bien dire que la question n’était pas difficile, en dépit de son aspect trompeur. Ce qui a probablement perturbé un bon nombre de participants, c’était tout bonnement le piège qui vous était tendu…

La réponse est Richard Clark, qui est MVP depuis octobre 2002. Les autres noms sont inventés. Inutile de dire que ceux qui ont choisi une autre réponse l’ont tenté au bluff. Une simple consultation de la page listant les MVPs francophones, présente sur MSDN, aurait pourtant suffi à lever le lièvre.

(*) : L’équipe MSDN est, malheureusement pour certain(e)s, incorruptible.

Liens utiles :

 

Haut de pageHaut de page

 

Question 7 : Thomas Lebrun en parle sur son blog : quel élément doit-on utiliser, sur un objet métier, lorsque l'on souhaite notifier l'interface utilisateur que l'objet a été modifié ?

  1. INotifyCollectionChanged (35%)
  2. INotifyPropertyChanged (58%)
  3. INotifyPropertyChanging (7%)

 

Pas facile en l’état, la question de Thomas Lebrun, MVP Client Application et expert ès WPF par excellence. Windows Presentation Foundation, pour les cancres du fond de la classe qui n’ont pas révisé durant l’été, n’est autre que le nouveau moteur de rendu des applications Windows qui permet de réaliser des applications au look et à l’ergonomie incroyable en libérant les développeurs des contraintes imposées par le GDI.

L’ami Thomas, en exposant un cas concret, vous avait pourtant facilité la tâche. Pour vous aider dans vos recherches, il avait en effet posté le code source complet de son application sur une plateforme web que vous connaissez tous : CodeS-SourceS. Il était alors aisé de remarquer que l’implantation de l’interface INotifyPropertyChanged dans l’objet métier permet de répondre à nos besoins.

Liens utiles :

 

Haut de pageHaut de page

 

Question 8 : Quel concept permet d'activer une politique événementielle pour une bibliothèque de documents SharePoint ? Quelques indices sur cet article de Ludovic Lefort.

 

  1. La mécanique des fluides (2%)
  2. L'événement ItemAdding de la classe Microsoft.SharePoint.SPListEventReceiver (39%)
  3. Une politique personnelle matérialisée par l'interface IPolicyFeature (59%)

 

La mécanique des fluides, dont les premières études remontent à l’époque de la Grèce Antique, s’attache à mettre en avant les logiques inhérentes aux comportements des fluides (gaz ou liquides). Même si le théorème de Kutta-Jukowski est intéressant en soi, qui a osé désigner la première réponse comme étant la bonne, qui ? C’était tout de même la réponse choisie par 2% d’entre vous !

Bien que la solution ne soit pas facile à trouver, des indices s’étaient glissés dans l’article de Ludovic Lefort sur Développez consacré à la création d’un filigrane personnalisé. Révisez vos classiques sur SharePoint avec les liens qui suivent !

Liens utiles :

 

Haut de pageHaut de page

 

Retourner à la page d’accueil de J’en ai rien à coder