Revue du web .NET du 8 février

by matthieu 2/7/2010 8:00:00 PM

Les tweets de la semaine

http://twitter.com/pm5links/statuses/8498715256 on a tous utilisé Reflector au moins une fois dans notre vie de développeur .NET. La version PRO payante de RedGate est prometteuse

http://www.lesnikowski.com/blog/index.php/testing-datetime-now/ utiliser DateTime,Now dans du code semble inoffensive  jusuqu’au moment où vous écrivez votre test

 http://twitter.com/Saucerdk/statuses/8670557833 Symbian est devenu open source il y a quleques temps, on peut maintenant développer en .NET pour ce système d’explotation. Un peu trop tard ?

La question Stackoverflow

http://stackoverflow.com/questions/1704487/algorithm-to-flatten-peak-usage-over-time Comment répartir de façon égale une quantité dans un contenant subdivisble, voici une réponse qui fait intervenir une classe que nous connaissons tous mais utilisons peu : HashTable.

Actualités Microsoft 

Microsoft a présenté ses résultats financiers en ce début 2010, et Windows 7 en plus d’être un système d’exploitation fini et réussi apporte un souffle financier signatificatif à l’éditeur. Comme l’explique ArsTechnica  les 60 millions de copies vendues lors ce trimestre sont sans doute pour beaucoup dans l’augmentation de 14% du chiffres d’affaires de Microsoft par rapport à l’année précèdente. Mais cet éditorial dans le New York Times d’un ancien vice-président de Microsoft sur les problèmes internes qui empêchent de faire emerger des produits innovants va sans doute un peu assombrir le tableau.

Actualités “Alt.NET”

 Sharp architecture est un projet qui se propose de faciliter le développement d’architecture en couches avec NHibernate. Commencé après un article sur codeproject (il y a presque 4 ans !), le projet est maintenant une application à part entière avec son site internet et un forum très actif.

On pourrait penser que ce ne sont que des bonnes pratiques d’architectes sans réelle application dans la vraie vie mais dans ce billet Billy McCafferty (créateur du projet) présente des applications en production qui utilisent ce “framework” dont Fancy Dress Outfitters http://www.fancydressoutfitters.co.uk/ . Ils lancent une autre application didactique cette fois-ci mais qui utilise les mêmes outils qu’une application réelle : http://who-can-help.me/ dont le code source est disponible.

De l’autre côté

On parle design cette semaine ! La signature email, c’est un peu les sites web personnels, on a tout vu : le gif animé, les polices de caractères de couleur fluo ou qui changent à chaque syllabe sans parler de celles qui font 20 lignes et s’entassent lors des échanges. Smahing Magazine nous présente une étude détaillée et nous livre quelques bons conseils.

Un projet 

Fluent Migrator est issu d’une amélioration de Migrator.NET un outil pour migrer des données entre différentes SGBD mais surtout entre différentes version d’un schéma. La gestion de configuration des bases de données n’est pas chose aisée il est agréable de voir des outils pour y remédier.

En Migrator.NET on utilise des attributs pour versionner des actions à exécuter contre un schéma :

[Migration(20080805151231)]
public class AddCustomerTable : Migration
{
        public override void Up()
        {
                Database.AddTable("Customer",
                          new Column("name", DbType.String, 50),
                          new Column("address", DbType.String, 100),
                          new Column("age", DbType.Int32, 100)
                         );
        }
        public override void Down()
        {
                Database.RemoveTable("Customer");
        }
}

L'attribut peut contenir un numéro version avec un entier ou un timestamp. Les actions possibles sont varíées : clés étrangères, du code SQL pour un SGBD particulier :

[Migration(5)]
public class AddForeignKeyToTheBookAuthor : Migration
{
        private const string FK_NAME = "FK_Book_Author";
        public override void Up()
        {
                Database.AddForeignKey(FK_NAME, "Book", "authorId", "Author", "id");
        }
        public override void Down()
        {
                Database.RemoveForeignKey(FK_NAME);
        }
}
Une application console, des tâches Nant et MSBuild existent pour exécuter et automatiser des migrations.

L’interface Fluent rajoutée par Sean Chambers simplifie l’API :

[Migration(1)]
public class TestCreateAndDropTableMigration: Migration
{
	public override void Up()
	{
		Create.Table("TestTable")
			.WithColumn("Id").AsInt32().NotNullable().PrimaryKey().Identity()
			.WithColumn("Name").AsString(255).NotNullable().WithDefaultValue("Anonymous");
		
		Create.Index("ix_Name").OnTable("TestTable2").OnColumn("Name").Ascending()
			.WithOptions().NonClustered();
		
		Create.ForeignKey("fk_TestTable2_TestTableId_TestTable_Id")
			.FromTable("TestTable2").ForeignColumn("TestTableId")
			.ToTable("TestTable").PrimaryColumn("Id");
		Insert.IntoTable("TestTable").Row(new { Name = "Test" });
	}
	public override void Down()
	{
		Delete.Table("TestTable2");
		Delete.Table("TestTable");
	}
}

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.

Categories : coding Tags: | Permalink | commentsComments (0) | Post RSSRSS comment feed

Une promenande du dimanche dans les parcs

by matthieu 2/7/2010 6:00:09 AM

Nous avons la chance d’avoir deux parcs pas très loin de chez nous : le parc Laurier et un peu plus loin sur le plateau le parc Lafontaine. Voici quelques photos de notre dernière promenade dans ces parcs où on cours, joue au hockey et bien sûr on fait du patin sur glace en famille.

Parc

Parc

Parc

Parc

Parc

Categories : everything else | photo Tags: | Permalink | commentsComments (0) | Post RSSRSS comment feed

Revue du web .NET du 1er février

by matthieu 1/31/2010 8:00:00 PM

Les tweets de la semaine

http://twitter.com/MrWaz/statuses/8198003333 WCF avec Mono sur Solaris, si si c’est possible

http://twitter.com/colinsurprenant/statuses/8203661366 un autre jour, un autre système de stockage clé-valeur

http://twitter.com/webAgencyFAIL une sorte de Daily What the Fuck pour web agencies.

La question Stackoverflow

 http://stackoverflow.com/questions/1204309/force-lazy-entity-to-load-real-instance Les framework modernes d’ORM gèrent  les associations polymorphiques de façon transparente pour le développeur mais il faut être conscient que cette magie peut vous jouer des tours (voir aussi le billet d’un des développeurs de NHIbernate sur ce sujet).

Actualités Microsoft 

vs2010perf

On dirait que l’équipe de développement de Visual Studio a bien travaillé sur les performances de la dernière version de l’éditeur de code. Dans un billet l’équipe nous mets l’eau à la bouche avec le résultat d’un sondage fait auprès des utilisateurs d’une version beta privée comportant les améliorations.  Cela ressemble à un feu vert pour la Release Candidate ?

 

 

 

 

Actualités “Alt.NET”

Voici une série de podcasts autour des projets open-source ou des méthodes agiles du monde .NET (Architecture MVC, F#, Command Query, etc)  et si vous habitez pas très loin de Londres vous pouvez assister à deux évènements gratuits sous la forme de discussion avec Udi Dahan (créateur de NServiceBus) et Ayende Rahien sur NHibernate.

De l’autre côté

Pendant que nous développons (et livrons) avec des technologies comme Silverlight, Flex ou ASP.NET MVC, HTML 5 fait son bonhomme de chemin (en octobre 2009 la dernière phase du processus - initié en 2007- de validation de la spécification a commencé). Mais ce chemin n’est pas si paisible que ça : la dernière contreverse concerne le nouvel élèment <video> qui permet de présenter un média sans passer par un plug-in propriétaire. Or les premières implémentations de YouTube ou Vimeo utilisent des codecs supportant H.264 (non libre) et d’autres Ogg comme Firefox. Il faudra donc sans doute founir plusieurs versions du même média. Les explications sur le site de Robert Nyman.

Un projet

 DejaVu se propose de fournir une bibliothèque légère gérant un système de commandes, leurs objets et l’enregistrement de l’état des données pour revenir en arrière (undo / redo).Un des principaux arguments pour l’utilisation de DTO en lieu et place d’objets métiers (POCO) dans la couche de présentation vient du souhait de ne pas les polluer avec les préoccupations de cette couche : notification de changement (la famause interface INotifyPropertyChanged), des validations de premier niveau, et la gestion des modifications. Cet article sur codeproject est une bonne introduction à cette bibliothèque. Bien qu’on puisse sans doute améliorer son utilisation, elle fait réfléchir sur le problème sous-jacent.

Voici un exemple où on explicite le début de l’enregistrement des modifications et leur commit ou rollback :

UndoRedoManager.Start("My Command"); // start point
data.Name = "Name1";
data.Weight = 33;
data.MyList.Add(other);
UndoRedoManager.Commit(); 
//ou
UndoRedoManager.Undo();

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.

Categories : Tags: | Permalink | commentsComments (0) | Post RSSRSS comment feed

Halting State – Charles Stross

by matthieu 1/31/2010 7:02:07 AM

halting_state

Ce livre de science-fiction n’est pas le premier roman que je lis de Charles Stross, un écrivain anglais. Dans cet ouvrage l’action se déroule dans un futur très proche dans une Écosse indépendante. N’ayant donc pas été projeté à travers les siècles on ne retrouve de vaisseaux spatiaux mais à un internet encore plus omniprésent. Celui-ci sert aux policiers qui ont accès à toute information utile. Quelques gadgets sont issus de ce futur probable : des caméras portables pour les forces de l’ordre et des lunettes qui augmentent la réalité.

Il faut aimer et connaître un peu les jeux de rôle et les réseaux pour bien apprécier Halting State. Après un vol commis dans un des jeux, la société responsable de la sécurité des biens virtuels faudrait régler ça en interne mais un cafouillage amène la police à s’y intéresser. Ce n’est pas la seule car une société d’audit envoie une équipe pour confirmer ou infirmer leur garantie sur cette société récemment rentrée en bourse. Dans cette équipe se trouve deux des principaux protagonistes du livre : un développeur de jeu vidéo et une auditrice amatrice de jeux massivement multi-joueurs.

Charles Stross étant un ancien développeur et ayant écrit sur Dungeon&Dragon le livre est bien documenté sans trop être rébarbatif sur les détails. L’humour est comme toujours très présent sans être noir ni cynique, il y a une certaine candeur dans les écrits de Charles Stross.

Categories : readings Tags: | Permalink | commentsComments (0) | Post RSSRSS comment feed

Carte postale avec wink

by matthieu 1/31/2010 1:31:48 AM

Nous avons testé ce week-end le service Wink de Shutterfly.com. Cette application web permet de monter des petites photos en bande comme on en trouve dans les photomatons. Sauf qu’ici on peut importer les photos de Facebook, Flickr. On a donc profité d’un beau samedi froid, ensoillé et avec une neige toute fraîche pour faire des photos à destination de nos parents. Voici le résultat :

cliquer pour voir en plus grand

Shutterfly s’occupe de les imprimer et de les envoyer pour vous partout dans le monde et ceci pour le même prix : 2.5$ ce qui pour nous est très pratique. Le processus de montage utilise une application flash vraiment très facile à utiliser et en 5 minutes vous pouvez avoir un résultat très correct. Voici l’interface utilisateur :

interface de wink

Wink fait partie de ces applications qu’on utilisera de nouveau pour d’autres occasions comme un voyage.

25

by matthieu 1/25/2010 6:17:00 AM

25, originally uploaded by MatthieuGD.

La vue de derrière. Les appartements on souvent une deuxième entrée ici qui donne sur la ruelle entre deux rues principales. Avec le redoux de ces derniers jours (aujourd'hui 6 degrés) la neige disparaît. On attend la prochaine tempête ...

Categories : photo Tags: | Permalink | commentsComments (0) | Post RSSRSS comment feed

Revue du web .NET du 25 janvier

by matthieu 1/25/2010 1:22:03 AM

Les tweets de la semaine

 http://twitter.com/MichelSchep/statuses/7986002678 une vue d’ensemble des API du .NET Framework 4 avec DeepZoom

http://twitter.com/ReedCopsey/statuses/7959294663 Toujours .NET Framework 4, une série d’articles pour aborder le parallélisme

http://twitter.com/jschmiede/statuses/7912861843 On connaît TFS, Cruise Control et PSake, voici Rake pour .NET en vidéo

La question Stackoverflow

 http://stackoverflow.com/questions/2040924/best-way-to-communicate-between-net-1-1-and-net-3-5 Comment faire communiquer une application basée sur la version 1.1 du Framework avec une application qui utilise la version 3.5 ? Socket, Remoting, WebServices tout y passe.

Actualités Microsoft et Actualités “Alt.NET”

Nous essayons d’avoir le contenu le plus original possible mais il est difficile de passer sous silence ce billet d’Ian Cooper sur la communauté Alt.Net. Il est certain que la philosophie derrière ce mouvement (qui tourne autour de l’agilité, du TDD, des principes S.O.L.I.D. de développement) a fait du chemin dans la communauté .NET en général. Il est intéressant de voir les réactions / actions entre Microsoft et cette communauté dans divers domaines : ORM (Nhibernate, Entity- Framework, Subsonic etc.), IoC (Unity, StructureMap, Autofac) et le web: FubuMVC existerait-il si ASP.NET MVC n’avait pas été développé par Microsoft ? On espère que cette saine compétition continuera et s’étendra à d’autres domaines comme par exemple les ESB (on parle encore peu de AppFabric/Dublin, NServiceBus ou MassTransit).

De l’autre côté

 Google Collections est un projet comme il en existe beaucoup : compléter le framework Java dans un domaine bien particulier. Apache Commons est un autre exemple : client HTTP, Codecs, Emails etc… Il se sert du JDK 1.5 et des génériques pour apporter plus flexibilité, moins de friction dans l’usage des API de base. Par exemple faire un join

Joiner.on(", ").join(iterable);
Joiner.on(", ").skipNulls().join(iterable);
Joiner.on(", ").useForNull("<null>").join(iterable);

Voici un article concis qui montre les fonctionnalités de la bibliothèque.

Un projet

 HTML Agility Pack est une bibliothèque pour parser du code HTML, une tâche des plus ingrates qui puisse exister pour un développeur (après écrire une documentation peut-être). Les navigateurs pardonnant beaucoup il existe beaucoup de pages qui ne respectent pas les schémas sans parler des pages générées qui rendent le code des plus exotiques.

Ce projet qui a connu en fin d’année dernière un renouveau grâce à une série de patchs et maintenant un nouveau lead technique a encore rendu son utilisation plus agréable : requête de type XPath avec l’usage de Linq, Extraction facile du texte nettoyé des balises html etc.

var atts = _doc.DocumentNode.SelectNodes("//*[@background or @lowsrc or @src or @href]");
var hrefs = _doc.DocumentNode.SelectNodes("//a[@href]");
var nodes = from node in hrefs
            where node.Attributes["target"].Value == "_blank"
	    select node;

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.

Categories : coding Tags: | Permalink | commentsComments (0) | Post RSSRSS comment feed

Revue du web .NET du 18 janvier

by matthieu 1/18/2010 1:16:00 AM

Les tweets de la semaine

http://twitter.com/csharp_tan/status/7857602895 une liste des frameworks MVVM (Model View VierwModel – un des patrons de conception pour la couche de présentation)

http://twitter.com/wanswins/status/7793053854 on vous parlait la semaine dernière de Script# un compilateur C# vers Javascript, il en existe d’autres comme sharpkit

http://twitter.com/dotnettv/statuses/7745427907 Event Driven architecture en vidéo

La question Stackoverflow

Nous allons parler d’une méta-question aujourd’hui : Quelle API doit avoir Stackoverflow ? Le projet a été annoncé sur le blog et déjà une liste de possibles applications est apparue. Une application web n’est une application web sans une API externe : quels formats supportés, le mode d’authentification, lecture seulement etc. ?

Actualités Microsoft

La saison des conférences va commencer dans quelques semaines : Mix 2010 où on devait parler de Visual Studio mais on entendra plus parler de Silverlight 4 et on espère de Internet Explorer 9 et Windows Mobile 7. Le lancement de Visual Studio sera annoncé le 12 avril lors de la conférence Devconnections Visual Studio 

Actualités “Alt.NET”

S’il y a bien un domaine où le monde .NET est actif c’est celui des frameworks de mapping objet-relationnel (et on dirait que cela se transpose dans le développement de frameworks de présentation WPF ou même du côté  web avec MVC). Voici un billet d’humour qui résume bien les relations entre eux. Un classique mais toujours efficace.

De l’autre côté

ToughtWorks édite Mingle qui est une application de gestion de projet supportant les méthodes agile. Ce dernier utilise une base de données : Mysql, Postgresql ou Oracle. L’éditeur a décidé d’abondonner le support de Mysql. C’est un SGBD très flexible : il y a une multitude d’autres moteurs de stockage que ISAM ou Innodb (livrés en standard) pour couvrir des besoins telle que les gros volumes. Mais il semblerait que certains se tournent vers des applications plus spécialisées (voir le mouvement Nosql (MongoDb, CouchDb etc ) ou plus orientées “entreprise”comme Postgresql.

Un projet

Pas un projet mais une liste de projets cette semaine : C# open source (base de données, PDF, CRM). Comme son l’indique ce site répertorie les projets open-source du monde .NET par catégorie. On pourra consulter aussi SharpToollbox qui est plus orienté outils de développement.

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.

Categories : coding Tags: | Permalink | commentsComments (0) | Post RSSRSS comment feed

Story of a marriage : a novel – Andrew Sean Greer

by matthieu 1/17/2010 4:20:56 AM
couverture du livre

C’est un des romans les plus surprenants que j’ai pu lire. Je ne peux pas beaucoup parler du livre sans faire de révélations désastreuses sur l’histoire mais l’action se passe dans l’Amérique des années 50. Pearlie Cook et Holland est un couple qui s’est formé au retour de la guerre (qui est abordée là aussi sous un angle totalement différent).  Un camarade de l’armée revient voir le mari et de là commence un trio très bien mené par l’auteur. Un des personnages n’intervient presque pas alors qu’il est le sujet central de l’histoire. On dit que c’est un “marmite novel” (du nom de la confiture salée anglaise) : on aime ou on déteste. 

 

NB : c’est le premier roman que je lis sur mon Kindle et je me suis vraiment content  de cet appareil. Si vous lisez beaucoup et que le poids des livres est un facteur (je porte déjà un laptop et mon déjeuner dans mon sac), il ne faut pas hésiter !

Categories : readings Tags: | Permalink | commentsComments (0) | Post RSSRSS comment feed

Savoir retourner sa veste

by matthieu 1/17/2010 3:40:07 AM

On a revu Wall Street, le film d’Oliver Stone qui malgré une qualité plutôt moyenne est devenu le symbole des excès des années 80 aux USA : “greed, for lack of a better word, is good”. Le réalisateur a tourné la suite, Wall Street : Money Never Sleeps, qui sort en avril.

Dans une des scènes Martin Sheen (qui est un acteur que j’adore – notamment dans la série The West Wing) se lève et remet son veston. Et Martin Sheen a une drôle de façon de mettre une veste... Je pensais que c’était une marque du personnage qu’il incarnait dans la série The West Wing mais en regardant Wall Street qui a été tournait 10 ans auparavant je me rendu compte de cette “manie” est toute personelle. Sa fiche wikipedia indique le pourquoi :

Sheen has limited lateral movement of his left arm, which is three inches shorter than his right, due to its being crushed by forceps during his birth.[30] This restricts him from putting on a coat in the typical manner; instead, he flips it up and over his head from the front, as clearly demonstrated throughout the run of The West Wing

capture video