Revue du web .NET du 26 octobre
Les tweets de la semaine
http://twitter.com/malovicn/status/5146535929 : Visual Studio 2010 est encore en beta mais certains l’ont déjà adopté et renié son ancêtre. La sortie est prévue pour mars 2010 mais la licence “GoLive” est déjà active.
http://twitter.com/Meligy/statuses/5106560381 Un des développeurs de NHibernate, Ayende Rahien a lancé une offre commerciale autour du framework : un logiciel de “profiling”, un site de support et maintenant des vidéos. Une preuve que la communauté Open Source en .NET commence à changer de visage pour acquérir plus de maturité.
La question Stackoverflow
http://stackoverflow.com/questions/308954/how-to-make-a-method-to-return-random-string-in-the-format-a1a-1a1 Comment générer des mots aléatoires est une question sans fin, ici un début de réponse avec John Skeet “himself”
Actualités Microsoft
Un mois avant la PDC Microsoft a mis à disposition une nouvelle version beta de son environnement de développement au sens large : .NET Framework, Visual Studio 2010 et Team Foundation Server. On pourra consulter ces liens pour avoir un résumé des nouveautés:
- la série de billets par Scott Gutherie sur VS2010 :
http://weblogs.asp.net/scottgu/archive/2009/08/25/vs-2010-and-net-4-series.aspx
- Patrick Smacchia, analyse les différences entre la beta 1 et la beta 2 :
- Le blog de l’équipe de la Base Class Library qui décrit les nouvelles méthodes et types :
Si vous n’avez pas le temps de télécharger et installer les logiciels vous pouvez parcourir les présentations fournies dans le “training kit :
Actualités Alt.NET
Le “Domain-Driven Design” est une approche qui a connu un succès de plus en plus confirmé dans la communauté .NET et en particulier dans le mouvement Alt.NET. Popularisé par le livre éponyme d’Eric Evans, cette démarche met en avant le langage universel (ubiquitous language) qui représente les concepts du domaine métier partagés par les équipes de développement et les experts métiers. On arrive ainsi à éviter les frictions entre les deux équipes et d’obscurcir le modèle avec des détails d’implémentations.
Outre ce langage commun on y rencontre aussi des notions comme les entités et la notion d’identité, les services, les référentiels, les fabriques etc..
Le site “DDD step by step” se propose d’agréger du contenu autour de DDD, on y trouvera un wiki, des liens et un livre électronique résumant les bonnes pratiques autour de la conception pilotée par le domaine.N’oubliez pas de souscrire au groupe de discussions pour poser”vos questions ou participer.
De l’autre côté
Une série de billets sur le cache : les performances, les types, les implémentations et une comparaison des librairies Java comme ehcache, JBoss cache etc…
Un projet
NServiceBus est un projet open source qui offre un bus pour la plateforme .NET. Utilisant MSMQ comme Transport, il a une configuration relativement simple :
- le serveur :
1: public class MessageEndpoint : IConfigureThisEndpoint,
2: ISpecify.ToUseXmlSerialization,
3: As.aServer
4: {
5: }
Le projet utilise Spring.NET comme container mais il est possible d’utiliser une autre implémentation comme Unity ou StructureMap.
Les messages utilisent les attributs pour configurer leur persistance (ici un message non persisté):
1: [Express]
2: public class EmailVerification : IMessage
3: {
4: public Guid? ActivationKey { get; set; }
5: public string Email { get; set; }
6: public string UserName { get; set; }
7: }
Et l’envoi se fait via les méthodes Publish ou Send :
1: Bus.Send((m) =>
2: { m.ActivationKey = member.ActivationKey;
3: m.Email = member.Email;
4: m.UserName = member.Username;
5: });
Enfin les messages sont traités par des handlers que NServiceBus détecte au démarrage du serveur (ou via une base de données à travers NHIbernate) :
1: public class EmailVerificationHandler : IMessageHandler
2: {
3: private ILog logger =
4: LogManager.GetLogger(typeof (EmailVerificationHandler));
5:
6: public void Handle(EmailVerification message)
7: {
8: (…)
9: }
10: }
NServiceBus est aussi doté de fonctionnalités pour coordonner plusieurs échanges de messages (corrélation, timeout, transaction longue) avec le concept de Saga.
Billet publié dans les rubriques Programmation le