Blog Technologique

m.salettes

 Les nouveautés de Visual Studio 2011  

J’ai eu la chance de me rendre à la dernière édition des Techdays,  où j’ai pu découvrir les nouveautés prévues pour la prochaine version de Visual Studio.

Cette session fut animée par deux consultants d’Infinite Square (anciennement Access IT), Etienne Margraff et Florent Santin.

Après un bref historique de la gamme Visual Studio et notamment sur les différents profils de personnes venues enrichir l’équipe de produit (développeurs, chefs de projets, testeurs et utilisateurs désormais) nos deux MVP ont présenté dans un premier temps les nouveautés concernant la partie développement pour ensuite conclure sur les spécificités de la partie ALM (Application Lifecycle Management) et donc de Team Foundation Server 2011.

Visual Studio 2011

Voici une liste non exhaustive de ces nouveautés.

Metro Style Application

  • Templates de projet pour Windows 8 pour les applications de types “Metro Style” (XAML & HTML5/JavaScript),
  • Intégration du moteur de design de la nouvelle version de Blend pour les applications de types XAML et HTML 5.

Productivité

  • Intégration des Productivity Power Tools,
  • Amélioration de l’Explorateur de solution avec une barre permettant de lancer une recherche (Classe, Méthode, Propriété, Attribut, etc.),
  • Code Clones Analysis: fonctionnalité permettant de retrouver de manière sémantique des portions de codes identiques afin de faciliter le refactoring.

Développement Web

Cette partie a été le plus mis en avant notamment avec l’arrivée d’HTML 5. Ainsi VS 2011 fournit un ensemble de fonctionnalités destinées à faciliter le développement Web comme:

  • l’ajout de snippets HTML 5 / CSS 3,
  • une meilleure indentation, mise à jour automatique de la balise fermante lors de l’édition de la balise ouvrante, outlining.
  • l’explorateur de DOM,
  • la console JavaScript,
  • l‘amélioration de l’inteliSence JavaScript.

Autres

  • Ajout de snippets et des tests unitaires pour le C++,
  • Refonte du moteur de tests unitaires, plus performant et multi-Framework,
  • Editeur de modules 3D.

Team foundation Server 2011

Ces dernières années, Microsoft a également fait fortement évoluer sa solution ALM avec notamment la version 2010 de Team Foundation Server qui a permis d’imposer un certain nombre de fonctionnalités innovantes. Il continue ainsi sur cette lancée dans cette version 2011.

Nouvelle interface Web

L’interface et l’ergonomie du portail Web ont été totalement revues. Mais ce n’est pas tout car la notion d’équipe a fait son apparition. Désormais, un groupe de personnes travaillant sur un objectif commun peut bénéficier d’un espace permettant de gérer les dates d’indisponibilités des membres, les dates de début et de fin des itérations, son backlog ou encore de visualiser son tableau de tâches sous forme de post-it.

Nouveau Team Explorer

La partie Team Explorer qui n’avait pas beaucoup changé ces derniers temps fait également peau neuve.  La démonstration nous a laissé entrevoir un Team Explorer 2011 plus intuitif avec une interface plus épurée et accessible. Une nouvelle partie fait son apparition “My Work” permettant ainsi au développeur de visualiser directement les Work item le concernant. Une dernière modification est l’ajout d’une interface donnant la possibilité de demander à un autre développeur de revoir, de commenter et de valider une section de codes.

Tests

La partie Tests exploratoire introduite dans la version 2010 avec Test Manager  a aussi été amélioré afin d’être plus performante. Cet aspect a d’ailleurs fait l’objet d’une démonstration assez sympathique avec la mise en évidence des intéractions entre le testeur et le développeur.  Lors de la démonstration, le testeur crée une fiche d’incident suite à l’apparition d’un bug. Cette fiche est après transmise  au développeur avec toutes les informations nécessaires (commentaires, screen shots, context mémoire, intellitrace, ect.)

FeedBack

Avec cette nouvelle version, les utilisateurs sont maintenant intégrés dans la boucle avec Feedback Manager 2011 qui est un Test Manager « light » permettant de gérer les demandes de feedback et les retours des utilisateurs.

Team Foundation Service

Enfin comme vous avez pu le remarquer la tendance en ce moment est au Cloud et TFS n’y coupe pas avec Team Foundation Service qui est une version basic de TFS (gestion de source,  Work items,  Build, mais pas de portail web et de rapports) hébergée dans Azure.

Conclusion

Avec cette nouvelle version Microsoft permet aux développeurs de se munir des outils nécessaires à la création d’applications pour Windows 8. Mais ils ne sont pas arrêtés là en fournissant aussi une amélioration de l’expérience, de la productivité, ainsi qu’une solution complète permettant de gérer tous les aspects du cycle de vie d’une application.

 
Eric Fauquembergue

Retour sur les TechDays 2012, annonciateurs d’une année riche pour les développeurs  

Je souhaite ici partager avec vous mon sentiment sur la dernière édition des TechDays, qui s’est déroulée au début de ce beau (mais froid) mois de février.  Fermons la parenthèse météorologique.

Pas de gros scoops, d’annonce tonitruantes de nouveaux produits disponible de suite. Il va falloir patienter jusqu’au 2ème semestre. Mais cela ne signifie pas que cette édition fut insipide… 

Voyons donc…

Oh, une projection de Visual Studio !
Année après année se confirme mon sentiment d’ouverture de plus en plus forte de Microsoft vis à vis des technologies exogènes (ok, disons non Microsoft pour ne froisser personne).

On est passé de certaines éditions de l’évènement où hors de Microsoft, point de salut, à des éditions intermédiaires où l’on commence évoquer par périphrase des marques fruitères, des robot verts. 

Maintenant, on assiste à des sessions où l’on cite explicitement les concurrents, et on trouve même certaines sessions ouvertement destinée à un public qui n’est pas naturellement client des solutions de la maison (je pense à la session Azure sans .Net, à laquelle j’ai assisté avec un collègue Novedien Javaiste).

Cela fait du bien, on est plus proche de la réalité, d’un monde où les technologies se mélangent. De notre monde, en fait.
Autre tendance marquée, l’ouverture à l’Open Source (je pense à l’implémentation d’Apache Hadoop sur la plateforme Azure), à l’interopérabilité (je pense aux démos expliquant comment faire tourner du PHP, du Java, du Node.js sur Azure) et au respect des standards (HTML5, IE 10 …).

D’un point de vue plus technique, j’y ai retenu quelques technologies très prometteuses : Roslyn (on va pouvoir customiser notre expérience de développeur dans notre IDE préféré), Hadoop en mode SaaS. 
2012 s’annonce comme une année charnière pour Microsoft : offensive pour rattraper son retard sur les tablettes (Windows 8), proposer une expérience nouvelle sur les desktops (Windows 8 again), et poursuivre l’effort sur les téléphones mobiles (Windows Phone … 8). 

Le tout en unifiant l’expérience utilisateur via le style d’interface Metro, et faisant dialoguer le tout via le cloud. Le message des TechDays précédents (1 cloud, 3 écrans) se concrétise bien ici.
Il va y avoir du travail pour nous, acteurs du développement logiciel. 

Certaines technologies sont en ruptures : WinRT et HTML5 sur Windows 8, HTML5 dans les navigateurs, JavaScript sur le serveur (!?!). Pour celles qui ne sont pas à proprement parler en rupture, elles sont très séduisantes (C# 4.5, l’asynchronisme à tous les étages).
Microsoft n’est jamais meilleur que quand la concurrence est féroce. Et elle l’est.
Pour finir, mon sentiment général a été d’une réorientation des TechDays vers les développeurs. Entre le lancement du mouvement « Fier d’être développeur », la mention de la citation de Steve Ballmer (le fantasque « Developers, Developers, Developers ») lors de la première pleinière, Microsoft bichonne son public de … développeurs.

Et on ne va pas s’en plaindre.

 
Kaouthar El Aoumari

Développement fonctionnel avec F#  

J’ai pu assister à quelques présentations lors de la dernière édition des TechDays.  Et le sujet que j’ai choisi de présenter est le langage F#. Mon choix est dû au fait que je ne connaissais pas ce langage… et que ce fut une des sessions où j’ai découvert le plus de choses. J’ai beaucoup apprécié l’accessibilité du speaker  qui n’est ni plus ni moins que le concepteur du langage,  Don SYME.

Dans cet article je voudrais répondre aux quelques questions que je me suis moi-même posées,  à savoir :

  • Qu’est ce que le langage F# ?
  • Quel est l’intérêt de F# ?

Je vais aussi faire une description des principales nouveautés apportées par F#3.0.

Qu’est ce que le langage F# ?

On dit de ce langage que c’est un langage fonctionnel inspiré fortement d’un autre langage qui est OCaml, je ne vais pas m’attarder la dessus car je ne connais pas ce langage, par contre j’ai voulu comprendre ce que signifie un langage fonctionnel.

Apres avoir googlisé j’ai trouvé en  effet qu’il existe 3 familles de langages de programmation :

  • La programmation logique : ce sont les langages dédiés à faire de l’intelligence artificielle je citerai prolog.
  • La programmation impérative : l’exemple que je donnerais est le C#, enfin,  je me dois de citer aussi le C, le C++, Java et même l’assembleur. Vous trouverez certainement plusieurs définitions de ce que cela représente la programmation impérative, mais en quelques mots : c’est l’exécution des instructions successives pour modifier l’état de la mémoire,  l’assignation, le bouclage, le branchement conditionnel, et le branchement sans condition. Si je vous dis que le plus grand inconvénient de ce type de programmation c’est le fait de connaitre à tout moment l’état d’une variable pour éviter les effets de bord, vous allez me dire mais c’est ça la dure vie de programmeur et que si cela ne me plait pas, je peux faire un autre métier…  Mais il ne faut pas cacher la dure réalité c’est que l’on passe un temps fou à déboguer  nos programmes impératifs. Et c’est là où je vais introduire la programmation fonctionnelle.
  • La programmation fonctionnelle s’affranchit de façon radicale des effets de bord en interdisant toute opération d’affectation. Les programmes ont également tendance à être plus concis. Vous tapez et typez moins : moins de frappes et moins d’endroits où le compilateur doit connaître le type de la variable, des arguments ou du retour. Ceci peut signifier beaucoup moins de code à gérer.

Quel est l’intérêt de F# ?

Le langage fonctionnel F# aide les développeurs à prendre en charge la simultanéité en encourageant des structures de données constantes qui peuvent être transmises entre les threads et les machines sans avoir à se soucier de la sécurité des threads ou de l’accès atomique. Il a également tendance à faciliter l’écriture de bibliothèques plus adaptées à la simultanéité telles que les flux de travail F# asynchrones.

Certaines améliorations importantes du Framework .Net notamment dans les génériques, LINQ, PLINQ et Futurs proviennent de l’application de concepts de programmation fonctionnelle et l’une des nouveautés du Framework 4.5 c’est l’introduction de la programmation asynchrone.

Donc pour ceux qui développent en C# ou VB.NET, sachez que vous faites presque de la programmation fonctionnellle sans vous en apercevoir !

Je note aussi que F# a un profil de performances similaire à C#. Cependant, il a un profil de performances bien supérieur aux langages concis comparables, en particulier les langages dynamiques et de script. Et, comme plusieurs des langages dynamiques, F# inclut les outils qui vous permettent d’explorer des données en écrivant des fragments de programmes et en les exécutant de façon interactive.

F# reste entièrement interopérable avec le reste de l’écosystème .NET, ce qui signifie que vous pouvez profiter de la majeure partie de la connaissance existante et de nombreux outils existants pour aider à introduire F# dans votre arsenal de codage.

Nouveautés F#3.0

Lors de la présentation de Don SYME, les nouveautés de la version 3.0 de F# ont été introduites.

On peut distinguer  3 niveaux.

Langage F# et compilateur

A l’évidence on ne peut pas penser à développer sans avoir une source de données où stocker nos informations. Maintenant avec F# on pourra accéder à nos diverses sources de données facilement. les types de providers ajouté sont les suivants

  • OData services
  • Database Connections
  • Database Schema
  • Web services
  • Resource files

Et au final on a ce joli schéma

Pour aller plus loin et savoir comment cela fonctionne, je vous invite à visiter le site MSDNhttp://msdn.microsoft.com/en-us/library/hh156509(v=vs.110).aspx

l’autre nouveautés c’est la possibilité de faire les Query Expressions tel que l’on voit en utilisant LINQ

/ A query expression.
let query1 = query { for customer in db.Customers do
                     select customer }

Environnement de développement

On a l’habitude de développer sur Visual Studio et donc vous dire que l’IntelliSense et le Parameter Help sont des nouveautés de visual F#3.0 ça vous paraîtra ridicule, mais cela reste un argument de plus pour vous lancer à faire du F#, cela peut nous aider à débuter par exemple.

Library F#

Etant données que l’accent a été mis sur les différents type de providers et l’accès aux données, alors il ne  faut pas s’étonner de voir que des classes de manipulation de données aient été ajoutées à la library F#:

Conclusion

A la fin de la présentation je me suis posée encore plus de questions, celle que j’ai retenu  est : Peut on faire des applications web avec F#? et comme google est mon ami, je lui ai posé la question,  il m’a répondu que Ouiiiiiiiiiiii c’est possible. Dans une des prochaines réunions de la communauté .Net, je présenterai un exemple d’application web écrit avec F#.

 
Julien Le Guennec

[HTML 5] Offline et stockage client  

Une application web fonctionnant sans connexion réseau et capable de sauvegarder les données de l’utilisateur, quelle drôle d’idée ? Grâce à HTML 5 se sera pourtant bientôt possible !

Mercredi 8 février 2012, je me suis rendu aux MS TechDays 2012 dans le but d’assister à une présentation répondant au nom de « Création d’une application HTML5 gérant l’offline et le stockage client » afin d’en savoir un peu plus sur le sujet.

L’objectif de cette présentation était de découvrir quatre briques importantes d’HTML 5 : « le mode offline », « le DOM storage », « l’Indexed DB » et « le drag & drop ».

Les deux intervenants Microsoft que sont David Rousset, responsable de la relation avec les développeurs Web,  et David Catuhe, spécialiste interface utilisateur, ont commencé la session par une démonstration de SnapX, une application de gestion de diaporamas sur laquelle a été basée toute la présentation. SnapX est entièrement développée en HTML 5.

David Rousset a alors présenté le mode Offline permettant l’utilisation d’une application web sans connectivité réseau permanente. Le principe est le suivant : L’application est téléchargée par le navigateur comme une simple application web à la différence que celle-ci indique au navigateur la liste exhaustive des fichiers nécessaires à son fonctionnement en mode hors ligne. Tout ceci grâce à la définition d’un fichier « manifest » dans lequel on précise, les ressources hors ligne, les ressources en ligne et les ressources à utiliser en cas d’erreurs.

L’application SnapX, est utilisable en mode hors ligne grâce à cette technique mais elle permet aussi l’import de fichiers images ainsi que leurs manipulations et leurs sauvegardes, normal me direz-vous pour un diaporama… David Catuhe nous a alors décrit les méthodes utilisées pour permettre ces fonctionnalités en passant par la manipulation des fichiers grâce à la « File API » et la brique « DOM storage » qui permet de sauvegarder jusqu’à 10 Mo de données sur le poste client. Cette nouvelle brique qui permet d’outrepasser les limites des cookies, embarque deux objets que sont le localStorage (données partagées pour une application) et le sessionStorage (données de session uniquement).

Pour aller un peu plus loin dans la sauvegarde des données utilisateurs en local, la présentation s’est ensuite orientée sur la brique IndexedDB fournie par HTML5. Véritable base de données NoSQL, elle permet de stocker des objets Javascript (typiquement des objets JSON) et est totalement sécurisée (les bases de données d’une application sont liées au domaine). Il n’y a pour le moment pas de limitation sur la quantité de données et celle-ci varie selon les navigateurs. Nos intervenants lors de cette session nous ont laissé penser qu’une forme de limitation sera mise en place avec validation par l’utilisateur lorsque la spécification sera finalisée. Petit plus de la présentation, ils nous ont indiqué une ressource très intéressante permettant d’afficher le contenu de l’IndexedDB (aller sur http://blogs.msdn.com/b/ie/archive/2012/01/25/debugging-indexeddb-applications.aspx)… pratique pour débuguer !

Cette session s’est enfin terminée par une présentation de la brique « Drag & Drop », une fonctionnalité déjà possible avec les frameworks Javascript (jQuery…) existant mais devenue native avec HTML5. Rentrée dans les mœurs des utilisateurs, cette fonctionnalité offre la possibilité d’améliorer l’ergonomie des applications en simplifiant les interactions entre le bureau et le navigateur web.

Ces présentations sont aussi l’occasion de récupérer des bonnes pratiques ou des astuces que l’on ne trouve pas partout. J’en ai retenues deux :

- La spécification n’étant pas encore terminée, les implémentations des API instables sont systématiquement préfixées en fonction de l’organisme qui les a implémentées. Ainsi, l’implémentation de IndexedDB sur IE sera windows.MsIndexedDB, sur FireFox windows.MozIndexedDB, etc.

- Pour savoir si un navigateur implémente une fonctionnalité, il faut tester l’existence ce cette fonctionnalité et non la version du navigateur.

Pour aller plus loin :

http://www.caniuse.com (liste les fonctionnalités HTML5 disponibles en fonction des navigateurs)

http://www.catuhe.com

http://blogs.msdn.com/b/ie/ (IE team Blog)

 
Amine Benkirane

Comparaison des meilleurs outils d’intégration du marché (Jenkins, Quickbuild, UrbanBuild/AnthillPro, Bamboo, Apache Continuum, TeamCity, Go/Cruise Control) – Décembre 2011  

Depuis quelques années, avec la montée de l’agilité dans la gestion des projets informatiques, l’intégration continue devient de plus en plus une problématique très importante dans les entreprises. Elle induit l’automatisation du cycle de vie des applications informatiques. Les processus de compilation, l’exécution des tests et même le déploiement soit sur des serveurs de développements ou de production sont alors exécutés de manière la plus atuomatique possible à des fréquences variables.

Les moyens de cette automatisation sont, entre autres:

  1. la mise en place d’outils comme Maven ou Ant,
  2. l’écriture de tests unitaires à l’aide de frameworks de tests comme JUnit/JMock pour le language Java,
  3. la réalisation de tests fonctionnels ou d’intégration avec des outils comme Selenium ou SOAP UI.

Ces différents outils et frameworks mis en place au sein des projets sont les fondements de ce qu’on appelle aujourd’hui les usines logicielles. Basées sur les moyens ci-dessus, elles nécessitent le déploiement d’un outil orchestrateur que l’on appelle le serveur d’intégration. Celui-ci permet de lancer de manière automatique ou manuelle à fréquence variable différentes tâches.

Dans ce cadre, j’ai réalisé une étude comparative des outils d’intégration actuels du marché dont j’ai souhaité partager les résultats aujourd’hui. En effet, il n’existe aucune étude sur internet actuellement qui compare les principaux outils d’intégration du marché. Ces informations sont donc intéressantes pour n’importe quel architecte, chef de projet ou développeur qui souhaite mettre en place ce type d’outil dans son entreprise. Cette étude est basée seulement sur les documentations et informations officielles (forums, blogs des éditeurs) et pas sur des tests réels sur des machines.

Voici les résultats basés sur des besoins identifiés comme important pour un outil d’intégration:

Légende  du tableau

Tableau comparatif complet

Avantages / Inconvénients

L’ensemble des informations de cette étude comparatives des outils d’intégration actuels du marché au dernier trimestre 2011 se trouve sur les tableaux ci-dessus. Les informations sont plutôt denses et complètes d’où la taille assez petite des tableaux. Ces informations pourront, cependant, certainement vous servir si vous devez faire un choix d’outil d’intégration le plus adapté à votre contexte d’entreprise. Sinon, vous pouvez toujours me laisser un commentaire si vous souhaitez plus d’informations…