Olivier COURTOIS

.NET en général

Linq 2 Sql bon à jeter

[EDIT] : Un autre lien pour mieux comprendre en quoi l'annonce de la team ADO.NET signifie la fin de Linq2Sql et comment celui ci pourrait évoluer par la suite. Cela se passe à cette adresse:  http://codebetter.com/blogs/david.hayden/archive/2008/10/31/linq-to-sql-is-dead-read-between-the-lines.aspx 

Voici une information que je me permet de transmettre : Linq2Sql est sur la fin… Pour vous en persuader je vous conseille le billet de Patrice Lamarche à ce sujet.

  • 0 Comments
  • Filed under: Dotnet
  • [EDIT] : Un autre lien très intéressant sur Windows Azure à voir sur le blog de Mary Jo Folley.

    Pour ceux qui n'auraient pas pu assisté au premier keynote de la PDC soit car ils n'étaient pas à LA soit car ils n'étaient pas devant leur pc (je rappelle que comme en 2005 vous pouvez voir toutes les sessions via le site), voici un bon résumé des de l'annonce principale : Windows Azure.

    Première partie (définition du cloud) et seconde partie (Windows Azure).

  • 0 Comments
  • Filed under: Microsoft
  • Rendre BlogEngine.NET multiblog (première partie)

    blog 

    Ce n'est un secret pour personne mais à l'heure actuelle le meilleur moteur de blog : gratuit, opensource et écrit pour .NET est BlogEngine.NET (ci-après dénommé BE.NET). C'est d'ailleurs le moteur que j'utilise pour héberger mon blog comme expliqué dans ce billet. Je trouve ce produit plutôt bien pensé et son architecture est un exemple à suivre. Sans compter qu'il présente les avantages de l'opensource : être très utilisé par une large communauté et très souvent maintenu par des gens compétents.

    Cependant pour un besoin professionnel j'aurais voulu trouver une plateforme de blogging qui me permette simplement de créer, administrer et héberger de mutiples blogs. A l'exception de CommunityServer qui ne propose plus ses sources et qui est payant il n'en existe pas à ma connaissance. Mais attention tout n'est pas perdu puisqu'il existe des solutions pour rendre BE.NET multiblog.

    Sachez tout d'abord qu'il est prévu que BE.NET devienne officiellement, "un jour", multiblog. En effet il existe un workitem n°2716 en date du 24 juin 2007 qui a totalisé plus de 140 votes. De plus cette fonctionnalité est inscrite dans la roadmap. Malheureusement autant dire que celle-ci n'est pas prête de voir le jour car après un an de développement Roman D. Clarkson est loin d'avoir finit comme il l'a confié à Daniel Frost. En effet ce développeur travaille sur la fonctionnalité uniquement pendant son temps libre.

    Avant d'aller plus loin listons les quelques fonctionnalités essentielles qui manquent à BE.NET pour un horizon multiblog :

    1. La prise en compte du multiblogging dans la réécriture d'url que ce soit via des urls de la forme :
      • http://blogs.dotnet-france.com/monblog/
      • ou http://monblog.dotnet-france.com/
    2. Une prise en compte des différents blogs dans le stockage (et la restitution) des informations : auteurs, billets, pages, paramètres, etc…
    3. Une interface d'administration permettant de centraliser la gestion des comptes utilisateurs et des blogs (CRUD, paramètres globaux,etc…).
    4. Et enfin une fonctionnalité moins essentielle mais plutôt pratique : une page d'aggrégat des billets de tous les blogs du système avec possibilité de syndication.

    Alors quelles solutions s'offrent à nous (ou, quelles solutions ai-je envisagées) ?

    • J'ai tout d'abord pensé à développer une extension pour BE.NET. En effet depuis la version 1.2 il est possible de développer sa propre classe que l'on place dans le dossier App_Code/Extensions et qui doit être décoré avec l'attribut "Extension(…)". Ensuite il vous suffit de vous abonner aux différents événements que l'application vous propose, en vrac : Post.Serving, Page.Serving, etc… Cependant lorsque vous êtes une extension vous êtes très logiquement en fin de chaîne des traitements. Par conséquent il est impossible de modifier le fonctionnement en profondeur de BE.NET. (Oui je sais c'est une conclusion logique mais j'estime qu'il n'était pas superflu de creuser cette voie avant de prendre une décision, puis cela m'a donné des idées d'extensions).
    • La seconde solution que j'ai envisagé n'est ni plus ni moins que d'entreprendre ces fameux changements en profondeur moi même. J'y ai travaillé toute une semaine avant de me rendre compte qu'il n'était pas judicieux d'opter pour cette solution. En effet l'architecture BE.NET est absolument pensée pour un seul blog. L'illustration la plus frappante de cette vérité est le nombre de membre statiques dans les classes. Par exemple lorsque vous voulez avoir accès à toutes les catégories du blog, l'appel se fait via une propriété statique Categories. Par conséquent si vous voulez isoler celle-ci par blog il faut que la propriété devienne membre d'instance. Mais si vous opérez ce changement vous vous exposez à plus de 200 changements dans le reste de l'applicatif. Ce qui signifie : beaucoup de temps de travail, voire beaucoup de perte de temps, et la perte totale de l'intêret de BE.NET, à savoir sa fréquence de mise à jour… Cette règle étant appliqué à tous les objets business voyez par vous même le nombre de changements que cela implique ! C'est à ce moment que j'en suis arrivé à la conclusion que je faisais fausse route vu l'ampleur du travail que ces changements allaient demander.
    • Au final je me suis intéressé à la solution la moins satisfaisante mais la plus rapide qui fut d'abord proposé par Roman D. Clarkson puis par Daniel Frost. Cependant je décrirais celles-ci dans mon prochain billet. 

     

    Pour en savoir plus :

     

    A venir :

    • Rendre BlogEngine.NET multiblog (deuxième partie).
  • 1 Comment
  • Filed under: Dotnet
  • choices

    Comme vous allez le remarquer bien assez tôt je suis un adepte des technologies de développement Microsoft. Et ce depuis l’avènement de .NET. De fait lorsque j’ai cherché à ouvrir mon blog l’un de mes pré-requis était de trouver une plateforme écrite pour .NET. Je le précise tout de suite car il n’y a aucune autre raison rationnelle à ce choix (moui enfin, mis à part la possibilité de modifier le fonctionnement facilement). Donc pas la peine de poser la question :)

    Par conséquent voici la liste (non exhaustive) des plateformes auxquelles je me suis intéressé avant de faire mon choix :

    Je ne rentrerai pas dans la matrice des fonctionnalités de chacun des produits mais pour autant je vais aborder les points noirs qui m’ont mené à préférer BlogEngine.NET aux autres.

    Subtext est l’une des premières plateformes de blogging ASP.Net. A l’origine elle fut développée pour combler le manque laissé par l’arrêt du projet opensource .TEXT (racheté par Telligent et qui servit de base à CommunityServer). Cependant ce produit est quelque peu tombé en désuétude d’où une communauté d’utilisateurs moins importante et un manque de fonctionnalités. Je n’ai pas retenu DasBlog pour des raisons similaires. Bien qu’il s’agisse d’un produit plus riche en fonctionnalités.

    Nous en venons au produit le plus complet de la liste : Community Server. C’est un produit si riche fonctionnellement qu’il est le seul à se rapprocher d’un outil de CMS tel que Wordpress, bien qu’il reste un peu de chemin à faire. A ce niveau des explications on pourrait se demander pourquoi ce n’est pas la solution pour laquelle j’ai opté ?! C’est précisément car il est trop riche fonctionnellement que j’ai choisi de ne pas utiliser ce produit. Car s’il y’a bien une chose que j’ai appris ces 3 dernières années en travaillant dans différentes entreprises c’est à répondre le plus justement à un besoin. Ni trop ni pas assez. Or CommunityServer offre trop de services pour mon utilisation. Sans compter qu’il s’agit d’un produit payant dont la version gratuite est limitée et contraignante (affichage d’un logo sur toutes les pages).

    Au final il ne reste plus que BlogEngine.NET. Mais attention contrairement à ce que l’agencement de ce billet pourrait laisser croire ce n’est pas un choix par dépit. Il s’agit véritablement d’un bon produit, bien pensé et très riche fonctionnellement. Il présente l’avantage d’être pile ajusté à mon besoin et très suivi par une communauté d’utilisateurs et de développeurs. Bien que son architecture ne soit pas du tout flexible pour un horizon multi blogs. Mais ceci fera l’objet d’un prochain billet.

    J’espère avoir pris en compte toutes les plateformes de blog .NET avant de faire mon choix. Toutefois si ce n’était pas le cas je vous invite à me le dire dans les commentaires.

  • 3 Comments
  • Filed under: General