Register Login

 

Welcome to the Coach Factor blog. Here you will find all of our ideas on software development. Subscribe at  http://blog.nventive.net.

# Monday, March 29, 2010

Les tweets de la semaine

http://twitter.com/marktucker/statuses/10890277413 l’extension à l’oeuvre dans Blend avec MEF

http://twitter.com/MWillemse/statuses/10892517988 Si WCF était un monstre de jeu de rôle, on perdrait 20 points de santé mental rien qu’en le voyant

http://twitter.com/kmckelvin/statuses/10972370963  C’est beau et c’est utile. Le vectoriel a une place dans les applications métier finalement.

La question Stackoverflow

http://stackoverflow.com/questions/2285045/what-scalability-problems-have-you-solved-using-a-nosql-data-store on vous parlait la semaine dernière de db4o, une des applications souvent citées dans le mouvement NoSQL (même si strictement parlant elle se trouve plutôt à la marge). Voici une question comme on les aime : les réponses proviennent de projets réels où l’utilisation d’une base de données non relationelle fait du sens.

Actualités Microsoft 

Quand on parle des trois W dela version 3 de .NET tout le monde arrive à citer WPF et WCF mais on oublie souvent Windows WorkFlow. Dans ce billet Soma Segar essaie de donner un peu de visibilité à la version 4 de l’API qui n’a rien à voir avec la version 3.

Le designer a été ré-écrit en WPF ce qui pourra sans doute améliorer son intégration dans des applications tiers, la définition de processus étant souvent un travail effectué par une personne loin de savoir manipuler Visual Studio (et le code). Les workflow sont aussi définis en XAML (une porte ouverte pour des outils externes ?). Un nouveau type de process existe : FlowChart qui expose des process pouvant connaître un retour en arrière et/ou des conditions simples comme le switch ou decision.

Le modèle de programmation a été simplifié : fini l’obligation d’avoir un runtime pour exécuter un workflow, ceci peut se faire plus facilement notamment dans les tests. Enfin l’intégration avec WCF a été aussi revue avec de nouvelles activités pour interagir avec un service (dont une gestion de la corrélation de plusieurs messages) et une configuration plus déclarative.

Le designer en mode “hosté” :

le designer de WF en mode hosté

 

Actualités “Alt.NET”

Décidémment Mono fait beaucoup parler de lui en ce moment. Mais cette fois-ci ce n’est pas technique. Etant à l’intersection des mondes Open Source Linux et de Microsoft il y a parfois des frictions des deux bords comme par exemple quand Miguel de Icaza a reçu le titre de MVP ou quand Mono a été inclu dans les package de base de Ubuntu. Aujourd’hui c’est encore une nouvelle qui est allée trop vite : une allégation d’un article du SD Times sur une déclaration du leader du projet sur la gestion par Microsoft de la communauté.NET. L’interessé a éclairci les choses dans un billet très intéressant. Il reconnaît que Microsoft fournit avec le .NET framework un produit excellent mais regrette qu’il est fermé la porte à une plus grande communauté quand Java avec la fondation Apache par exemple offre un choix d’outils, frameworks plus grands . Dans un dernier point il dit avoir espoir car la nouvelle équipe aux commandes de Microsoft a déjà changé pas mal de choses avec les projets comme ASP.NET MVC, le changement de licence sur certaines parties du framework ou encore la nouvelle fondation codeplex.org.

De l’autre côté 

Adobe a publié cette semaine une nouvelle version de ses outils de développement Flex Builder renommé Flash Builder. La quatrième incarnation de l’IDE RIA est toujours basée sur Eclipse. Cette publication coïncide aussi avec le SDK – gratuit et open source- Flex SDK.  Flash Catalyst le nouveau outil de design permet de profiter du nouveau système de composants (Spark) en exportant des designs vectoriels vers un format compatible de Flex. Les composants ont donc leur comportement séparé de leur rendu (penser au couple Button.cs et Themes\generic.xaml en WPF).

Flex est basé sur un langage déclaratif XML pour définir son interface utilisateur (MXML) et ActionScript comme langage de programmation. Un autre langage existe (FXG) qui rend compatible des artefacts créés dans d’autres outils d’Adobe. La plateforme a enrichi son databinding aussi en rendant plus facile la définition de databinding bi-directionelle.

Outre les nouveautés de l’outil comme une meilleure génération (getter, setter, event handler), la possibilité d’ajouter des breakpoints conditionnels.

Un projet

Reactive Extensions (Rx) est un projet de devlabs chez Microsoft qui a connu une certaine notoriété car Erik Meijer, le créateur de Linq, fait partie de l’équipe à l’origine de cette nouvelle API. Il est apparu d’abord dans Silverlight puis a été promu dans le framework et enfin une version pour Javascript est apparue après la conférence MIX10.

Rx se propose de simplifier le modèle de programmation asynchrone et événementielle en renversant la relation que nous avons d’habitude entre une série d’appels ou d’évènements et les fonctions de callbacks associées. Pour cela il utilise un patron de conception connu : Observable/Oberserver et l’applique aux Collections. Si on décompose le concept cela donnerait cet enchaînement : un évènement donné (MouseOver) peut-être vu comme une série (une collection) et cet ensemble peut être observé. A chaque fois qu’une nouvelle instance est créée (un mouseover x y) i.e. un élèment ajouté, le sujet (l’observé) appelle la fonction OnNext sur les observeurs. Certains l ‘appréhendent aussi comnme le relation inverse de l’énumerator où c’est votre code qui va chercher un par un les élèments de la collection. Rx expose aussi OnError pour gérer les cas d’erreur et Completed pour être prévenu lorsque le sujet n ‘est plus.

L’installation par un package msi fournit un fichier de documentation des classes et une page html d’exemple. On y trouve une version pour ScriptSharp et une version Javascript (sans intellisense pour Visual Studio pour le moment) :

Rx Installer

Les fichiers installés pour la version Javascript :

Installation

Il faut aussi passer par un petit hack si on veut la complétion automatique dans Visual Studio (en espérant que cela soit résolu pour la version finale).

Voici un exemple sur l’évènement click où à chaque occurence nous imprimons dans une div les coordonnées :

//element cible
var element = $("#maDivClickable").get(0);
//observable à partir de l'élèment et de l'event
var observable = Rx.Observable.FromHtmlEvent(element, "click");
//ajout d'un observer
 observable.Subscribe(function (clickEvent) {
      var result = $("#resultat");
      result.html("vous avez cliqué à la position : " 
            + clickEvent.clientX + " , " + clickEvent.clientY);
 });

le rendu de l'exemple

Rien de vraiment particulier mais Rx contient quelques méthodes bien pratiques comme Throttle(dueTime) qui permet de réguler les cliques successifs par exemple en fixant une limite minimale avant de relancer un autre event :

observable.Throttle(1000).Subscribe(..)

ou Skip(1).Zip(prev, next) par exemple pour recevoir l’avant-dernière et la dernière valeur ou SkipUntil() pour utiliser une condition.

Avant de s’intégrer facilement avec les API “Web 2.0” Rx fournit une méthode pour faire des appels asynchrones successifs et transformer les résultats en sujet/observable :

Rx.Observable.XmlHttpRequest(url)

Matthew Podwysocki a écrit une série très intéressante sur Rx pour Javascript et ses usages.

Monday, March 29, 2010 2:00:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0] -
.net | Revue du Web
# Monday, March 22, 2010

Les tweets de la semaine

 http://twitter.com/Mix10French/status/10577773952 quand on vous dit que c’est une version “developper preview”

http://twitter.com/MSDN_Forum/statuses/10613210551 chercher des failles potentielles de sécurité à travers le code décompilé de composants.

http://twitter.com/snaveen/status/10544872113 tracer des informations de bas niveau en Silverlight, attention “hack ahead”

La question Stackoverflow

http://stackoverflow.com/questions/2461319/c-inconsistent-math-operation-result-on-32-bit-and-64-bit on pensait ne plus avoir à tenir compte des différents machines quand on développe … sauf dans certains cas. Une réponse par Eric Lippert, un des designer de C#. On pourra consulter une autre réponse plus précise.

Actualités Microsoft 

La conférence MIX10 a bien tenu ses promesses :

  • Silverlight 4 en release candidate :  Visual Studio 2010 RC est enfin compatible avec cette version.
  • Silverlight (sans nom  mais c’est une version mini entre le 3 et le 4) pour le future système d’exploitation des Windows Phone Series 7 avec un site web dédié, des outils gratuits en beta et déjà pleins de clients Twitter en préparation
  • Une version preview de Internet Explorer 9 qui montre le support de HTML 5, CSS3, le nouveau moteur Javascript
  • Microsoft annonce aussi une contribution plus importante dans jQuery (après l’ajout dans Visual Studio et certains templates) : contribution de code et de ressources de tests. Que devient ASP.NET AJAX ? Les réponses de Microsoft ne sont pas rassurantes pour le projet.
  • OData, le protocole de Astoria-ADO.NET Data Servcices-WCF Services (vous êtes toujours là ?) se voit doter d’un SDK. On sait aussi que SharePoint et SQL Server Reporting services exposeront leur contenu via OData. Mais le catalogue des données publiques se construit aussi avec Netflix, Nasa, l’ONU etc.

Avec ce billet de Scott Hanselman on peut avoir l’essentiel des liens officiels, on attendra quelques jours pour avoir le retour de la communauté.

Actualités “Alt.NET”

On connaisait Mono sur linux depuis plusieurs années. Souvent considéré plus comme une preuve de concept plus qu’un vrai runtime, les versions se sont succédées et commencent à trouver une place dans un mouvement plus vaste. Là on trouverait une architecture .NET “classique” avec par exemple ASP.MET MVC, Unity, Entity Framework sur un Windows Server 2008, l’alternative Linux (Mono, Ninject, FubuMVC, NHibernate) n’est plus un concept. Mais c’est vraiment du côté du développement mobile que Mono nous a surpris avec MonoTouch, l’environnement .NET pour des applications iPhone/iPod Touch/iPad. Novell récidive avec Androïd : MonoDroid.

De l’autre côté

Certains essaient de nous convaincre que maintenant il est préférable d’utiliser un serveur d’application “full fledge” comme JBoss ou GlassFish plutôt qu’un serveur Tomcat “tuné”. Il est vrai que le temps des containers EJB2 où les applications J2EE prenaient du temps à se déployer (en plus du développement pas facile) est bien loin. JBoss et GlassFish font partis de ces produits qui ont fait table rase du passé afin de proposer un container qui offre les mêmes services mais de façon plus “agile”. DZone fait un très bon résumé du nouveau stack de référence Java EE6 dont le package “web”. 

Un projet

Il n’est pas facile de tester les interfaces utilisateurs. TDD a bien révolutionné la façon de coder (et de tester) notre code de composant (quel est son contrat externe, qu’est-ce que j’attends en entrée, quelle sont les cas passants, non passants etc.) mais s’attaquer à la couche de présentation avec les outils de tests unitaires n’est pas le plus approprié d’après Steve Sanderson. Dans ce billet il présente SpecFlow un framework de BDD pour .NET avec une application ASP.NET MVC.

L’intégration dans Visual Studio via le plugin (2008 et 2010) semble bien faite. Les fichier .features contiennent les spécifications de test :

les fichiers de tests

Si on prend pour exemple le test “browsing”  avec un breakpoint:

exemple de breakpoint

SpecFlow génère une dll de test NUnit que vous pouvez utiliser pour générer les squelettes de vos “steps” de votre test en C# :

géneration des steps

Ici compléter avec le framework WatiN pour simuler le navigateur :

implémentation des test en C#

On peut alors rejouer les test dans NUnit ou avec votre plugin VS préféré (en mode administrateur) :

pass

Monday, March 22, 2010 1:00:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0] -
.net | Revue du Web
# Monday, March 15, 2010

Les tweets de la semaine

 http://twitter.com/gpoune/statuses/10182612504 ah le monde déconnecté :) la consultation de ce document sur la gestion viewstate en ASP.NET est en soit un rappel des difficultés du monde web

 http://twitter.com/marcjohnson/statuses/10190244953 QCon a toujours eu une bonne réputation, on en reparle dans un instant

 http://twitter.com/TigerHasse/statuses/10361767261 les nouveaux jouets pour architectes dans Visual Studio 2010

La question Stackoverflow

 http://stackoverflow.com/questions/2432281/get-sum-of-two-columns-in-one-linq-query On est toujours étonné par la puissance de Linq pour ces petites requêtes de la vie de tous les jours, on en serait où si on avait pas l’opérateur FirstOrDefault() ? La réponse la plus adaptée utilise un opérateur peu utilisé : le groupby.

Actualités Microsoft 

Après avoir lancé son offre commerciale autour des technologies “cloud” sous le nom Azure au mois de janvier dernier, Microsoft la complète maintenant avec une offre “serveur d’application”: Azure App Fabric. Cette dernière vient rejoindre Windows Azure (offre “computing” simple avec des rôles web et/ou services et un stockage non relationnel) et SQL Azure (base de données relationelle).

AppFabric se décompose en deux grandes fonctionnalités :

Un Bus de services pour permettre à des applications d’entreprises (souvent derrière des pare-feux) de communiquer via Azure :

diagramme ServiceBus

et un composant de gestion d’identité ou fédération et y associer des règles d’accès :

AccessControl

On trouvera aussi les prix associés dans ce billet. Un SDK est publié.

Actualités “Alt.NET”

QCon est une conférence (une édition à Londres et l’autre en Novembre aux USA) sur le développement informatique organisée par InfoQ, un site d’ínformations sur le monde de l’informatique de l’entreprise (un theserverside.com des années 2000 pour les plus anciens d’entre nous). Ce qui distingue QCon des autres conférences ce sont  la qualité des présentateurs et les sujets sur des technologies, méthodes innovante et/ou sur des questions d’architectures peu discutées autre part. On y trouve des classiques Robert C. Martin mais aussi des sessions sur des architecture atypiques comme Skype ou Facebook,  ou des technologies en particulier (comme .NET). La liste des tracks en elle-même est assez alléchante.

De l’autre côté

http://highscalability.com/blog/2010/2/8/how-farmville-scales-to-harvest-75-million-players-a-month.html

Vous avez tous vu dans votre flux de nouvelles sur Facebook ces messages d’amis qui ont eu telle ou telle récompense dans le jeu FarmVille. Luke Rajlich réponds ici à quelques questions sur la façon dont on rend disponible une application web utilisée par 75 millions d’utilisateurs. Le jeu a un ratio de lecture/écriture très différents d’une application web classique où les utilisateurs passent plus de temps à lire (site de journal par exemple) qu’à écrire (laisser un commentaire). On y apprend que l’utilisation de cache est primordiale (classique dans ce genre d’architecture mais ici ils doivent aussi mettre en cache les données de Facebook), de considére chaque composant (Facebook, les SGBD, le serveur de cache) comme un point de latence et de pouvoir les isoler en cas d’incident.

Un projet

Les bases de données relationelles ont la vie dure en ce moment (voir le mouvement NoSQL) mais est-ce dire que c’est au bénéfice des bases de données orientées objets ? Un de systèmes OODBMS qui connaît un certain succès est db4o de Versant. La version .NET fournie un plugin d’administration pour Visual Studio 2005 et 2008 :

la manager db4o dans visual studio

Le moteur peut s’utiliser en local (fichier) ou pour une connection à un serveur :

IObjectContainer db = 
Db4oEmbedded.OpenFile(Db4oEmbedded.NewConfiguration(), YapFileName);

IObjectContainer sera notre UnitOfWork pour dialoguer avec la base de données (il fournit ainsi les méthodes pour le Commit ou le RollBback) pour  :

- Insérer des données :

Pilot pilot1 = new Pilot("Michael Schumacher", 100);
db.Store(pilot1);

- Retrouver des données :

IList<Pilot> result = 
        db.Query<Pilot>(p => p.Name == "Michael Schumacher");

- Mettre à jour :

IObjectSet result = db.QueryByExample(new Pilot("Michael Schumacher", 0));
var found = (Pilot)result.Next();
found.AddPoints(11);
db.Store(found);

Les classes sont des POCOS.

Un founisseur Linq existe (bien qu’il souffre de certaines limitations du fait qu’il traduit les requêtes en un langage interne, SODA) :

IEnumerable<Pilot> result = from Pilot p in db
                            where p.Name.StartsWith("Michael")
                            select p;

Pour gérer la profondeur en mise à jour et en lecture (opérations en cascade et lazy-loading) on doit modifier la configuration par défaut qui ne cascade pas les mises à jour sur les types référence :

IEmbeddedConfiguration config = Db4oEmbedded.NewConfiguration();
config.Common.ObjectClass(typeof(Car)).CascadeOnUpdate(true);

En plus des propriétés de types primitifs (string, int etc.), les références sur Car seront mises à jours (Pilot par exemple). Pour la lecture la profondeur par défaut est de 5 niveau, on peut modifier ce paramétrage : c’est le concept d’Activation dans db4o. Pour rendre systématique ce processus vos classes doivent implémenter une interface (IActivatable) ou vous devez activer faire cette décoration au moment de la compilation via une tâche MSBuild ou en utilisant l’outil fourni par db4o.

Les concepts objet comme l’héritage sont bien sûr supportés. Il existe un langage bas niveau pour requêter (SODA) mais il est assez verbeux et repose beaucoup sur les chaînes de caractères. On utilisera plutôt Linq ou le langage natif de requête (en plus du requêtage par exemple déjà vu ) :

var result = db.Query<Pilot>(pilot => pilot.Points > 99
		                  && pilot.Points < 199
		                  || pilot.Name == "Rubens Barrichello");

 

Une version silverlight existe en beta. On pourra consulter le compte github de James Hicks pour avoir des exemples d’applications utilisant db40 : une abstraction de db4o à travers le concept de Session, une application avec une implémentation du pattern CQRS-Event Sourcing et l’utilisation de db4o avec NServiceBus.

Monday, March 15, 2010 2:00:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [2] -
.net | Revue du Web
# Monday, March 08, 2010

Les tweets de la semaine

 http://twitter.com/rcravens/status/9824210272 Hudson est un serveur d’intégration continu (et populaire), si vos poches ne sont pas assez profondes pour TFS, Hudson peut être une bonne alternative.

http://twitter.com/craighead/statuses/9837013687 Java vs C#, maintenant en version Robots

http://twitter.com/UdiDahan/status/9858485324 on en parlait dans notre première revue du web : NServiceBus passe en version 2

http://twitter.com/gruuf/statuses/10073663444 un sondage autour des frameworks d’inversion de contôle / injection de dépendances dans le monde .NET

La question Stackoverflow

 http://serverfault.com/questions/45516/recommended-logparser-queries-for-iis-monitoring Nous allons faire un petit tour sur serverfault.com cette semaine. Ce dernier est la première spin-off de SO (il existe une version en marque blanche même). On y trouve des questions sur la gestion des systèmes informatiques en général : installation serveur, les systèmes d’exploitation, les bases de données etc. La question de la semaine énumère des requêtes possibles contre les fichiers de log de IIS : fichier le plus demandé, user-agent le plus présent etc. Nécessaire quand on a fini sa belle application et qu’on la rend disponible sur le grand Interweb.

Actualités Microsoft 

Les MVP se réunissent chaque année sur le campus de Microsoft, dans cet article Dzone fait un résumé. Ce qui est toujours surprenant c’est que cet évènement réuni des centaines de participants mais qui sont tous rendu nuets par un accord de non divulgation (les fameux “NDA”). En attendant MIX approche et Microsoft confirme du bout des lèvres que la migration vers Windows Phone 7 ne sera pas possible pour les téléphones actuels. On pourra consulter la liste des sessions consacrées au nouveau système d’exploitation.

Actualités “Alt.NET”

Le groupe Alt.net virtual européen organise un session spéciale  le 6 avril 2010 sur le mouvement “Software Craftsmanship”avec du beau monde. On pourra aussi écouter la série de podcast “Ignite your coding” organisée par le groupe d’évangélistes de Microsoft Canada dont le premier invité est Andy Hunt, co-auteur du livre The Pragmatic Programmer.

De l’autre côté

Flash, la descente aux enfers continue. L’enfant chéri des années 2000 n’en finit plus d’être traité comme le nouveau vilain. Après avoir révolutionné l’accès aux contenus vidéos puis connu une percée significative dans le monde des applications d’entreprise avec Flex, la technologie est maintenant vue comme un handicap. Tout cela provient du succès de l’íPhone qui a accentué les défauts du runtime propriétaire. Il est  ironique de voir Apple qui a dû founir un SDK natif car les applications web n’étaient pas suffisantes faire “cause commune”avec les défenseurs du standard HTML contre Flash. The Register rapporte que Virgin America abondonne Flash pour HTML dans ses sites internet (70 % du revenu). Il est intéressant toutefois de remarquer que Flash restera utilisé dans les systèmes comme les kiosques “Touch Screen ”dans les aéroports. Finalement on revient aux basiques : un internet standard pour du contenu à destination d’appareils multiples (navigateurs différents avec des plateforme différentes) et des frameworks plus puissants pour des applications en environment plus contrôlé.

Un projet

Shazzam est un outil pour générer des Pixels Shaders. Le code source est disponible sur codeplex. Il existe des bibliothèques d’effets 3D existants mais cet outil vous permet de générer le code pour vos propres créations. Basé sur HLSL (High Level Shading Language) Microsoft vous permet d’ajouter des directives de transformations de pixels et un compilateur DirectX permet de générer le code machine nécessaire. Il suffit d’un wrapper C# pour les utiliser ensuite dans vos applications. Après avoir installé l’utilitaire et le SDK DirectX vous pouvez modfiier le code des effets via le langage HSLSL :

HLSL

Ici l’effet bloom est appliqué sur une image de test :

image

Le code C# généré expose les Dependecy Properties qui vont bien pour paramétrer les effets :

ShaderGenerated

Monday, March 08, 2010 3:00:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0] -

# Monday, March 01, 2010

Les tweets de la semaine

 http://twitter.com/loiane/statuses/9694669388 Travailler pour la NASA en programmant du Silverlight.

http://twitter.com/veryfancy/statuses/9582184256 On utilise régulièrement System.Uri sans vraiment y faire attention, voici un petit rappel de son contenu

http://twitter.com/dataartist/statuses/9575476761 une requête Linq peut compliquer le code

La question Stackoverflow

 http://stackoverflow.com/questions/2346394/should-i-use-byte-or-int Pouquoi utilsier un type int plutôt qu’un byte (ou un short) ? Un dilemme entre performance (ou sur-optimisation) et sémantique.

Actualités Microsoft 

Avec la dernière version de Visual Studio (2010 RC) on peut dire que le développement WPF/Silverlight est devenu une expérience plaisante. Le mode prévisualisation fonctionne pour les deux technologies et l’intellisense autour des expressions de binding a été améliorée. Mais une des nouveautés intéressantes réside dans le support au design time des types d’objets bindés aux contrôles. Les propriétés du namespace d: permettent de spécifier des valeurs ignorées au moment de la compilation et donc du runtime. On les connaît déjà pour la hauteur et la largeur des UserControl. Karl Shifflett introduit d:DataContext et d:DesignInstance qui permet de spécifier son type pour ensuite voir les propriétés dans les boîtes de dialogue de databindig.

En parlant de Silverlight, la prochaine que vous en faites une démo et que tout le monde baille, montrer cette vidéo de Bing à la conférence TED par Blaise Aguera y Arcas (aux alentours de 4:45) :

image de la vidéo montrant un prototype de réalité augmentée avec Visual Studio

Oui c’est bien une “House View” à l’intérieur d’un bâtiment avec un flux direct de vidéo en sur-impression. Street View est tellement 1996.

Actualités “Alt.NET”

On connaît tous NHibernate ce framwork de mapping objet-relationnel qui semble être là depuis toujours et même avant si on considère sa version Java. Il fait aussi parti des projets phares dans le monde .NET car il est un des premiers  projets open source ayant un grand succès. Son développement a été financé dans le passé par  la passion de certains développeurs, des entreprises ont aussi donné du temps de développent par exemple sur le founisseur Linq.

Voux pouvez faire un don directement en cliquant sur ce lien :

Click here to lend your support to: NHibernate and make a donation at www.pledgie.com !

De l’autre côté

Pour envoyer des messages entre systèmes on connaît MSMQ (Microsoft Message Queuing). Un des équivalents dans le monde Java est JMS (Java Message Service), un standard implémenté par différents produits dont les plus connus sont IBM MQ, TibCo. Dans ce billet Xebia nous introduit à AMQP (Advanced Message Queuing Protocol). Ce protocole initié par JP Morgan se concentre sur la performance et propose les différents cas d’utilisation d’un systèmes de messages (Store and Forward, Point to Point etc). Les deux implémentations connues sont RabbitMQ en Erlang et  OpenAMQ en C++. La spécification 1.0 est attendue pour cette année et on apprend aussi que Microsoft a collaboré avec QPid (projet Apache autour de AMQP).

Un projet 

Enterprise Library va bientôt connaître une nouvelle version, la beta de la version 5 est déjà disponible et une beta 2 doit sortir le 15 mars pour une version finale attendue juste après la sortie de Visual Studio 2010. Dans le framework on trouve Unity 2, le framework d’injection des dépendances de Microsoft. Comme pour la version précédente il existe deux modes : par fichier de configuration ou par code. Le premier offre maintenant un outil (en WPF BTW):

outil de configuration de UNity

ajout d'un mapping

Mais Unity offre aussi une API fluent :

var container = new UnityContainer();
container.RegisterType<IRepository<>, Repository<>()
.RegisterType<IContactRepository, ContactRepository>();
Avec de nouvelles méthodes comme IsRegistered pour vérifier l’existance d’un mapping,

Les deux nouveaux lifetime managers (les objets qui déclarent quand instancier ou réutiliser une instance au moment de la résolution du type) sont HierarchicalifetimeManager (les containes enfants ne partagent pas les instances des containers parents qui sont singleton) et PerResolveLifetimeManager (même instance dans un graphe donné : mon IRepository est utilisé comme propriété à deux endroits différents dans deux objets liés à une instance construite par Unity, j’aurai la même référence pour une résolution).

Monday, March 01, 2010 3:00:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0] -
Revue du Web
# Monday, February 22, 2010

Les tweets de la semaine

 http://twitter.com/cadred/statuses/9242655924 une revue du web .NET quotidienne, elle va très bien avec le café du matin

http://twitter.com/romainverdier/status/8922567409 la conversion de delegate, Func<T,bool> == Predicate<T> ?

http://www.alexatnet.com/content/net-memory-management-and-garbage-collector un petit rappel sur le Garbage collector en .NET

La question Stackoverflow

 http://stackoverflow.com/questions/129453/net-eventhandlers-generic-or-no les bonnes pratiques officielles concernant les events en .NET peuvent être rébarbatives, cette question se concentre sur la classe représentant les arguments des évènements et sa version générique. 

Actualités Microsoft 

Windows Phone 7 Series a été annoncé, enfin les détails “grand publics”, concernant les développements il faudra attendre un peu : on parle d’une version de Visual Studio gratuite et dédiée pour le début de l’été et un environnement de développement autour de Silverlight ou XNA pour le jeux. En attendant voici un graphique intéressant qui donne la répartition des revenus de Microsoft selon les lignes de produits :

Actualités “Alt.NET”

On vous indiquait dans une édition précédente de la revue du web les présentations de SkillsMatter, celle de Udi Dahan sur Command Query Responsibility Segregation est maintenant en ligne : http://skillsmatter.com/podcast/open-source-dot-net/udi-dahan-command-query-responsibility-segregation/rl-311

De l’autre côté

 

Un projet 

 Auto-promotion

nVentive organise une série de bootcamps sur des sujets très variés comme WPF, TDD ou encore NHibernate.Tous ces ateliers sont orientés développement d’applications d’affaires et font une large place aux labs.

Voici une liste des formations et leur description plus complète.

Monday, February 22, 2010 3:00:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0] -
.net | Revue du Web
Search
Archive
<March 2010>
SunMonTueWedThuFriSat
28123456
78910111213
14151617181920
21222324252627
28293031123
45678910
Statistics
Total Posts: 98
This Year: 28
This Month: 1
This Week: 1
Comments: 17
Sign In