Revue du web .NET du 15 décembre

Les tweets de la semaine

http://twitter.com/thierry_n/statuses/6581723672 : une nouvelle version de Mono, qui voit son offre commerciale prendre forme avec Mono Touch (développement pour l’iPhone), Mono Tools for Visual Studio et la plateforme serveur avec support (Suse Linux). Au passage le compilateur Mono devient aussi “C# 4.0 compatible”.

http://twitter.com/EdgarSanchez/statuses/6566426910 on parlait la semaine dernière de GWT, Volta, voici un produit open source commercial, SharpKit, qui permet de travailler en C# et compiler vers Javascript et vice versa.

La question Stackoverflow

 http://stackoverflow.com/questions/1681546/custom-wpf-control-dependency-property-not-binding-to-external-dp/1681624#1681624 Les “dependency properties” de WPF sont un des aspects les plus puissants du framework mais aussi un des plus difficiles à appréhender. Ici un exemple qui met en lumière l’importance des metadata associées aux DP.

Actualités Microsoft

Bien que certains pensent qu’une beta 3 ou une RC pour Visual Studio 2010 serait la bienvenue, la date de sortie (22 mars 2010) approche (moins de 100 jours maintenant). Dans cet article, Somasegar présente les nouveautés autour du développement d’add-in pour Visual Studio :

On pourra consulter aussi les nombreuses vidéos issues de la conférence “Development Tools Ecosystem”

Actualités “Alt.NET”

DDDFrance est un site francophone qui propose des ressources autour du Domain Drivern Design en français. Par exemple le livre DDD Quickly a été traduit : DDD vite fait.

Au passage, en suivant les principes du DDD dont l’utilisation au plus proche du langage du domaine métier, doit-on coder en anglais ou dans sa langue maternelle ?

De l’autre côté

VirtualBox est une application de virtualisation rachetée par SUN il y a maintenant un peu plus d’un an. La version 3.1 sortie fin novembre apporte des fonctionnalités telle que la migration “live’” d’une instance d’un hôte à un autre ou encore la restauration à partir d’un snapshot (arbitraire et non le dernier). Un projet communautaire fournit une console web pour administrer les machines virtuelles.

Un projet

StatLight.logo.home Statlight est un framework de tests automatisés pour Silverlight. Vous pouvez le penser un peu comme le Nunit de Silverlight. Dans la définition de xUnit et du TDD en général il faut que l’outil fournisse un moyen de :

Il faut d’abord se procurer le template de projet de tests unitaires pour Silverlight et le code source du framework de test unitaires (on le trouvera dans le sous-répertoire source code du toolkit : C:\Program Files (x86)\Microsoft SDKs\Silverlight\v3.0\Toolkit\Jul09\Source par exemple, extraire les dlls du répertoires binaries du dossier compressé). Vous devez arriver à cette structure

setup

Voici un test sur l’interface :

[TestClass]

public class Test : SilverlightTest

{

private MainPage sut;

[TestInitialize]

public void Setup()

{

sut = new MainPage();

//pour nettoyer les pages entre chaque TU

this.TestPanel.Children.Add(sut);

}

[TestMethod]

public void TestButton()

{

Assert.AreEqual(300, sut.Width);

//no automation

//visible with the \[assembly: 

//InternalsVisibleTo("MySLApplication.Tests")\] 

sut.Button\_Click(this, null);

Assert.AreEqual(Visibility.Visible, sut.childrenPanel.Visibility);

}

}

Le changement de visibilité sur les contrôles et l’assembly vient du manque d’automation dans le Framework de test. Quand vous lancez le test une page apparaît avec les résultats :

resultat du test

Statlight permet d’automatiser cette démarche et est compatible avec TeamCity ou MSBuild par exemple. Ici on ajoute l’appel à l’outil dans un post-build (à exécuter avec un compte admnistrateur) :

C:\StatLight.v0.9\StatLight.exe -x=‘C:/Projects/MySLApplication.Tests/Bin/Debug/MySLApplication.Tests.xap"

résultat du test dans VS

La version de Visual Studio 2010 de Web Testing devrait être compatible Silverlight mais en attendant et/ou vous êtes sur une plateforme moins récente, StatLight est l’outil à évaluer.

billet publié dans les rubriques coding le