Technology Radar 2010: Focus .NET

Clear Radar Screen

Technology Radar 2010: Focus .NET

Je viens de lire le document « Technology Radar » de la firme ThoughWorks et je trouvais intéressant de faire un résumé de cette liste avec le focus .NET. Vous pouvez télécharger le document gratuitement ici:

http://www1.vtrenz.net/imarkownerfiles/ownerassets/1013/Technology%20Radar%20Jan%202010.pdf

Je trouve très intéressante la manière de bâtir le radar dans ce document.

Premièrement on y retrouve quatre grands axes:

  • Techniques
  • Tools
  • Platforms
  • Languages

Ensuite, on divise chaque cercle selon l’intérêt apporté selon l’industrie:

  • Hold
  • Asssess
  • Trial
  • Adopt

Voyons un peu ce qui ressort pour .NET et certains « à côté » selon chaque grand axe:

  • Techniques
    • On parle de l’adoption de « Build Pipelines » et de déploiement continue. On peut donc s’attendre à voir plus fréquent l’utilisation de VSTS ou autres serveurs de builds tel que CC.NET, TeamCity et FinalBuilder. Donc, davantage d’intégration continue, ce qui est très bien selon moi !
    • On mettra aussi à l’essai des pratiques d’architecture, comme le Evolutionary Enteprise Architecture, SOA et le Emergent Design, pour aider l’architecture à s’intégrer avec les approches agiles. Quel en sera l’impact sur nos projets .NET actuels ?
    • Le User-Centered Design demande une collaboration proche entre ceux qui conçoivent l’interface graphique et ceux qui font le développement. Est-ce que des outils comme Microsoft Expression Blend peuvent aider dans l’adoption de cette pratique ?
  • Tools
    • On note ici que ASP.NET MVC est devenu un développement intéressant pour Microsoft et que son adoption devrait bien se faire en générale. Le modèle MVC et le fait que c’est Open Source semble être un move intéressant de la part de Microsoft. On se rapproche ainsi de certains frameworks de Java pour un modèle plus testable que les fameuses web forms.
    • On fera aussi davantage l’essai de cueillette de données et de métriques pour voir l’évolution et la visualisation d’un système informatique. Encore ici, je crois que l’Intégration Continue pourra jouer un rôle important avec cela.
    • Baisse d’utilisation de Subversion et une tendance à aller des outils de gestion de code distribué, comme GitHub.
  • Languages
    • Apparition de langage fonctionnel, tel que le Scala et le F#.
    • La nouvelle version de C#, la 4.0, semble vouloir faire avancer le langage au devant du Java qui tarde à donner de nouvelles fonctionnalités à ses développeurs. D’ailleurs, je ne peux m’empêcher de citer la phrase suivante de l’étude (j’aime beaucoup de C#, ne vous l’ai-je déjà dit ?):

As C# continues to surge ahead, the Java language appears to be moving slowly as the Java community waits for Java 7.

  • Platforms
    • Adoption du « Cloud » on verra si Azure sera de la partie…
    • Fin de la vie de IE6. Pas vraiment de surprises ici. Mais, est-ce que les entreprises feront une transition vers IE8 ou Firefox ou Chrome ?
    • On fait aussi remarquer que IE8 n’est pas totalement conforme aux standards du web.
    • À voir aussi le système d’exploitation Chrome OS pour les netbook.
    • On pourra aussi voir davantage d’application riche pour internet, comme la plateforme Silverlight le permet. Fait intéressant, l’étude mentionne toutefois que le développement web traditionnel apportera davantage de valeur pour les entreprises. Donc à utiliser seulement pour les applications qui nécessitent une meilleure visualisation.

Vous pouvez aussi retrouver d’autres commentaires sur le site InfoQ (ils ont fait un beau tableau pour classer tout cela):

http://www.infoq.com/news/2010/01/ThoughtWorks-Technology-Radar

Et vous, qu’est-ce qui vous branche pour 2010 côté technologie ?

Publicités

Webcasts: Pragmatic Patterns for Architects

Patterns!Lien vers une série de trois webcasts qui semblent intéressants:

  • – Patterns for Moving to the Cloud
  • – Building Silverlight & WPF Applications-  with Prism
  • – Patterns for Parallel Computing

http://blogs.msdn.com/sac/pages/council-2009q2.aspx

Tendances .NET

Le magazine Redmond Developer News a publié cette semaine un article intéressant sur les technologies à maîtriser afin de survivre à cette marée de nouveautés. Voici le top 8:

  1. Rich Internet Applications (AJAX, Silverlight, …)
  2. SOA and Web Services (WCF)
  3. Data-Driven Development (LINQ)
  4. Dynamic Languages in Managed Code(DLR, Iron Ruby, MVC, …)
  5. Office Development Platform (VSTO)
  6. Mad about Multi-Core (thinking parallel)
  7. Development Testing (Unit Test)
  8. Web Development (VS2008)

Étant un fan du TDD, je suis bien content de voir qu’à la position #7, on mentionne l’importance des tests unitaires.

Pour détails sur tout cela, voir le lien suivant:

http://reddevnews.com/features/article.aspx?editorialsid=1781

Ghost Doc

J’ai découvert l’autre jour un petit utilitaire fort intéressant: Ghost Doc. Il permet de faciliter grandement l’ajout de commentaires "xml" dans le code. Ghost Doc analyse le code à commenter et génère un genre d’esquisse de commentaires et il ne nous reste plus qu’à le finaliser.

Exemple:

Voici une méthode en C# pour aller chercher une liste de répertoire sous un nom de server dans un fichier XML:

public static StringCollection GetDirectoryList(String serverName)
{
StringCollection collDir = new StringCollection();
XmlDocument xmlDoc;
XmlNodeList xmlNodeDirList;
XmlNode xmlNode;

}

Au lieu de faire les "///" traditionnelles, je me positionne sur la méthode à documenter et j’active la nouvelle option venant de GhostDoc avec le menu contextuel (clic droit), "Comment This" :

Et j’obtiens ceci sans rien faire d’autre:

/// <summary>
/// Gets the directory list.
/// </summary>
/// <param name="serverName">Name of the server.</param>
/// <returns></returns>

Je fais quelques petites modifications pour améliorer le tout et voilà:

/// <summary>
/// Used by the console or windows client to get the list of directories to scan
/// for the server name passed in the parameters
/// </summary>
/// <param name="serverName">Name of the server.</param>
/// <returns>
/// Return an array of string representing a list of directory
/// </returns>

 

Autre exemple avec une fonction de type "bool":

public static bool IsExcludeDirExist(string serverName)
{
bool nodeData = IsNodeDataExist(serverName.ToLower(), "ExcludedDirectories");
return nodeData;
}

J’utilise "Comment this" et j’obtient directement ceci:

/// <summary>
/// Determines whether [is exclude dir exist] [the specified server name].
/// </summary>
/// <param name="serverName">Name of the server.</param>
/// <returns>
/// <c>true</c> if [is exclude dir exist] [the specified server name]; otherwise, <c>false</c>.
/// </returns>

Et par la suite, j’y fais quelques modifications:

/// <summary>
/// Determines whether an excluded directory exist for the specified server name.
/// </summary>
/// <param name="serverName">Name of the server.</param>
/// <returns>
/// <c>true</c> if an excluded directory exist for the specified server name; otherwise, <c>false</c>.
/// </returns>

Intéressant, non  ?

Ghost Doc ne fait pas des miracles, mais il rend la création de commentaires XML beaucoup plus facile. Par contre, il est important de bien nommer ses fonctions et méthodes pour que Ghost Doc puisse en faire une bonne analyse. C’est en fait une bonne pratique de toujours s’assurer que les noms de fonctions et méthodes sont toujours significatifs. Pour y arriver, il s’agit simplement de suivre ces trois règles:

  • Utiliser le "PascalCasing" ou le "camelCasing" pour écrire les noms avec plusieurs mots
  • Débuter les noms des méthodes avec un verbe
  • Ne pas utiliser d’abréviation dans les noms

    GhostDoc marche principalement avec le C#, mais je crois qu’il y a quelques fonctionnalités pour VB aussi.

    Pour une simple introduction de GhostDoc, voici un article intéressant:

    http://dotnetslackers.com/articles/vs_addin/Introduction_ghostdoc.aspx

    Et pour le télécharger:

    http://www.roland-weigelt.de/ghostdoc/