Archive

Archives pour 02/2009

Techdays 2009 : Microsoft et l’agilité

Ayant également été trainé mes guêtres dans les allées des Tech Days 2009, je ne reviendrai pas sur les points déjà abordés par Jean-François et Olivier comme Oslo et le MDA, ou l’arrivée de plusieurs diagramme UML dans Visual Studio 2010. Je ne vous parlerai pas non plus de l’attrait de la barbe à papa ou du popcorn sur certains stands ou des hôtesses sur celui de Windows 7.

Par contre, je tenais à vous informer du support des méthodologies agiles par Visual Studio 2010 et en particulier de Scrum. En effet, celui-ci permettra de gérer un projet en Scrum de la gestion du backlog à la diffusion de la burn down chart. De plus, Visual Studio 2010 permettra également, en plus des tests automatisés, la saisie de tests fonctionnels manuels avec enregistrement des manipulations du testeur ce qui aidera les développeurs à reproduire les éventuels problèmes.

Tech Days 2009 (suite)

Ayant également eu le plaisir de participer aux Tech Days 2009, je vous présente quelques éléments en complément de ceux apportés par Jean-François :

Sync Services for ADO.NET

Tout d’abord une petite précision sur le vocabulaire employé, car la confusion peut vite gagner. Microsoft Sync Framework (MSF) est la plateforme Microsoft de synchronisation permettant la collaboration et le travail en mode déconnecté pour les applications, services et périphériques. Plusieurs fournisseurs de synchronisation (providers) permettent de manipuler ce framework :

  • Sync Services for ADO.NET : Permet la synchronisation de sources de données ADO.NET
  • Sync Services for File Systems : Permet la synchronisation de systèmes de fichiers et dossiers
  • Sync Services for SSE : Permet la synchronisation d’extensions comme RSS ou encore ATOM

La session à laquelle j’ai participé présentait exclusivement le fournisseur Sync Services for ADO.NET. Nous avons pu voir comment élaborer simplement une application permettant de travailler sur une base client en déconnecté à partir d’un laptop et d’un PDA. Au programme : synchronisation des bases, change tracking et résolution des conflits. Je dois bien avouer que l’API et les assistants de Visual Studio permettent d’effectuer toutes ces tâches très simplement !

Pour clore cette session, nous avons même eu droit à une démonstration de la même solution sur un PDA en Java, renforçant ainsi la volonté affichée de Microsoft en matière d’interopérabilité.

WPF et Silverlight 2

Nouveaux fleurons de Microsoft pour le développement d’interfaces utilisateurs riches, les technologies Windows Presentation Foundation (WPF) et Silverlight 2 ont eu, comme nous pouvions nous y attendre, la part belle au cours de ces trois jours.

Comme le disait Jean-François et malgré le discours officiel il semble bien que Microsoft souhaite voir WPF succéder aux Winforms. Aussi, la plupart  des démonstrations mettant en jeu une interface graphique ont été réalisées en WPF.

Côté mise eu œuvre, plusieurs sessions traitaient des bonnes pratiques pour la réalisation d’un projet avec ces technologies. De ce côté-là, rien de bien nouveau. Les préconisations sont d’utiliser des design patterns d’interface utilisateur tels que M-V-C, M-V-P et, celui qui est à priori le plus approprié : M-V-VM (Model-View-ViewModel). Ces modèles permettent entre autre de faciliter ce qui constitue la deuxième préconisation : faire des tests !

Donc vous l’aurez compris, l’objectif était surtout de convaincre les frileux et les indécis de franchir le cap du XAML.

C# et LINQ avancé (Geek inside)

Pour terminer, une session que j’ai particulièrement appréciée sur la programmation avancée avec C# et LINQ. Elle était animée par Mitsuru Furuta, une référence dans le monde Microsoft. Au programme : LINQ, generics, inférence de type et expression lambda. L’objectif était de mettre en œuvre efficacement ces concepts au travers de trois exemples utiles. Pour plus d’information, je vous renvoie à son blog où vous pourrez consulter deux de ces exemples :

Categories: .NET Tags: , , , , , ,

Tech Days 2009

Me voici de retour des Tech Days 2009, évènement majeur organisé par Microsoft. A titre informatif, on parle de 5000 m2 de stands (dont celui d’Homsys Group), de 16000 visiteurs sur les 3 jours, de 300 sessions !

J’ai assisté à quelques unes de ces sessions.

Quelques éléments :

De belles initiatives :

  • par exemple le langage « M » : un langage déclaratif qui va nous permettre de définir nos propres modèles. C’est une des briques de la plateforme Oslo, plateforme MDA de Microsoft. Un sujet à suivre, qui va dans le sens de la démarche MDA d’Objet Direct.
  • avec Oslo, vient aussi la prochaine version de Visual Studio qui supportera UML. En capitalisant sur les DSL Tools qui permettent par exemple de définir des diagrammes de classe, et en profitant de l’expérience de Steve Cook, grand contributeur d’UML, l’outil risque d’être fort intéressant. Dans cette tendance, Microsoft a déjà rejoint l’OMG pour contribuer aux évolutions d’UML.

Des évolutions importantes sur la plateforme de développement .NET :

  • WCF, la plateforme nous permettant de développer et de déployer des services. La version 4 nous offrira des facilitateurs pour exposer des services RESTFull à l’aide d’annotations positionnées dans le code, le support de standards comme WS-Discovery.
  • WF 4, la plateforme de workflows, profondément remanier afin d’améliorer la composition de workflows (un workflow peut être vu comme une activité)
  • Entities Framework, la solution de mapping Objet / Relationnel préconisée par Microsoft. La v2 va s’inspirer des outils existants comme NHibernate avec le support des POCO, de la génération du modèle relationnel à partir du modèle objet, d’un outil de migration de Linq To SQL vers Entities Framework. Je vous laisse présumer de l’avenir de Linq To SQL…

2 sessions sur les Winforms qui en disent long sur la direction que souhaite prendre Microsoft:

  • WPF pour les développeurs WinForms
  • Migration de WinForms vers WPF: je n’ai pas pu assister à cette session comme beaucoup d’autres d’ailleurs faute de place: la salle était plus que pleine !

Quelques sujets annexes:

  • Mono et MoonLight, des initiatives poussées par Novell, permettant la portabilité des applications .NET sur des plateformes Linux. La version 2.0 est une version vraiment importante. A titre d’exemple, l’application Paint.NET a été entièrement portée sur Mono. Par ailleurs, il est possible de télécharger une VM Suse avec différentes applications à tester.
  • Biztalk 2009 et le support de la norme HL7, un standard complexe décrivant les échanges de messages dans un SIH (système d’information hospitalier). Le connecteur facilite grandement l’intégration des  applications, tout en bénéficiant des fonctionnalités de la plateforme Biztalk, par exemple l’orchestration ou la médiation avec d’autres applications.
Categories: .NET Tags: , , , ,

Google Web Toolkit et Dojo : Tatami version 1.3

Logo OD labs projet soutenu par Objet Direct
Tatami est le projet Open Source d’Objet Direct pour le développement d’applications GWT. Une nouvelle version est arrivée mi décembre, la version 1.3. C’est effectivement notre troisième mouture depuis la création du projet (été 2007). Rappelons que Tatami a l’ambition majeure d’encapsuler le toolkit JavaScript nommé Dojo (www.dojotoolkit.org) afin de fournir les richesses de cette immense librairie en GWT.
Le projet est hébergé sous Google Code : http://code.google.com/p/tatami/
Dans cette  dernière version beaucoup de points ont été abordés, que ce soit en termes de nouveaux composants, conception ou de livraison.
Ainsi, voici une liste des nouvelles fonctionnalités disponibles :

  • Encapsulation de la version de  1.2.3  de Dojo.
  • Intégration de la nouvelle API pour la DataGrid.
    Dojo 1.2.1 arrive avec de nouvelles fonctionnalités pour la DataGrid ainsi que quelques changements dans l’API.
  • API  pour la gestion de Drag And Drop.
    Intégration de l’API Dojo pour effectuer du Drag and Drop entre les composants.
  • API pour la réalisation de charting.
    Création de diagramme en bâtons, camembert, nuages… avec différents effets.
  • De nouveaux Widgets :
    • Un  BorderContainer.  Comme le DockPanel GWT mais utilisant le layout Dojo,  l’accessibilité est ainsi améliorée.
    • Le widget Tree de Dojo.
  • API pour la gestion des thèmes Dojo :
    Plus besoin de rajouter dans le fichier bootstrap du module GWT la classe CSS dans l’élément body. Les thèmes disponibles sont ceux de Dojo :

    • Tundra
    • Soria
    • Nihilo

Ci-dessous un exemple pour utiliser le thème Nihilo avec le thème chrome des composants GWT.

<inherits name= »com.google.gwt.user.User »/>
<inherits name= »com.google.gwt.user.theme.chrome.Chrome »/>
<inherits name= »com.objetdirect.tatami.Tatami_dojoAll »/>
<inherits name= »com.objetdirect.tatami.theme.Nihilo »/>

On peut aussi changer de thème  de façon programmatique :


Tatami.applyTheme(Tatami.NIHILO_THEME,false);

  • Optimisation des modules Dojo chargés selon les besoins du développeur.
    Les versions précédentes de Tatami utilisaient le chargement dynamique des scripts Dojo afin de créer les différents objets. Cette approche pouvait être pénalisante pour un utilisateur ne souhaitant utiliser qu’un module spécifique comme le charting, gfx ou uniquement des widgets car beaucoup de requêtes sont envoyées. Afin d’optimiser cela, Dojo propose un outil permettant de créer des modules JavaScript chargeant les ressources nécessaires qui éviteront ainsi toutes ces requêtes.  C’est pourquoi, plusieurs modules GWT existent désormais dans Tatami :

    • Tatami_Base : Tatami sans Dojo, le framework Dojo ne sera pas chargé, YUI non plus. L’intérêt de n’utiliser que ce module n’a pas vraiment de sens pour le moment.
    • Tatami_DojoBase : Tatami et Dojo avec chargement dynamique de tous les objets. Dans ce module, le drag and drop YUI n’est pas possible.
    • Tatami_DojoCharting : Tatami et Dojo avec une optimisation des chargements des objets pour effectuer du charting.
    • Tatami_DojoGFX :  Tatami et Dojo avec une optimisation des chargements pour l’utilisation du package gfx.
    • Tatami_DojoWidget : Tatami et Dojo avec une optimisation des chargements pour l’utilisation des widgets (DatePicker, DataGrid…).
    • Tatami_DojoALL : importe toutes les modules d’optimisation de chargement. Ce module impliquera un chargement plus long pour l’application la première fois mais une création des composants plus fluide.
    • Tatami_YUI : Tatami et les scripts YUI pour effectuer du Drag and Drop. Dojo ne sera pas chargé.
    • Tatami : Ce module importe les modules suivant : Tatami_Base, Tatami_DojoBase, Tatami_YUI ainsi que le thème Tundra. On reste donc en chargement dynamique par défaut avec le thème tundra.

Un utilisateur de Tatami ne souhaitant utiliser que le module de charting pourra optimiser le chargement de ses composants dans l’application en important le module Tatami_DojoCharting par exemple.

  • Refonte du packaging du projet :
    Tatami est maintenant découpé en 6 sous-projets.

    • TatamiJS : projet concernant la gestion des versions de Dojo, YUI etc…  ainsi que les différents builds possibles pour optimiser le chargement des objets Dojo. En clair, dans ce projet se trouvent toutes les librairies JavaScript utilisées.
    • Core : Développement des différents composants GWT faisant partie du projet Tatami. Ce projet est dépendant du projet TatamiJS évidemment.
    • Tests : Projet permettant d’effectuer les tests sur les différents composants en utilisant HTMLUnit.
    • TestUtil : Projet contenant différentes classes « Helper » pour le projet tests.
    • Demo : Projet de type showcase, démontrant les différents composants de Tatami.
    • Tatamix : Ce projet est une extension de Tatami. Dans ce projet on va trouver des widgets « expérimentaux » c’est à dire des widgets non industrialisés, mais pouvant être tout de même très utiles aux développeurs. Dans ce projet on trouve par exemple : Un framework HMVC (Hierarchical Model View Component) pour faciliter le développement des applications GWT, divers widgets natifs GWT comme GlassDialog, OptionPanel, Loader, Title etc… ou simplement des widget Tatami étendu ou faisant partie d’une composition comme ColorEditor. Le projet TatamiX est distribué dans un jar à part, mais dépend d’une version de Tatami.
  • Tatami-1.3  est toujours livré sous un jar contenant toutes les dépendances JavaScript (Dojo, YUI).
    La documentation utilisateur est maintenant disponible en ligne directement : TatamiUserDocumentation.html ou en version imprimable : TatamiUserDocumentation.pdf. Le projet utilise l’outil Lyx pour générer les différentes documentations. Lyx est un outil WYSIWYG basé sur LaTeX.
    Les démos en ligne de la version sont disponibles ici : showcase et TatamiPlayer.

Enterprise Architect 7.5 beta

logo_enterprise_architect

Sparx Systems vient de mettre à l’essai une version 7.5 beta d’Enterprise Architect qui comporte un certain nombre d’évolutions qui sont surtout orientées vers l’architecture d’entreprise et l’urbanisation, mais qui intègre également des nouveautés orientées temps réel.
Concernant l’architecture d’entreprise on note principalement :

  • l’intégration de la norme de modélisation métier BPMN 1.1 et la génération de BPEL (Langage de processus exécutables)
  • l’intégration de nouveaux diagrammes concernant la stratégie et notamment un diagramme de business scorecard
  • la modélisation des business rules

Concernant le temps réel on note la possibilité de générer du code à partir des diagrammes comportementaux, notamment les state machine, mais également les diagrammes de séquence ou d’activité.

Cette nouvelle version s’accompagne d’une refonte de l’offre produit. Il y aura maintenant 3 versions :

  • une « Business Engineering Edition » dédiée comme son nom l’indique à l’architecture d’entreprise et à l’urbanisation
  • une « Systems Engineering Edition » orientée développement et qui intègre notamment les aspects temps réel
  • une « Ultimate Edition » qui regroupe les fonctionnalités des deux précédentes.

Je vous invite à lire la page suivante pour en savoir plus http://sparxsystems.com.au/products/betas.html

On note de plus en plus la volonté de Sparx de s’orienter sur le terrain des outils comme Mega, Aris et autres outils de modélisation dédiés à l’architecture d’entreprise et à l’urbanisation, sans pour autant laisser de côté la dimension développement.
Bref, EA essaie de couvrir toute la gamme de modélisation là où auparavant on devait généralement utiliser plusieurs outils. On remarquera au passage que des outils comme Mega ou Aris font le chemin dans l’autre sens.

Categories: UML Tags: ,