Nov.08

[NetFx3] Présentation du Windows Communication Foundation (WCF)

Résumé:
WCF pour Windows Communication Foundation est l’une de quatre nouvelles briques apportées par .NET Framework 3.0. Cette brique unifie le développement des applications distribuées. Cet article présentera les bases de cette plateforme avec un exemple concret d’application en mode de client-service.

Sommaire:

Pour ceux qui serait intéressé :

Perso,Dev,.NET

Nov.07

[MS] Ca bouge la haut : l’arrivée en masse des RTM

Belle journée en perspective (encore faudrait il que j’arrive à finir mon article français/anglais sur WCF 🙂 ) avec la sortie en version RTM* du .NET Framework 3.0 et du Windows SDK for Vista.

Toujours dans les news, notez la sortie du Microsoft ASP.NET AJAX Extention (ex-Atlas) en version Beta 2 ainsi que les sorties RTM d’Office 2007 et des VSTO (Visual Studio Tools for Office).

Les liens :

Bref pour une première semaine de Novembre ça promet, en attendant les feedbacks du Tech-Ed !! Tous à vos downloads 🙂

UPDATE du 09/11/2006:
Les oublies :

Info,.NET

Sep.16

NDepend : Analysez votre code

C’est en lisant le blog de Patrice (encore bon anniversaire à toi au passage ^^) que j’ai découvert l’outil NDepend de Patrick Smacchia.

Pour reprendre la description officielle :

NDepend is a tool for .NET developers and architects. It analyses assemblies and source code of .NET applications and generates reports which contain design quality metrics, warnings and advices and diagrams.

En d’autre terme, c’est un outil d’analyse d’ assembly .NET 🙂

Vous trouverez 3 executables :

  • NDepend.Console.exe : le moteur d’analyse
  • NDepends.Project.exe : application de gestion des projets NDepend pour configurer les options d’analyse, les assembly à analyser, etc..
  • VisualNDepend.exe : outils de visualisation de l’analyse en mode graphique et d’interrogation de résultat grâce à son langage QCL

Votre assembly sera analysé selon plus d’une 50aines de metriques classés en 6 catégories :

  • Métriques sur l’application
  • Métriques sur les assembly
  • Métriques sur les namespaces
  • Métriques sur les types
  • Métriques sur les champs
  • Métriques sur les methodes

La liste complète et documentations associées : http://www.ndepend.com/Metrics.aspx

A cela est rajouté un langage d’interrogation un peu comme le SQL : le QCL dont les specs sont à l’adresse : http://www.ndepend.com/CQL.htm.
Par exemple, pour afficher la liste des methodes dont le nombre d’instructions IL est supérieur à 200 triée de manière décroissante on passera la requete :

Je l’ai testé et franchement cet outil est vraiment génial et super bien foutu. Il m’est surtout d’une très grande aide pour mon projet SimImmuno II dont le projet a commencé depuis près d’un an ^_^

Alors n’hésitez pas, la beta 2 est gratuite jusque fin Janvier 2007 🙂

.NET

Sep.13

S’amuser avec MSN et .NET : DotMSN

DotMSN est un projet OpenSource proposé par la socièté Xih Solutions disponnible à l’adresse : http://www.xihsolutions.net/dotmsn/.
DotMSN est une assembly .NET écrite en C# qui implémente la quasi-totalité du protocole MSN dans sa version 9.
Vous pourrez grâce à DotMSN:

  • gérer les connexions à MSN, les status, données personnels et images perso
  • gérer la ContactList (ajout, suppression, bloquer, autoriser)
  • gérer de multiples conversations, les emoticones, texte décoré, etc…
  • interface avec Hotmail (connexion, avertissement des nouveaux mail, etc..)
  • gestion des transferts (fichiers, emoticones, images perso des contacts)

Bref, grâce à DotMSN vous pouvez redevelopper entierement votre propre client MSN. La seule chose à la limite qu’il manque, c’est la gestion du Wizz 🙂

Toutes les specs de l’assembly sont disponnible à l’adresse: http://www.xihsolutions.net/dotmsn/api
DotMSN contient 3 espaces de nom :

  • XihSolutions.DotMSN : classes de base pour la connexion/deconnexion, conversation, parametres persos, etc…
  • XihSolutions.DotMSN.Core : c’est le moteur, là où se trouve toute l’implémentation du protocole. Nous n’avons pas besoin d’utiliser les classes qu’il renferme.
  • XihSolutions.DotMSN.DataTransfer : toutes les classes en rapport avec le transfert de fichiers, images, emoticones, etc..

Pour démarrer, commencez par instancier la classe Messenger (dans XihSolutions.DotMSN) puis remplir la propriété Credentials avec comme Account et Password votre compte MSN et le ClientID = « msmsgs@msnmsgr.com » et ClientCode = « Q1P7W2E4J9R8U3S5 » pour enfin lancer la méthode Connect

Vous êtes maintenant connecté au service MSN mais pas encore en ligne. Pour cela abonnez-vous à l’évenement SignedIn dans Nameserver de votre objet MSN (AddHandler msn.Nameserver.SignedIn, AddressOf ….). L’évenement sera appellé dès que votre connexion sera effective. En reponse à l’appel de cet evenement, placez le code :

Le code aura pour but de définir votre pseudo ainsi que votre status.

La proprièté Owner permet donc de definir votre profil, nom, image perso, status, etc… Vous trouverez aussi la propriété ContactList pour la liste de vos contacts. Exemple pour afficher votre ContactList :

Il faudra aussi vous abonnez à l’évenement ConversationCreated de la classe Messenger qui averti qu’une nouvelle conversation est crée. Vous recuperez alors l’objet Conversation qui contient la propriété Switchboard pour pouvoir lire les messages, en envoyer, lancer des invitations de transfert de fichiers, etc… A ce titre, dès qu’une conversation est crée, n’oubliez pas aussi de vous abonnez à l’événement Conversation.Switchboard.TextMessageReceived permettant d’être averti de l’arrivée d’un message.

Enfin pour finir, après la connexion du service MSN, oubliez pas non plus de vous abonnez à l’évenement TransferInvitationReceived de l’objet Messenger permettant d’être averti de l’envoi d’une invitation de transfert. Vous pourrez alors l’accepter en mettant True à la propriété Accept de MSNSLPInvitationEventArgs et démarrer le transfert dans TransferSession.StartDataTransfer(False) (False pour un transfert non direct et True pour direct).
Encore une fois, il faudra vous abonnez à l’évenement TransferFinished de la propriété TransferSession pour être averti de la fin du téléchargement.
Pour enregistrer le fichier transferé en dur dans un fichier :

Voila, vous êtes maintenant paré pour ecrire votre propre client MSN ^_^ Le mieux, pour bien comprendre, est de regarder les specs de l’assembly pour trouver tous les evenements et methodes dont vous aurez besoin. Vous trouverez de toute facon, un client de démo avec les sources fournis en téléchargeant l’assembly DotMSN. Si avez des soucis, n’hesitez pas à me contacter 🙂

Dev,.NET

Jul.17

NetFX3 Part I – Windows Workflow Foundation

La premiere partie sur de mon introduction au .NET Framework 3 sera consacré à WF (ou WWF 😀 ) pour Windows Workflow Foundation.

Revenons d’abord au Workflow
Qu’est qu’un workflow ? Comme je le citais dans mon 1er post sur Netfx3, un workflow est la modélisation et la gestion informatique de l’ensemble des tâches à accomplir et des différents acteurs impliqués dans la réalisation d’un processus métier. Le terme de « workflow » pourrait donc être traduit en français par « gestion électronique des processus métier ». (source Wikipedia).

Un processus métier représente les interactions sous forme d’échange d’informations entre divers acteurs tels que :des humains, des applications ou services, des processus tiers… Il fournit en outre, à chacun des acteurs, les informations nécessaires pour la réalisation de sa tâche. Pour un processus de publication en ligne par exemple, il s’agit de la modélisation des tâches de l’ensemble de la chaîne éditoriale, de la proposition du rédacteur à la validation par le responsable de publication. (Source CommentCaMarche.net)

En quelque sorte le workflow est la logique de votre programme. C’est une série d’étapes décrivant les activités des différentes personnes et applications impliquées dans le processus. Toutes les applications pourraient être modélisées dans un workflow. Pour un processus de publication en ligne par exemple, nous pourrions le modeliser en 4 étapes :

  • Création et edition des articles par un rédacteur
  • Traduction de l’article
  • Mise en page de l’article
  • Validation du redacteur en chef

Windows Workflow Foundation

WF est une plateforme de developpement de workflow qui vient se greffer au dessus du framework .NET 2.0. On parle bien de « plateforme de developpement » et non d’un produit permettant la conception de workflow comme BizTalk.

Le Workflow Foundation définit deux types de workflows :

  • les workflows de type « Sequential » (workflow séquentiel) utilisés pour les workflows faisant intervenir des applications et dont le fonctionnement est prédictible.
  • les workflows de type « State Machine » (workflow à état) pour les workflows faisant intervenir des personnes et dont le fonctionnement est régi par leur comportement et les actions qu’ils effectuent.

WF offre la possibilité de developper des workflows sur technologie .NET de manière très simple et incroyablement rapide par l’integration d’un designer à Visual Studio 2005 (et bientôt Orcas, le successeur de VS2005).

Les workflows ne peuvent être executés directement. Ils sont compilés dans une DLL (Assembly .NET), c’est pourquoi nous avons besoin d’une application « host » en web, win, console ou autre pour heberger et executer notre workflow.

Avec WF nous avons une notion d’Activity. Un workflow est consistué d’Activity qui ont tous une tache à accomplir (Test IfElse, boucle While, Execution de code, invoquation de webservice, etc..). Workflow Foundation propose plus d’un vingtaine d’Activity de base, mais vous avez la possibilité de developper vos propres Activity et/ou d’en télécharger sur Internet (ex: l’activity SendMail).

Les workflows sont soit decrit en XML que l’on appelle le XOML* (à ne pas confondre avec le XAML de WPF), soit dans du code ou soit en mixte (XOML + Code). Un projet open-source nommé WFPad permet de visualiser graphiquement et d’editer le code XOML d’un workflow totalement independament de VisualStudio. On pourrait penser à un DRH qui viendrait modifier en drag&drop à chaud, sans aucune connaissance en informatique, le workflow d’un processus d’une application de demande de congés des employés par exemple.

WF offre donc une plateforme de developpement de workflow simple, puissante et totalement extensible. La difficulté n’est pas plus dans le developpement mais dans la modélisation.

*: D’après certaines sources, le nom XOML devrait disparaître pour être appellé XAML. Le XAML servirai donc pour la réalisation des IU sous WPF et pour la conception des workflows sous WF.

Comment demarrer ?
Installation
Premierement, il est indispensable de posséder le framework .NET 2.0 car la technologie .NET 3.0 n’est qu’une surcouche du .net 2.0 et Visual Studio 2005 pour pouvoir developper vos workflows.
Ensuite, téléchargez et installer Microsoft Pre-Release Software Microsoft .NET Framework 3.0 – June 2006 CTP
Pour finir, il vous faudra installer les extentions pour VS2005 : Microsoft® Visual Studio® 2005 Extensions for Windows® Workflow Foundation Release Candidate 2

Ressources
Site NETFX3 :

Article sur SUPINFO Project
Article sur TechHeadBrothers
Workflow-Foundation.com

Je publirai en debut de semaine mon (1er) Webcast sur le Workflow Foundation.

En esperant avoir été bien compris, n’hesitez pas à me laisser des commentaires ou m’envoyer un mail pour toutes suggestions, questions ou critiques. Prochaine partie : le Windows Communication Foundation 🙂

.NET,Workflow Foundation

Jul.03

NetFX3

What is NetFx3 ?
Tout simplement le Framework .NET Version 3.0 anciennement appelé WinFX 😀
En fait le Dotnet 3 n’est pas vraiment un nouveau framework, la formule magique de Dotnet3 est : NetFx3 = Dotnet2 + les techno WinFX (WPF, WF, WCS et WCF) !!!

Cette nouvelle version est donc un dotnet 2 (CLR2.0+BCL2.0) que l’on ne presente plus avec les 4 nouvelles technologies :

  • WCF (Windows Communication Foundation anciennement appelé Indigo) : c’est la couche communication de .NET ! A terme, toutes les applications communiqueront ensemble grâce à WCF ! Plus besoin pour le developpeur de choisir de developper un webservice SOAP plutot qu’une application en .NET Remoting ou en Tunneling, un simple parametre permettra de choisir la maniere dont les applications communiquent 🙂 C’est grâce aussi à WCF que l’on peut par exemple developper des applications comme le petit bot MSN Encarta !! En clair, WCF est un ensemble d’API permettant la sécurité, la fiabilité, et interoperabilité des communications des applications distribuées !
  • WF (Windows Workflow Foundation) : c’est un modèle & moteur pour developper très rapidement des workflows dans des applications ! Mais qu’est qu’un workflow ? C’est la modélisation et la gestion informatique de l’ensemble des tâches à accomplir et des différents acteurs impliqués dans la réalisation d’un processus métier. Par exemple la publication d’un article peut etre découpée en plusieurs étapes : rédaction -> enregistrement -> validation -> publication ! Ces étapes peuvent être modèlisées dans un workflow !! Avec WF, on peut créer son workflow rapidement et simplement dans un designer (mode graphique !) 🙂
  • WCS (Windows CardSpace anciennement appelé Infocard) : c’est un système d’authentification sécurisé, simple, et rapide ! Cela nous rappelle Passport qui avait connu un echec car il était reproché à MS de tout centraliser chez eux. Avec WCS, Microsoft promet qu’avec InfoCard ces informations seront bien gérées par l’utilisateur et par les services en ligne.
  • WPF (Windows Presentation Foundation anciennement appelé Avalon) : ceux qui été là à la conf. de Morpheus s’en souviennent ! C’est la nouvelle génération de présentation des applications ! Ca met a disposition des developpeurs et des designers un modèle simple et riche de présentation des applications Win,Web et Smart où toute l’interface graphique sera decrite dans un fichier XAML !!

Avant que j’oublie, il faut savoir qu’il n’y a pas vraiment d’ASP.NET 3.0, mais j’entends dire : ASP.NET 3.0 = ASP.NET 2.0 + Atlas !!!!

Pour être un peu critique en vers mon edtiteur préferé (^_^), pourquoi .NET 3.0 alors que ça embarque une CLR 2 ? Je reste toutefois d’accord avec eux sur ce choix marketing mais je regrette de ne pas avoir une nouvelle CLR et surtout la v3 de C# ! Je ne sais pas comment ca se passera dans le futur, mais je crainds un décalage constant dans les n° de versions : .NET 4 avec CLR 3, .NET 5 CLR 4, etc…. Enfin « Qui vivra verra » 🙂

Ce petit post n’est qu’une toute petite introduction sur la nouvelle plateforme… Je suis entrain de me former a tout cela, et je reviendrais plus en detail sur chaque techno dans les jours/semaines a venir 🙂

Comme dirait Rédo, QUE DU BONHEUR 😀

.NET

Jun.02

Petit tour du côté d’Atlas

What is ATLAS ?

Atlas is a free framework for building a new generation of richer, more interactive, highly personalized standards based Web applications

En clair, Atlas est une plateforme gratuite pour concevoir des applications Web 2.0 utilisant les concepts de l’AJAX entre autre. Elle est encore en version beta (derniere version a ce jour : April CTP) et est édité par le geant Microsoft.
En une phrase, Atlas est le framework coté client de l’ASP.NET 2.0 mais attention, on est pas obligé de developper en ASP.NET 2.0 pour profiter des librairies Atlas !

Controls Toolkit
En plus des libraires que nous propose la plateforme Atlas, on peut aussi télécharger une panoplie de « Controls » pouvant etre integrés a VS.net. Parmis ces Controls, on y trouve :

  • DragPanel : permet de drag&dropper des Panels
  • DropShadow : permet de cacher des Panels avec animation
  • ModalPopup : permet de créer des « pseudo-fenêtre »
  • PopupControl : permet d’afficher des controls dynamiquement
  • Et bien d’autres….

Ce qui est génial, c’est que tout est automatique… J’ai réalisé une petite page avec un Panel deplacable où l’on veut sur la page, avec un calendrier affiché dynamiquement au clique d’un textbox, et plein de petit gadget en moins de 15min et avec 0 ligne de code juste en utilisant ma souris !!!!!


La fenêtre est déplacable, même les bords arrondis sont gérés par un des controls (RoundedCorners), le message est un ModalPopup et le calendrier (control Calendar) est affiché dynamiquement par le control PopupControl. Et je rappelle que je n’ai ecrit AUCUNE ligne de code pour faire cette simple page !! (….. »Que du bonheur » :-D)

Tous les controls Atlas et leur demo : http://atlas.asp.net/atlastoolkit/

Démarrer avec Atlas
Si vous voulez vous y mettre, j’espere que .net 2.0 & VS2005 sont déjà installés sur votre machine 🙂
Il vous faudra ensuite le framework Atlas et je vous conseille aussi de télécharger le ControlsToolkit :
http://atlas.asp.net/default.aspx?tabid…..
A regarder, la video de Scott Guthrier, le directeur général de .NET : http://download.microsoft.com/download/…../asp_net_atlas.wmv
Toutes les docs sur Atlas sont dispo ici : http://atlas.asp.net/docs/default.aspx

Des démos de sites
Enfin pour finir, voici quelques sites utilisant ATLAS :

Et sans oublier le site officiel : http://atlas.asp.net

.NET,Atlas