# Friday, April 30, 2010

Le principe de précaution

“Quelqu’un peut il m’expliquer pourquoi il arrive fréquemment, dans une équipe projet, d’avoir une ou deux personnes qui ne peuvent écrire une classe sans écrire, systématiquement, une ou plusieurs interfaces ou classes abstraites qui, en fin de projet, ne sont finalement implémentées que par une classe voir pas du tout ?”

Voilà en substance un mail qui a lancé un débat intéressant entre collègues. Et je dois dire que je suis d’accord avec ce constat et qu’il est vrai que j’ai parfois l’impression que certains développeurs pensent que savoir développer proprement et professionnellement signifie devoir implémenter 9879798 interfaces et classes abstraites et ajouter 98770754 niveaux d’abstractions. Après tout, rajouter de l’abstraction est le premier réflexe que l’on peut avoir lorsque l’on essaie d’atteindre l’objectif premier de tout développeur qui se respecte :

Ecrire du code maintenable

Cet objectif est en effet primordial afin de réduire le coût de développement (et de maintenance) d’un projet. Mais il mène parfois vers le travers évoqué ci-dessus.

Cette mauvaise habitude appelée “le syndrome du “ocazou”” par David, se rapproche beaucoup du principe de précaution dont on parle beaucoup en ce moment. Adapté au développement logiciel celui-ci pourrait se traduire par :

“ l'absence de certitudes, compte tenu des connaissances techniques du moment, ne doit pas retarder l'adoption de mesures effectives et proportionnées visant à prévenir un risque de dommages graves et irréversibles au projet de développement à un coût économiquement acceptable ”

Seul problème avec ce genre de principe de précaution, il est très souvent difficile d’arriver à proportionner correctement son action afin d’éviter les problèmes par la suite. L’actualité récente l’a montré, le principe de précaution incite souvent à exagérer la menace, et a dans quasi tous les cas une certaine faculté à faire exploser les coûts pour un résultat… souvent peu mesurable.

En réalité, la maintenabilité doit certes être basé sur du code propre et bien structuré, mais il repose également sur deux principes fondamentaux :

  • Le principe KISS (Keep It Simple and Stupid) : Plus un code est simple et plus il sera facilement compréhensible et maintenable. Ajouter de la complexité en ajoutant des niveaux d’abstractions inutiles ne fait… qu’ajouter de la complexité.
  • Le principe YAGNI (You aren’t going to need it) : Ce principe indique qu’il ne faut pas ajouter des fonctionnalités ou du code tant que l’on n’en a pas réellement besoin. 

Ces deux principes sont d’autant plus valables que nous avons à présent des outils efficaces (comme ReSharper) permettant de refactoriser intelligemment son code afin de faire évoluer son architecture quand on a en besoin. Inutile donc de rajouter de la complexité en prévision du futur, il ne sera pas trop tard pour le faire par la suite…

# Monday, April 26, 2010

News de la semaine #17

imageCommençons comme chaque semaine par l’actualité de Windows Azure. Cette semaine Steve Marx nous explique comment activer la compression HTTP du serveur IIS pour vos instances Windows Azure.

Je vous indiquais la semaine dernière que Visual Studio 2010 était disponible, et bien cette semaine Brian Harry annonce la disponibilité des versions localisées de Visual Studio 2010.

Avec la sortie de VS 2010, plusieurs ressources sont publiées afin de monter rapidement en compétence telle que le Silverlight 4 Training Kit qui nous est présenté par Scott Guthrie.

Je vous avais indiqué en février que Lucas Bolognese quittait Microsoft, et bien cette semaine c’est une autre figure connue qui quitte le géant de Redmond puisque Brad Abrams a annoncé son départ.

Quant à l’actualité produits, l’équipe de Novell propose la preview 6 de Moonlight 3, ainsi que la version 3.0 de MonoTouch.

Du côté des publications françaises, Jb Evain nous propose un post qui traite des arguments nommés et des arguments par défaut en C# 4 et Jeremy Jeanson nous indique comment avoir une version Express de Visual Studio qui ressemble fortement à une édition complète.

# Saturday, April 24, 2010

Crypter les chaines de connexions est inutile

En me rendant sur la page d’accueil de la plate-forme Wordpress, je suis tombé sur le dernier post de blog de l’équipe de développement de ce logiciel. Ce post intitulé “Secure File Permissions Matter” indique de manière censée qu’il est toujours nécessaire de configurer les permissions d’accès à vos fichiers afin d’éviter tout problème de sécurit”, notamment liés à votre hébergeur.

Ce qui est plus que surprenant, c’est de voir Matt Mullenweg créateur de Wordpress et une des personnes les plus influentes du web commencer son post par une banalité (qu’il est néanmoins toujours utile de rappeler) pour continuer en s’improvisant expert en sécurité en affirmant que, comme toutes les autres applications, Wordpress doit stocker les informations de connexions à la base données en clear text et qu’il est inutile de vouloir crypter ces informations puisque les clés de cryptage seraient facilement accessibles puisque stockés sur le système de fichiers…
Voir http://awurl.com/rROy45oeC pour la citation exacte.

Je sais bien que Wordpress est développé en PHP mais bon, ASP.net permet de crypter des sections de configurations depuis ASP.net 2.0 c’est à dire depuis près de 5 ans, de plus pour éviter les problèmes d’accès aux clés de cryptage, il est possible d’utiliser DPAPI qui résous complètement ce problème potentiel.
Donc bon, peut être que crypter ses chaines de connexions n’est pas aussi inutile que ça et qu’il est techniquement possible de le mettre en place efficacement…

# Sunday, April 18, 2010

BDC 2010 d’Aix en Provence le 18 Mai

Evenement développeur - nouvelles technologies paca, aix en provence

Après l’édition de Toulouse qui fut une année encore un succès, vous pourrez participer, si vous êtes dans le Sud-Est de la France, à l’édition d’Aix en Provence de la Bewise Day Conference organisée par Bewise Sud-Est !

Cet évènement aura lieu au Pasino d’Aix en Provence, et vous permettra d’assister des sessions sur Silverlight 4, Sharepoint 2010, Windows Phone 7, Team System 2010, etc.

Pour vous inscrire (c’est gratuit !) : http://bse.bewise.fr/BDC2010

News de la semaine #16

imageCette semaine est certainement la “Release Week” de l’année !

Première sortie d’importante, celle de Visual Studio 2010 et du framework .net 4.

Quelques articles sont déjà publiés à propos des nouveautés de .net 4.0 avec en vrac : les nouveautés du Client Profile du framework .net 4.0 , une synthèse des nouveautés d’Entity Framework V4, les améliorations de performances de WPF 4les améliorations de performances du ThreadPool, les breaking changes à considérer lorsque l’on passe de la V 3.5 à la V4.

Silverlight 4 est également disponible en RTW. A noter que les outils d’intégration à Visual Studio ne sont pas encore disponible en version finale mais uniquement en RC2.

Du côté des langages, Don Syme nous annonce la disponibilité de F# 2 et IronRuby est désormais disponible en version 1.0.

En plus de ces sorties, Jetbrains a annoncé la disponibilité de ReSharper 5, l’équipe de Pattern & Practices annonce la disponibilité d’Entreprise Library 5 et l’équipe de la table de Microsoft Surface sort la version beta du Microsoft Surface Toolkit pour Windows Touch.

Du côté du projet Mono de Novell, Jb Evain nous présente l’évolution du projet Cecil et les nouveautés apportées par la version 0.9. Jeremy Laval nous annonce que son implémentation de PLinq a été intégrée dans le trunk de Mono !

Je m’interrogeais il y a peu sur le projet Sandcastle, cette semaine Jon Skeet nous propose un article décrivant son utilisation, et Richard nous annonce que non, le projet n’est pas mort !

Et enfin la polémique de la semaine concerne les changements de conditions d’utilisation du SDK de l’iPhone et de l’iPad qui pourrait avoir un impact fort sur le projet MonoTouch. L’équipe de la CLR quant à elle souhaite calmer celle qui entoure régulièrement le site web Connect et indique précisément quel est le process de gestion des suggestions/bugs soumis sur ce site.

# Sunday, April 11, 2010
# Saturday, April 10, 2010

News de la semaine #14

imageComme souvent, débutons avec l’actualité de Windows Azure et plus particulièrement de SQL Azure puisque Thomas Conte nous annonce la future disponibilité des instances de 50Go (pour le moment uniquement disponible 1Go et 10Go).

L’équipe de la Task Parallel Library propose des extensions à la TPL proposée avec .net 4.0 via le projet ParallelExtensionsExtras. Afin de faciliter l’accès à ce projet annexe une série d’articles est en cours de rédaction.

Toujours à propos des projets annexes au framework, l’équipe de la BCL publie sur Codeplex un projet contenant des previews et prototypes susceptibles de se retrouver dans les prochaines versions.

InfoQ propose un article synthétique mais néanmoins intéressant sur les arguments permettant de choisir entre REST et SOAP.

Du côté de l’actualité Produits, JetBrains annonce dotCover un nouvel outil d’analyse de couverture de code. Comme tous les outils JetBrains, il va falloir surveiller ça de très près !

Michael G. Lehman annonce le Feature Builder Power Tool pour Visual Studio 2010, qui est le successeur des projets GAT et BluePrints. Espérons que celui-ci sera un peu plus stable et aura une durée de vie plus importante que ses prédécesseurs !

# Sunday, April 04, 2010

Compte rendu de la BDC 2010

Comme je vous l’avais indiqué, nous avons organisé Jeudi 1er Avril l’édition 2010 de la Bewise Day Conference. Cette demi-journée fut l’occasion de réunir près de 500 personnes autour des technologies Microsoft dans un lieu culte toulousain : le stade Ernest Wallon !

Cette édition fut particulièrement riche puisque nous avons pu proposer à l’ensemble des visiteurs plusieurs annonces et présentations en avant-première :

  • L’équipe responsable des Communications Unifiées a présenté OCS 14. Cette version majeure d’OCS propose une toute nouvelle UI (pour la première fois réellement extensible) ainsi que des fonctionnalités vraiment en avance par rapport à la concurrence.
  • Le développement d’applications mobiles pour Windows Phone 7 Series fut présenté pour une des premières fois en France par Pierre Cauchois, responsable mobilité à Microsoft France.
  • Nous avons également lancé la version azurée de nopCommerce. Si vous créer votre site d’e-commerce tout en bénéficiant des avantages de Windows Azure, n’hésitez pas à y jeter un oeil.

En plus de toutes ces annonces/présentations en avant-première, plusieurs sessions ont été présentés sur des sujets aussi variés que : Windows Azure, Silverlight 4, Sharepoint 2010, SQL Server 2008, la virtualisation et les communications unifiées.

Si vous souhaitez en savoir plus vous pouvez visionner les photos que j’ai prises durant l’évènement :

ou consulter les différents tweets qui ont été postés tout au long de la journée : http://twitter.com/#search?q=%23bdc10

image 

A l’année prochaine pour la BDC 2011 !

# Thursday, April 01, 2010

Votre site d’e-commerce sur Windows Azure !

image J’ai le plaisir de vous annoncer que nous lançons aujourd’hui, jour du Bewise Day Conference qui se tient à Toulouse et qui réunit plus de 500 personnes, une version azurée du projet nopCommerce !

Ce projet open source vous permet de créer rapidement votre site d’e-commerce et de le personnaliser facilement puisque celui-ci a été développé en ASP.net.

Afin de bénéficier des fonctionnalités de ce projet et de la puissance de la plate-forme Windows Azure. Vous pouvez dès à présent télécharger la version Azurée de nopCommerce que nous venons de publier sur CodePlex : http://nopcommerceazure.codeplex.com/

Nous publierons très prochainement quelques informations concernant la migration de ce projet vers Windows Azure. Je vous recommande en attendant de consulter les articles de Sebastien Pertus, expert Windows Azure à Bewise : Plateforme Azure : Migrer ! et Plateforme Azure : Migrez ! Part II

# Saturday, March 27, 2010

1er Keynote MIX10

imageQuelques jours après le MIX10 et n’ayant pas trouvé de compte-rendu technique de l’évènement, je viens de visionner le premier keynote. Je vous propsoe donc une liste des points importants à retenir concernant ce keynote (en attendant le prochain).

Une plate-forme matérielle unifiée
D’un point de vue plate-forme, l’éditeur change radicalement de stratégie puisque au lieu de proposer un OS mobile déployable sur une très grande variété de plate-formes matérielles avec des caractéristiques techniques potentiellement très différentes (en terme de taille d’écran, de puissance processeur, de puissance graphique, etc.), l’éditeur a travaillée avec les principaux constructeurs (HTC et cie) afin de définir des spécifications précises du type de matériel qui sera supporté par l’OS.

On se retrouve donc face à une plate-forme presque unique avec des spécifications permettant de s’assurer que l’application développée, testée pour un modèle de device particulier fonctionnera sans aucun problème (de performance ou encore d’affichage à cause de résolutions peu conventionnelles) sur les autres types de devices. Il s’agit donc d’un grand pas en avant qui va permettre de développer des applications permettant de profiter pleinement de la plate-forme, contrairement à la politique précédente qui était de proposer des fonctionnalités à minima afin de supporter une grande variété de devices.

D’un point de vue développement
Silverlight et XNA sont les deux technologies de développement supportées par Windows Phone 7. Silverlight est le framework qui sera utilisé pour le développement de la majorité des applications, XNA étant dédié au développement de jeux. Cette couche fut donc celle qui fut donc quasi exclusivement présentée durant le keynote.

La version de Silverlight utilisée pour Windows Phone 7 est censée être la même que celle sur PC. Microsoft fait donc de tous les développeurs d’applications RIA et RDA basées sur Silverlight, des développeurs d’applications riches mobiles (RMA ? :)). En terme de capacité l’éditeur a donc mis l’accent sur le fait qu’il ne s’agit pas d’une version light de Silverlight mais bien de la version de Silverlight que l’on connait en terme de fonctionnalités. Nous pouvons ainsi voir par exemple l’utilisation de Smooth Streaming pour le développement d’un client vidéo Silverlight. Cette affirmation ne peut me semble pas toute à fait exacte puisque Silverlight pour Windows Phone semble être exclusivement destiné au développement d’applications out of browser. Je pense qu’il s’agit donc d’une implémentation quasi iso-fonctionnelle de Silverlight mais bien d’une version dédiée à Windows Phone.

Du côté environnement de développement, on se retrouve avec les outils de développement de Silverlight à savoir Microsoft Blend 4 et Visual Studio 2010. L’éditeur a inclus des styles par défaut afin d’avoir des applications qui s’intègrent nativement au look & feel de Windows Phone.

J’ai également noté la possibilité d’utiliser un écran PC multitouch afin de reproduire l’expérience multitouch du Windows Phone. Une fonctionnalité intéressante, espérons qu’elle soit également implémentée dans la prochaine version de l’émulateur de la table Surface.

La stratégie “3 screens and a cloud” concrétisée
Lors de la PDC 09 Microsoft a annoncé sa stratégie autour des 3 types d’écrans (PC, TV, Téléphones) et du cloud. Lors de ce keynote nous avons pu voir la concrétisation de cette stratégie grâce à Silverlight et XNA. La même version d’XNA permet en effet de développer des jeux pour Windows Phone, PC et XBOX. Quant à Silverlight, il est actuellement possible de développer des applications pour Windows Phone, pour PC (in/out of browser) et pas encore pour TV (bientôt un Silverlight pour Media Center pour remplacer MCML ?)