Archive

Articles taggués ‘.NET’

Modélisation UML avec Visual Studio 2010

Comme je l’avais annoncé dans un précédent billet, j’ai installé Visual Studio 2010 sur une machine virtuelle (merci à la DSI). Mes premiers essais ont porté sur la modélisation UML. C’est un enjeu important pour Microsoft qui va pouvoir compléter son usine logicielle. Aujourd’hui en effet, la modélisation UML se fait généralement avec des outils comme Enterprise Architect.

Afin de me faire une idée objective, j’ai réalisé mes tests sans aucune lecture préalable. Je n’ai pas encore fait le tour des possibilités mais voici mes premières impressions:

  1. La prise en main facile. Il faut créer un projet de modélisation et ensuite ajouter les diagrammes souhaités.
  2. L’interface est conviviale. A titre d’exemple, voici un diagramme de classe : vsts2010-class-diagram
  3. 5 diagrammes sur 13 d’UML sont disponibles : diagrammes d’activités, de composants, de use case, de classes, de séquences. UML n’est pour l’instant pas complètement supporté dans les 5 diagrammes
  4. Je pensais trouver dans cette première version un générateur de code, mais je crois qu’il va falloir attendre (ou alors la fonctionnalité est bien cachée)

Pour terminer, voici 2 fonctionnalités que  je n’ai pas encore testées me paraissent intéressantes:

  1. Les diagrammes ou les éléments de diagrammes peuvent être liés aux work items de VSTS. J’ai utilisé une fonctionnalité équivalente avec le plug-in d’Enterprise Architect, et je trouve celà vraiment pratique.
  2. Les diagrammes peuvent être versionnés dans le gestionnaire de sources très simplement.

API REST en .NET

Suite à mon dernier article sur le RIA et la formation en soirée que j’ai animée, j’ai eu quelques questions sur comment exposer un modèle relationnel dans un mode REST en .NET et plus particulièrement pour un client RIA genre Silverlight.

Je vais donc vous proposer une série d’articles sur le sujet.

Le premier présentera ADO.NET Data Services, le framework de Microsoft qui à partir d’un provider LINQ peut exposer votre modèle d’entité sur HTTP dans un mode REST.

A titre d’exemple, je vais utiliser le prototype que j’ai réalisé pour une application traitant de la traçabilité des produits sanguins au CHU de Grenoble. J’ai donc le modèle d’entités suivant:

Modèle d'entités

Modèle d'entités

Depuis Visual Studio, j’ai créé un service ADO.NET Data Services. Je lui ai indiqué mon modèle d’entités et j’ai ajusté les autorisations. La ligne suivante indique que les entités Etat sont accessibles en lecture seule.

config.SetEntitySetAccessRule(« Etat », EntitySetRights.AllRead);

Mon modèle est maintenant accessible sur HTTP. Je peux regarder sa description à l’URI suivante : http://mondomaine.com/DTI.svc/

Le modèle REST exposé par ADO.NET Data Services

Le modèle REST exposé par ADO.NET Data Services

Les connaisseurs noteront que la description de notre API utilise Atom Publishing Protocol et Atom Syndication Format.

Je peux maintenant interroger mon modèle en requêtant directement avec mon navigateur. Par exemple, pour avoir toutes les poches, je vais utiliser l’URI http://localhost:2427/DTI.svc/Poche

Personnellement, pour vérifier mes requêtes j’utilise Fiddler. Par défaut, on obtient un feed Atom contenant une collection de poches. ADO.NET Data Services supporte également le format JSON. Si dans Fiddler, vous modifiez le header HTTP Accept avec application/json vous obtiendrez un flux JSON:

Une collection de poches au format JSON

Une collection de poches au format JSON

ADO.NET Data Services ne se limite pas à récupérer une collection d’entités. On peut filtrer les entités sur certains critères. Par exemple l’URI http://localhost:2427/DTI.svc/Poche?$filter=NumDon%20%eq%20%12345678 me permet de récupérer la/les poches dont le champ NumDon vaut 12345678. On peut également récupérer les entités associées aux poches. L’URI http://localhost:2427/DTI.svc/Poche?$expand=Tracabilite récupère les poches avec leurs traçabilité sachant qu’une poche peut avoir plusieurs traçabilités.

Les principales fonctionnalités de requêtage sont disponibles: filtre, tri, pagination. Le format des URI est décrit ici

Dans les applications de gestion de données, on ne se limite pas à afficher des données. On souhaite aussi ajouter, modifier, supprimer. Dans le monde REST, on utilise pour cela le verbe HTTP. Par défaut, lorsque vous saisissez une URI dans votre navigateur, c’est le verbe GET qui est utilisé. Mais on peut aussi utiliser les verbes POST, PUT ou DELETE si les conditions d’accès que nous avons définies sur le serveur le permettent.

On peut noter que toute cette API repose sur des standards reconnus: HTTP, Atom, JSON. Elle peut donc être interrogée par n’importe quel client qui supporte ces standards.

Dans le prochain article, j’expliquerai comment interroger cette API à partir d’un client Silverlight et de LINQ For ADO.NET Data Services.

Visual Studio 2010 en beta 1

La beta 1 de Visual Studio 2010 est disponible depuis le milieu de semaine. Une présentation générale est également disponible.

Les enjeux importants de cette version sont à deux niveaux:

  1. l’IDE en tant que tel avec tout ce qu’il peut apporter pour le développeur (modèles de projets Azure par exemple, support natif de JQuery,…)
  2. Mais n’oublions pas que derrière cette interface, il y a une nouvelle version de .NET avec la programmation parallèle et le support de P-LINQ, Entity Framework 4.0,…

Je suis en train d’installer cette beta 1 sur une machine virtuelle et ferai part de mes premiers retours.

Categories: .NET, Outillage Tags: , ,

Techdays 2009 : les webcasts

Pour ceux qui n’ont pu assister aux Microsoft TechDays 2009, les webcasts de l’ensemble des sessions sont désormais disponibles : http://www.microsoft.com/france/vision/mstechdays09/

Categories: .NET Tags: ,

Séminaires techniques : Piloter un projet agile avec Team System

Objet Direct et Microsoft co-organisent et co-animent  2 séminaires sur le thème «Piloter un projet agile avec l’usine logicielle Team System de Microsoft», le 24 mars à Lyon et le 31 mars à Grenoble.

Dominique Mera, directeur de projet Objet Direct, Jean-François Sublet, référent technique Microsoft et Eric Le Loc’h, expert Team System chez Microsoft se partageront l’agenda de ces matinées techniques qui incluront démonstrations et retours d’expérience avec le cas de notre client le CHU Grenoble.

Inscription en ligne

En savoir + : Objet Direct, Site MSDN, Blog Team System

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: , , , ,

Bonne année 2009 !

L'équipe Objet Direct vous souhaite une très bonne année 2009

L'équipe Objet Direct vous souhaite une très bonne année 2009

Nous démarrons l’année avec un planning d’événements techniques déjà fourni : en février, nous vous invitons à participer avec nous aux Microsoft Tech Days à Paris (les 10-11-12) ; en mars, nous animerons un Atelier MDA (le 17, à Paris) et vous inviterons à nos séminaires techniques sur le thème du pilotage de projets agiles avec Team System (le 24 à Lyon, le 31 à Grenoble).

A bientôt pour davantage de précisions !