décembre 2004 - Messages

[FUN] Don Box Tech Ed 2001

Cela date un peu mais cela reste très fun. Je vous invite à visiter cette page et à regarder cette vidéo pour regarder Don Box qui fait encore une fois preuve d'originalité lors d'une session qu'il présenta au Tech Ed 2001 à Barcelone.

Je ne vous en dis pas plus, à vous de juger...

Compte Rendu Rencontres Visual Basic 9 décembre 2004 à Toulouse

Je vous l'ai indiqué plusieurs fois sur mon blog, Microsoft organise en ce moment les rencontres Visual Basic dans toute la France. Le but principal de ces rencontres et de sensibiliser le développement avec la plate-forme .net et plus particulièrement avec Visual Basic.net. Je me suis donc rendu aujourd'hui à la rencontre VB qui avait lieu sur Toulouse.

74 personnes étaient présentes et ont été très interessées par cette grosse demi-journée. Cette demi-journée fut l'occasion de découvrir vb.net à travers le développement d'applications simples mais variées : une application windows, web, service web, mobile. Nous avons également eu quelques rappels de POO ainsi qu'une introduciton à ADO.net et son mode déconnecté. Les problèmatiques de migration ont été également abordés.

Nous avons donc eu droit à une bonne introduction au développement .net et au VB.net et je suis persuadé qu'il y a plusieurs développeurs présents dans la salle qui ont essayé de developpeur leur première application une fois rentré chez eux grâce à VB.net 2003 Edition Initiation qui est offert gratuitement à tous les participants.

J'ai été également agréablement surpris par les questions posées par le public qui ont bien montré que contrairement à ce que certains pensent les développeurs VB6 savent ce qu'ils font et ce qui se passe derrière...

Si vous êtes développeurs VB 4,5,6 et que vous n'avez pas encore franchi le pas vers VB.net, je ne que vous conseillez de vous rendre aux dernières rencontres VB.net qui seront sur Paris.

Le MSDN Régional Director Sud-Ouest et Eric Vernié (MS France)

[VB.net is not C#] Option Strict

Dans mon post précédent, Matthieu Nicolescu me suggérait un nouveau post pour cette rubrique VB.net is not C# car il semblait plutôt enervé (et il a entièrement raison) des libertés que permet le VB.net.

En effet, par défaut, le code suivant compile mais ne fonctionne pas :

Sub Main()

DoSomething("zzz") ' Le code fonctionne si on met "True" à la place de "zzz"

End Sub

Public Sub DoSomething(ByVal param As Boolean)

If param Then

Console.WriteLine("Le paramètre est à True")

End If

End Sub

Je suis entièrement d'accord il est plutôt choquant que ce code compile sans problème et lève une exception lors de l'éxécution. Cela est du au langage VB lui même qui est très, et même trop permissif. En effet, il est toujours possible de ne pas déclarer ses variables en VB.net. (il suffit de mettre un Option Explicit Off), et on peut toujours laisser faire le compilateur VB pour le cast des variables et ainsi ne se soucier de rien. Si l'on souhaite éviter que le code présenté ci-dessus compile et imposer au développeur le cast explicite il faut mettre la directive Option Strict à On pour tous vos projets VB.net. Vous éviterez ainsi des erreurs plus ou moins subtiles à détecter...

[Rappel] Les rencontres Visual Basic

Je vous rappelle que les rencontres Visual Basic ont lieu dans toute la France et qu'elles continuent. Je serais pour ma part à Toulouse le 9 décembre.

 


Microsoft organise cette année les rencontres Visual Basic dans 7 villes françaises. Ces rencontres seront l'occasion de découvrir .net et ainsi apprécier tous les avantages de la migration vers la plate-forme .net. Vous êtes développeurs VB 6, Delphi, Powerbuilder, Access, vous savez maintenant quoi faire

Pour vous inscrire :
http://galilee.microsoft.fr/vbtour/

07/12/2004 Nantes s'inscrire
09/12/2004 Toulouse s'inscrire
14/12/2004 Paris s'inscrire
15/12/2004 Paris s'inscrire

[VB.net is not C#] Les imports (<=>using)

Les développeurs C# seront sans doute surpris mais le code suivant compile sans aucun problème sous VS.net...

Public Class clsAList

Private m_AList As New ArrayList

Public Sub New(ByVal thearraylist As ArrayList)

m_AList = thearraylist

End Sub

End Class

Vous aurez sans doute remarqué qu'il manque normallement un Imports System.Collections nécessaire à l'utilisation de la classe ArrayList.

Cette classe est compilée sans aucun problème par VS.net alors que si vous saisissez cette classe telle quelle dans un autre IDE (#develop par exemple) ou même dans notepad et utilisez le compilateur vb.net, vous devriez avoir des ennuis...

Comment est-ce possible ? Grâce aux Imports "automatiques" fonctionnalité proposée par VS.net (et même #Develop).

Cette fonction peut paraitre séduisante au premier abord mais je vous déconseille néammoins de l'utiliser. En effet, vous l'avez peut-être déjà compris, cela nuit gravement à la portabilité de votre code source... Imaginons que vous creez une solution sous #Develop que vous ajouter la classe ci-dessus, votre application ne compilera plus, etc.. etc... Vous avez compris le problème...

En conclusion mettez explicitement tous les Imports nécessaires dans vos classes pour éviter ce genre d'ennuis...

Les développeurs C# n'auront pas ce genre d'ennuis puisque cette fonction n'est pas implémentée.

Emulateur dans emulateur... (suite et fin)

Après quelques recherches sur les raisons de l'incompatibilité de Virtual PC et l'émulateur utilisé par Visual Studio.net 2003, je me suis rendu compte que l'émulateur utilisé par VS.net ne semble être rien d'autre qu'une sorte de Virtual PC. En effet, cet émulateur n'est pas développé par Microsoft mais par... Connectix la société créatrice de Virtual PC qui s'est fait rachetée par Microsoft... En conclusion ce bug est dit "by design" puisqu'il est n'est pas possible de faire tourner une machine virtuelle VPC à l'intérieur d'une autre machine virtuelle VPC.

Bonne nouvelle, l'émulateur livré avec VS 2005 a été entièrement refait et fonctionne sous Virtual PC. Encore une raison d'attendre avec impatience Octobre ou Novembre 2005...

3637

 

Emulateur dans Emulateur...

grrr

Je n'aime pas trop Virtual PC et le problème que je rencontre n'arrange pas l'opinion que j'ai de ce logiciel...

Il est apparemment impossible d'utiliser l'émulateur Pocket PC ou autre livré avec Visual Studio.net 2003 sous Virtual PC... J'ai trouvé plusieurs personnes ayant ce problème sur le net mais je n'ai trouvé aucune solution pour palier à ce problème... Quelqu'un a une idée ??

[VB.net is not C#] Les interfaces

Autre différence entre VB.net et C# : les interfaces. Les interfaces en C# profitent du fait que l'objet représenté par l'interface héritera forcément de System.Object. C'est donc tout naturellement qu'une interface (en c#) implémente les méthodes GetType, ToString etc... de System.Object. Voir ci-dessous :

 

En VB.net, il en est tout autrement comme vous pouvez le voir ci-dessous.

VB.net ne vous permet pas d'utiliser directement les méthodes ToString, GetType pour les interfaces comme c'est le cas en C#, vous devez caster votre interface en un objet pour arriver au même résultat.

On peut se dire que le VB.net à raison, une interface étant un contrat, et donc la consommation de cette interface ne devrait permettre d'utiliser que les méthodes publiées mais la où le C# à raison, c'est que n'importe quel objet implémentant une interface hérite forcément de System.Object.

Outre la question de la pertinance du choix pour telle ou telle implémentation -nous vous laissons discuter de cela dans les commentaires - le fait est que, par exemple, lors ce que l'on récupère une interface, et qu'on veut travailler sur son type, il va falloir créer une variable temporaire, déclarée comme un Object, pour pouvoir enfin accéder à ces méthodes.

Nouvelle rubrique sur mon blog : VB.net is not C#

  Je ne vous apprends rien en vous indiquant que VB.net est différent de C# mais je vais quand même vous présenter avec l'aide de mon compère quelques différences plus ou moins subtiles qu'il y a entre les deux langages.

Jb a déjà posté à ce propos en présentant une différence au niveau du switch (pardon, le select case). VB.net supporte en effet les switch sur des types ce qui n'est pas le cas du C# :


http://blogs.labo-dotnet.com/colophon/archive/2004/09/16/4016.aspx

[Astuce] Changer la taille de son code dans VS.net en un clic

Ci-dessous une macro sans prétentation mais très pratique si vous faites des présentations ou donnez des cours en faisant des démos avec Visual Studio.net. Elle vous permet de régler la taille de votre code pour la rendre visible au plus grand nombre. Il ne reste plus qu'a créer des boutons pointant vers les procédures de la macro et le tour est joué

Imports EnvDTE

Imports System.Diagnostics

Public Module Presentation

Public Sub DemoConfig()

DTE.Properties("FontsAndColors", "TextEditor").Item("FontSize").Value = 16

End Sub

Public Sub WorkingConfig()

DTE.Properties("FontsAndColors", "TextEditor").Item("FontSize").Value = 10

End Sub

Public Sub Bigger()

DTE.Properties("FontsAndColors", "TextEditor").Item("FontSize").Value += 1

End Sub

Public Sub Smaller()

DTE.Properties("FontsAndColors", "TextEditor").Item("FontSize").Value -= 1

End Sub

End Module

 

Pourquoi MS n'utilise-t-il pas ses propres technos ??!?? :@

Projettant de développer un plug-in pour VS.net, j'ai bouquiné ce week-end les rares bouquins traitant du sujet.

Il existe 3 manières de personnaliser VS.net :

  • Les macros : comme les macros Office, nous avons la possibilité d'écrire des macros pour automatiser certaines tâches. On peut faire pas mal de choses grâce au DTE et au modèle objet permettant de manipuler VS.net. Bien evidemment, le code est interprété par VS.net et on reprend la main sur l'IDE après que le code soit exécuté. Lorsque l'on souhaite déployer une macro on la délivre sous forme de code source ce qui est pas terrible si l'on souhaite protéger notre code méga révolutionnaire que l'on a développé en 6 mois De plus les macros ne peuvent être écrite qu'en VB.net aucun autre langage n'est supporté.
  • Seconde manière et la plus courante, le développement d'Add-ins pour VS.net. Les add-ins permettent une intégration dans l'IDE plus poussé notemment en créant des Tool Window comme le Solution Explorer ou la Boite à Outils. On arrive à une intégration professionnelle et très satisfaisante. Mais, car il y a un mais... Oubliez .net si vous souhaitez développer des add-ins vous allez bouffer du COM et de l'ActiveX à foison !!! En effet, un Addin est un composant COM (même si vous pouvez développer les addins en managé en VB.net ou en C#, VS.net va appeler votre addin en tant que composant COM). Vous devez donc créer un GUID, enregistrer votre composant COM dans la base de registre, et l'enregistrer de nouveau dans la base de registre pour indiquer à VS.net que ce composant est un addin qu'il peut utiliser. Cela peut déjà paraitre lourd (pourquoi on peut pas développer des assemblys .net directement ??? ) mais ce n'est pas tout... Si l'on souhaite développer une Tool Window, vous devez multiplier par 2 ce genre de manipulations foireuses d'un autre temps... En effet une ToolWindow est de nouveau un composant COM (En effet, chaque ToolWindow (le Solution Explorer, la boite à outils, etc..) sont en réalité des contrôles ActiveX ! ), donc vous devez créer un autre GUID enregistrer votre composant COM dans la base de registre, et enregistrer de nouveau votre composant dans la base de registre pour indiquer à VS.net que ce composant est une ToolWindow. A ce stade là on a une toolwindow que l'on peut intégrer à VS.net mais sans interface. Pour intégrer une interface, il faut développer... un controle ActiveX qui contiendra des boutons, zones de textes, etc... et de nouveau enregistrement du composant ActiveX dans la base registre... Bien évidemment, comme on ne peut pas développer d'ActiveX avec .net (vb.net ou c#), on doit développer notre interface en non managé donc en C++ ou en VB6 (de koi faire des plug-in de + de 2Mo... ). La seule solution viable est donc de faire son contrôle en C++... Encore un mauvais point... Heureusement un développeur de chez MS a développé un petit contrôle ActiveX qui hoste des User Controls .net On doit donc quand même enregistrer ce contrôle ActiveX mais on bénéficie de l'IDE de VS.net et des contrôles .net pour faire notre interface
  • 3ème solution et la plus puissante : les packages VSIP, et de nouveau vous pouvez oublier .net car vous ne pouvez développer vos packages VSIP qu'en C++ non managé. Il faut donc encore user d'astuce pour coder le strict minimum en C++ et loader des bibliothèques .net que vous aurez développé.

La question que je me pose est donc : Pourquoi MS n'utilise-t-il pas lui même .net pour développer ses outils (et notamment VS.net) mais continue d'utiliser COM et les ActiveX et nous oblige donc à notre tour à utiliser les précédentes générations de technos maison ??? (Cela semble être reglé avec VS 2005, on pourra apparemment tout faire en managé mais bon... je vais pas attendre 2005 pour développer mon plugin...)

[Annonce] Protection Anti-Spam installée :)

Je viens d'installer une protection anti-spam sur tous les blogs du labo.net.

Pour information, j'ai utilisé la solution développé par Miguel Jimenez qui s'installe en quelques clics et copier/coller

J'ai installé la version 1.0 de son contrôle car sa version 1.1 plante... Je ferais la mise à jour dès qu'il aura corrigé tous les bugs...

Si vous avez des problèmes au niveau de votre skin, ou que vous constatez des erreurs faites-moi signe => http://blogs.labo-dotnet.com/patrice/contact.aspx

[Annonce] Blogs en travaux

Petite annonce pour tous les bloggeurs du labo.net ainsi que pour les visiteurs :

Je vais mettre en place une protection anti-spam sur les blogs, donc si les blogs plantent dans la journée "c'est normal", c'est que j'aurais fait le boulet

Croisez les doigts

PS: Pour les accros vous pouvez toujours consulter les blogs via http://www.labo-dotnet.com/dotnetlogue si jamais il y a des problèmes...

[UPDATE] : ça marche très bien sur ma skin :) je modifie les autres, patience...

Session sur Elisa aux Open Days

J'ai eu la chance de pouvoir présenter une application mobile que j'ai développé (nommé Elisa) aux Open Days (évènement réservé aux MVP, MVS, et UG leads) lors d'une session. Pour ceux qui étaient présents et pour les autres, vous pouvez télécharger les slides ici.

Pour ceux qui ne connaissent pas ce soft, Elisa est une application mobile fonctionnant sur Pocket PC et smartphone permettant de commander "intelligemment" des slides Powerpoint à distance. Les fonctions actuellement supportées :

  • Lancement diaporama, navigation entre les slides
  • Affichage des commentaires de chaque slide
  • Authentification
  • Support du WIFI (en AP, et en Ad'hoc), du Bluetooth
  • Intégration d'un client MSN

Ayant eu pas mal de bons feedback et de suggestions de fonctionnalités, je viens de mettre à jour ma TODO-List :

  • Mis à disposition de l'application et de son code source sur le web
  • Ecriture d'articles sur le labo.net expliquant comment coder certaines fonctionnalités
  • Refonte de l'architecture de l'application avec l'aide de Jb Evain
  • Ajout Image slide
  • Ajout Liste slides
  • Ajout Favoris (*.ppt)
  • Sélection d'un ppt à partir d'une liste sharepoint (avec l'aide de Renaud Comte)
  • Dessin sur slide à partir d'un Pocket PC
  • ...

Des news sur les rencontres Visual Basic .net


Je vous l'ai déjà annoncé il y a quelques jours, Microsoft organise les rencontres Visual Basic.net dans 7 villes françaises afin de présenter Visual Basic.net aux développeurs Visual Basic, aux développeurs Access, etc... Ces sessions d'une demi-journée sont gratuites et sont accessibles à tous.

De plus, Microsoft vient d'annoncer que Visual Basic.net 2003 édition initiation serait offert à tous les particiants.

Ces rencontres sont donc l'initiative idéale pour découvrir le Visual Basic .net grâce à la conférence d'une demi-journée où vous pourrez apprendre à développer sous VB.net et grâce à la boite VB.net 2003 qui vous permettra de tester très rapidement ce langage !

Inscription gratuite :
http://galilee.microsoft.fr/vbtour/

Voir les teasers :
http://www.microsoft.com/france/msdn/edemo/vbnet/FinaleMobileSon.mspx
http://www.microsoft.com/france/msdn/edemo/vbnet/FinaleAppMDI1024.mspx
http://www.microsoft.com/france/msdn/edemo/vbnet/FinaleOffice.mspx

 

[News] Nouveau système d'alertes MSN pour les news du labo.net !

Le labo.net vous propose désormais de recevoir directement les news que nous postons sur le site via des alertes MSN Messenger. Et ceci gratuitement bien entendu

En savoir plus :
http://www.labo-dotnet.com/news/Divers/Recevez%20les%20news%20du%20labo-dotnet%20sur%20votre%20MSN%20Messenger/0/1329.aspx

Les rencontres Visual Basic c'est bientôt ! Inscrivez-vous vite


Microsoft organise cette année les rencontres Visual Basic dans 7 villes françaises. Ces rencontres seront l'occasion de découvrir .net et ainsi apprécier tous les avantages de la migration vers la plate-forme .net. Vous êtes développeurs VB 6, Delphi, Powerbuilder, Access, vous savez maintenant quoi faire

Pour vous inscrire :
http://galilee.microsoft.fr/vbtour/

18/11/2004 Lyon s'inscrire
21/11/2004 Strasbourg s'inscrire
25/11/2004 Lille s'inscrire
02/12/2004 Marseille s'inscrire
07/12/2004 Nantes s'inscrire
09/12/2004 Toulouse s'inscrire
14/12/2004 Paris s'inscrire

Canadien ou américain ? et envie d'essayer VB.net gratuitement ?

Envie de vous mettre au VB.net pour développer des applications web, windows ?

Microsoft vous propose de sauter le pas gratuitement. La procédure à suivre est simple il vous suffit d'assister à 3 webcast sur le site http://www.aspnetwebcasts.com et... vous recevrez gratuitement chez vous une boite VB.net Standard edition ainsi qu'un livre MS Press sur ASP.net.

(offre réservée aux américains et canadiens... )

 

Deux nouvelles vidéos express sur la labo.net

Je viens de publier deux vidéos express sur le site du labo.net, une traitant des émulateurs disponibles pour afficher des pages web ASP.net mobile (Pocket PC, Smartphone, GSM classique) et l'autre traitant du déploiement d'applications Windows (Génération de setup et "no-touch deployment")

Emulateurs :
http://www.labo-dotnet.com/labo%2Ddotnet/?target=ShowOneVideo&id=10

Déploiement :
http://www.labo-dotnet.com/labo%2Ddotnet/?target=ShowOneVideo&id=11

Nouvelle rubrique : "Bugs, exceptions"

Nouvelle rubrique sur mon blog : "Bugs, exceptions" qui comportera les plus beaux bugs que j'ai eu avec Visual Studio 2003 ainsi que les descriptifs d'exceptions levées les plus sympathiques

On va commencer en beauté avec un problème de redimensionnement de l'IDE.


(Cliquer sur l'image pour agrandir)

Compte Rendu Symposium DNG

Ca y est c'est fini, la seconde édition du symposium DotNetGuru a eu lieu hier (vendredi) à quelques pas de la tour Eiffel. Cette longue journée (9h-19h) a réuni plus de 400 architectes, développeurs techniques, consultants, etc...

Eric Groise (Directeur Technique Adjoint d'Octo Technology et MS Regional Director) débuta la journée en nous présentant une session intitulée "Test Driven Development". Cette session fut l'occasion d'aborder les tests unitaires, le contrôle de qualité et l'usine de développement. Nous avons donc eu droit à des démonstrations de Nunit (outil de test unitaire) combiné avec Clover (outil de test de couverture permettant de vérifier que l'on teste bien tout le code desiré) ainsi que NMock un framework permettant de simuler dynamiquement des objets (pratique pour faire du bouchonnage c'est à dire simuler des objets qui ne sont pas encore disponible parce qu'encore en développement). En ce qui concerne le contrôle de qualité nous avons vu le bien connu FXCop développé par Microsoft et qui permet de vérifier entre autre que le code source vérifie bien les conventions de nommage souhaitées et permet également de définir et tester ses propres règles. Il est à noter que cet outil téléchargeable gratuitement sur GDN sera intégré à Visual Studio 2005 Team System. Nous avons ensuite vu une démonstration d'une usine de développement mise en place dans le cadre d'un projet open source hebergé sur SourceForge et géré par le Speaker. Ce fut très interessant de voir par la pratique comment fonctionne une usine de dév permettant (entre autres) d'extraire des sources de les compiler et de les déployer automatiquement.

Julien Brunet (Noga Systèmes) et Pascal Recchia (VcsTimeless) nous ont ensuite présenté une session traitant de SOA (la programmation orientée services) pour terminer la matinée. Nous avons ainsi vu de façon claire et de manière pratique en quoi consistait la SOA grâce à la migration du PetShop développé par Microsoft.

Formule interessante, la pause de midi fut suivie d'une session intitulée "Débats et démos" composées de deux courtes sessions de 20mn idéales pour reprendre attentivement la journée sans s'endormir sur la digestion

La première de ces deux "mini-sessions" concernait la Programmation Orientée Aspect (AOP). Ce fut l'occasion de voir concrétement ce qu'est l'AOP via quelques démos utilisant le tisseur d'aspect maison : AspectDNG développé par Thomas Gil (rédacteur DNG) et Jean-Baptiste Evain (formateur .net à SUPINFO et très récemment nommé MVS par Microsoft). Nous avons donc vu quelques applications possibles de l'AOP lors des démos où Thomas Gil mit en place l'internationalisation d'une application alors que cette fonctionnalité n'avait pas été implémentée et ceci sans modifier le code source de l'application. Comment est-ce possible ?  C'est simple, AspectDNG permet de modifier des assemblys .net (*.dll, *.exe) en y greffant, par exemple, de nouvelles méthodes. On peut à première vue se demander l'utilité de modifier du code compilé, et penser que modifier du code source est beaucoup plus simple. Mais c'est oublier qu'une partie  du code que nous écrivons est transversal à toutes les classes que l'on écrit et que ce code se répète ainsi à foison (c'est notamment le cas des fonctions de log ou de trace). L'idée de l'AOP est donc d'écrire ce code transversal dans une assembly à part et de greffer ensuite cette assembly à une autre assembly contenant la logique métier. L'idée est donc de séparer la logique technique de la logique métier et de greffer les assemblys contenant la logique technique aux assemblys contenant la logique métier. De plus, AspectDNG étant un tisseur statique (le code greffé est insérée directement dans l'assembly) les performances les mêmes que si vous aviez vous même écrit votre code "à la main". Pour plus d'infos sur l'AOP et AspectDNG vous pouvez vous rendre sur les pages suivantes :

http://www.dotnetguru.org/articles/articlets/aspectdng/0.5/Articlet-AspectDNG.html
http://www.dotnetguru.org/articles/dossiers/aop/quid/AOP15.htm
http://www.dotnetguru.org/articles/dossiers/aop/aop.php
http://aspectdng.sourceforge.net/

Thomas Gil a également écrit un e-book consacré l'AOP. Pour plus d'infos : Table des matières, achat

Après cette session sur l'AOP, Jean-Baptiste Evain nous présenta .net sur Linux grâce à UNE ( private joke) implémentation libre du framework .net : Mono. Nous avons ainsi pu voir qu'il était possible de faire tourner le PetShop DNG (application web développée en ASP.net) sur Linux grâce à Mono et à Apache et ceci en 3-tiers et même en n-tiers grâce à un serveur remoting tournant lui aussi sous Mono. Ceci est déjà séduisant mais quand on sait que pour faire fonctionner cette démo un simple déploiement par xcopy vers linux fut nécessaire on ne peut qu'être interessé par cette implémentation de .net offerte par Novell.

Nous avons ensuite continué cette après-midi très riche, avec une session consacrée à l'Unified Process, l' eXtreme Programming et SOA présentée par Jean-Louis Bénard fondateur de BrainSonic. Après avoir vu un sympathique "micro-trottoir" où l'on demandait quels sont les clés de la réussite d'un projet, nous avons vu qu'afin de réduire la passabilité de l'industrie logicielle (mauvaise gestion des projets, projets non aboutis ou insatisfaisants, etc... etc...) des méthodes de développement (souvent qualifiées d'agiles) tel que l'UP ou l'XP apparaissent et font souvent débat. Ces méthodes proposent un ensemble de règles qui dans un monde idéal permettrait d'améliorer l'industrialisation du génie logiciel mais qui dans le monde réél ne peuvent s'appliquer à la lettre et doivent être adaptées et s'appliquer en fonction du contexte et des besoins.

Fabrice Marguerie et Didier Girard nous ont ensuite présenté l'IoC (Inversion of Control) et les conteneurs légers. Nous avons vu comment Improve utilisait cette technique avec succès depuis quelques années dans ses projets. Pour plus d'informations sur l'IoC vous pouvez lire cet article de Sami Jaber (Webmaster de DotNetGuru).

Marc Gardette et Guillaume Renaud ont conclut la journée en nous présentant la vision et la stratégie de Microsoft autour de la modélisation et plus généralement de l'industrialisation du logiciel. Ils nous ont montré tout cela très concrètement en présentant certaines fonctionnalités de Visual Studio 2005 Team System. Au menu, gestion de projet,  modélisation, unit testing, test coverage, load testing, etc.. etc... etc... tout cela intégré dans Visual Studio. Bref une nouvelle dimension est apportée à Visual Studio qui ne sera plus "un simple" environnement de développement mais une véritable suite intégrée permettant de gérer l'ensemble du cycle de vie du logiciel.

En conclusion, ce fut une journée très riche techniquement (un peu éprouvante ) et qui donna matière à réfléchir...

PS :Il est à noter que les sessions de symposium devraient être prochainement disponibles sous forme de webcast sur Brainsonic

La machine à voyager dans le temps existe

La machine à voyager dans le temps existe mais elle se limite à Internet.

Un site propose gratuitement de retrouver les différentes versions de vos sites préférés.

Pour aller y faire un tour :

http://web.archive.org

La question du jour : Overridable or not ? :)

En train de développer rapidement une application de test, je viens découvrir une petite curiosité que je n'arrive pas à comprendre :

Regardez bien l'infobulle...

Si quelqu'un peut m'expliquer...

[FUN] Webcam du labo.net

La labo.net vient de mettre en ligne sa webcam à titre expérimental.

Vous pouvez visualiser le flux à l'adresse suivante :

http://blogs.labo-dotnet.com/patrice/webcam.html

 

Microsoft France ouvre une section de Blogs

Les employés de Microsoft France peuvent à présent s'exprimer en français grâce à la section blog qui a été créé très récemment : http://blogs.microsoft.fr/

Pour l'instant ce sont les employés de la division DPE (Développement et plate-forme d'entreprise) qui arrivent petit à petit dans le monde des bloggeurs (pour ceux qui n'y étaient pas déjà). On peut d'ores et déjà annoncer quelques noms : Christophe Lauer, Vincent Lauriat, Eric Mitelette, Mitsu Furata, Eric Vernié, Pascal Belaud, etc...

Bref un site à rajouter dans son aggrégateur...

[FUN] Un cadeau pour la rentrée : une pub avec Steve Ballmer

Je vous propose un petit cadeau pour la rentrée : une petite vidéo plutôt fun de Steve Ballmer faisant de la pub pour Windows 1.0 (et oui, ça date ).

Vidéo de Ballmer

[News] le SP2 est disponible via Windows Update

Le Service pack 2 de Windows XP est à présent disponible via Windows Update

Vous savez quoi faire...

[News] Une nouvelle CTP est disponible pour les abonnés MSDN

La CTP September 2004 de Visual Studio 2005 est disponible pour les abonnés MSDN. Cette nouvelle CTP contient une mise à jour de la Béta 1 de Visual Studio 2005 ainsi que SQL Server 2005 Beta 2. Autre ajout, la gamme Team System est  à présent totalement inclue dans ce kit.

Un treeview personnalisé qui permet de déplacer les éléments

Le contrôle Treeview ne permet apparemment pas de déplacer ses éléments via  un simple drag'n'drop, voici le code d'un contrôle treeview customisé qui permet de le faire :

Imports System.Windows.Forms

Imports System.Drawing

Public Class MyTreeView

Inherits Windows.Forms.TreeView

Dim ButtonClicked As Windows.Forms.MouseButtons

Dim insert As Boolean = False

Dim oldnode As TreeNode

Dim newnode As TreeNode

Dim lastNewNode As TreeNode

Protected Overrides Sub OnMouseUp(ByVal e As System.Windows.Forms.MouseEventArgs)

'permet de stocker le bouton de click très pratique,

'car il est préfèrable d'utiliser l'évènement AfterSelect après un click pour récupérer l'élément réélement sélectionné

'et non l'évènement Click qui permet de récupérer l'élément du treeview précédement sélectionné

If insert Then

Me.Refresh()

Me.Nodes.RemoveAt(oldnode.Index)

Me.Nodes.Insert(newnode.Index, oldnode)

insert = False

End If

ButtonClicked = e.Button

End Sub

Public Sub New()

'Activation de l'édition des élément du treeview

Me.LabelEdit = True

'La surbrillance de l'élément sélectionne reste tout le temps affiché

Me.HideSelection = False

End Sub

 

 

Protected Overrides Sub OnMouseMove(ByVal e As System.Windows.Forms.MouseEventArgs)

lastNewNode = newnode

newnode = MyBase.GetNodeAt(e.X, e.Y)

If Not newnode Is Nothing Then MyBase.Text = newnode.Text

If e.Button = MouseButtons.Left And Not newnode Is Nothing Then

insert = True

Dim g As Graphics = Me.CreateGraphics

Dim mypen As New Pen(Color.Black, 3)

mypen.StartCap = Drawing2D.LineCap.ArrowAnchor

mypen.EndCap = Drawing2D.LineCap.ArrowAnchor

g.SmoothingMode = Drawing2D.SmoothingMode.HighQuality

If Not lastNewNode Is Nothing And Not lastNewNode Is newnode Then

Me.Refresh()

End If

 

g.DrawLine(mypen, 10, newnode.Bounds.Top, newnode.Bounds.Width + 30, newnode.Bounds.Top)

mypen.Dispose()

g.Dispose()

End If

End Sub

Protected Overrides Sub OnMouseDown(ByVal e As System.Windows.Forms.MouseEventArgs)

oldnode = MyBase.GetNodeAt(e.X, e.Y)

End Sub

End Class

 

Pourquoi Windows CE est un OS temps réél contrairement à Windows 9x, XP, 200x

Voici une question interessante que l'on m'a posé aujourd'hui et qui mérite bien quelques lignes d'explication.

Bien que proche de Win9x, XP, etc... (Windows CE est un système d'exploitation 32 bits multitaches, reposant sur les API Win 32) Windows CE a cependant quelques différences majeures par rapport aux OS que vous trouvez sur les machines de bureaux notamment au niveau de son architecture et notamment au niveau du support du temps réél.

Mais qu'est-ce qui fait que Windows CE est un OS temps réél contrairement à Windows 9x, XP, etc... ?

La réponse se situe au niveau de la gestion des "évènements matériels" (interruptions) de ces OS.

En ce qui concerne Windows 9x, XP, etc... dès qu'une interruption intervient (horloge, frappe touche clavier, clic, etc....) l'OS est informé par le micro-processeur qu'une interruption est intervenue et c'est le système d'exploitation qui gère seul cette interruption en informant si besoin la fenêtre active qu'une action a été effectuée par le biais de messages.

Synthétiquement, quand on frappe une touche du clavier une interruption est levée le système d'exploitation en est informé et rajoute un message à un pool de message (dans notre cas WM_KEYDOWN) et la fenêtre concernée traite les messages présents dans le pool un par un dès qu'elle peut le faire. On est donc loin d'un système temps réél puisque l'application gère les messages présents dans un pool quand elle le peut.

La grosse différence en ce qui concerne Windows CE est qu'il est possible de récupérer directement les interruptions et donc d'agir directement ce qui est totalement impossible avec Windows 9x, XP, etc... (car c'est obligatoirement l'OS dans ces cas là qui gèrent les interruptions vous n'avez aucun moyen de les récupérer "à la main").

Votre programme peut donc agir directement dès qu'une interruption intervient sans passer par le pool de messages tel que décrit précédemment, d'où le support du temps réél.

J'espère avoir été clair et ne pas avoir fait trop d'"erreurs graves" par souci de vulgarisation.

Migrer de VB6 vers VB.net

Pour ceux d'entre vous qui n'ont pas encore migré vers .net (je ne saurais que vous le recommander), Microsft Israel vous propose slides, démos, vidéos du VB 2 VB.net Upgrade Tour pour vous aider à franchir le pas.

Télécharger les docs :
http://www.microsoft.com/israel/vbasic/vb2vbnet/english/default.mspx

 

le VSIP SDK 2005 est disponible en beta 1

Cela a fait moins de bruit mais entre les betas des versions express, les betas des framework V2, la beta 1 de VS 2005, le VSIP SDK 2005 est également disponible en version 2005. Ce kit permet d'étendre les fonctionnalités de Visual Studio et d'intéragir directement avec l'IDE afin d'intégrer ses propres éléments.

En savoir plus :
http://msdn.microsoft.com/vstudio/extend/SDKDownload/

[News] Borland rejoint l'ECMA et va participer à l'élaboration des standards du framework .net

Après avoir rejoint la Java Tools Community, Borland rejoint l'association de normalisation suisse et va ainsi pariticiper à l'élaboration des standards du framework .net. L'éditeur confirme ainsi son implication sur les technos .net et ne peux laisser présager que du meilleur pour leurs IDE et outils supportant .net

En savoir plus :
Borland rejoint l'ECMA

Tous les slides des journées Microsoft Research 2004 à présent disponible

Je l'ai déjà dit dans un précédent post, mais cette fois-ci tous les slides de toutes les sessions pleinières sont disponibles. N'hésitez pas a y aller faire un tour pour trouver votre bonheur (IP V6, Win FS, SOA, C# 2, ObjectSpace, C omega, etc...)

Pour les télécharger :
http://www.microsoft.com/france/education/sup/chercheurs/info/info.asp?mar=/france/education/sup/chercheurs/info/20040517-researchdays.html

Un site regroupant pas mal de Hands On Lab (HOL)

En train de préparer un évènement dont je vous reparlerais dans le courant du mois de septembre, je suis tombé sur un site interessant du point de vue des ressources proposées :

http://www.hands-on-labs.com

Ce site regroupe de nombreux hands on labs officiels ou officieux d'éditeurs tels que Microsoft, Sun, Oracle. Tous les sujets sont traités :  ASP.net 1.1 et 2, Infopath, Biztalk, SFU, Virtual PC, le développement avec .net, la migration de NT 4 à Windows 2003, etc...

Un site à visiter malgré un design très laid

Vidéo express sur le débogage VB 2005

Je viens de publier ma première Vidéo express qui est consacrée au débogage avec VB 2005. Vous pourrez y voir quelques fonctionnalités et notamment le retour de l'edit and continue.

A cause de quelques difficultés techniques (les double click et certaines manipulations à la souris sont impossible avec un Windows Media Encoder qui tourne en arrière plan) je n'ai pas pu montrer tout ce que je souhaitais (l'aide au dévéloppement durant l'édition de code par exemple) mais cette vidéo de 10mn (seulement 7Mo) est interessante pour ceux qui souhaitent découvrir la prochaine version de VB

Voir la vidéo :
http://www.labo-dotnet.com/labo%2Ddotnet/?target=ShowOneVideo&id=9

[News]Un client Web de MSN Messenger développé par Microsoft vient de sortir (en béta)

Un client web pour MSN Messenger vient de sortir en version beta.  Si vous êtes en entreprise avec une configuration réseau très restrictive, vous savez maintenant quoi faire . Et ça marche même sous Firefox, que demande le peuple

 

Astuces :

  • Si vous souhaitez avoir plusieurs instances d'ouvertes, ouvrez IE puis Firefox en même temps
  • Surtout n'oubliez pas de désactivez vos popup blocker pour que ce client web fonctionne.

 

Vous pouvez y accéder via http://webmessenger.msn.com

[FUN] Un post pour les trolleurs :)

D'après netcraft, les sites de LinuxWorld Expo et de MacWorld Expo tournent sous... Windows 2003 Server. Reste à Apple à corriger ses campagnes de pub concernant les prochaines versions de leurs OS où ils utilisaient comme slogan : "Introducing Longhorn", "Redmon start your photocopier", etc... Bref essayez de faire des OS qui soient utilisés... au lieu de faire de la communication en carton...

En savoir plus :
La news sur netcraft

 

[News] Mono pourrait passer sous le giron de Sun

Cela peut paraitre très surprenant mais Mono pourrait passer "involontairement" sous le giron de Sun car Sun semble vouloir acheter Novell. Selon ZDNet UK, l'éditeur songerai sérieusement à racheter Novell afin d'avoir plus d'atouts face à un de ses rivaux IBM. Si cet achat se concrétise (nous ne sommes que dans le conditionnel), Mono serait donc développé par Sun qui deviendrait par la même un acteur .Net important

Fan de VB et absent du Tech'Ed 2004 ?


Si vous n'étiez pas au Tech'Ed 2004 US ou Europe, et que vous souhaitez avoir de l'info sur VB.NET 2003 et VB 2005 vous pouvez télécharger les slides des sessions qui ont été présentées lors de ces évènements gratuitement sur msdn :

http://msdn.microsoft.com/vbasic/community/events/teched/

Beta 1 de VS 2005 et Betas de la gamme express disponibles en CD/DVD

Si vous avez une petite connexion et souhaitez installer la Beta 1 de VS 2005 ou une beta d'un produit de la gamme express sur plusieurs machines de test, vous pouvez commander les cédés / dvd correspondants sur : http://lab.msdn.microsoft.com/vs2005/get/emeaorder/default.aspx

Vous ne paierez que les frais de port (5€)

Tech'ED 2004 : Suite :p

Mon compte-rendu sur l'évènement est disponible online sur : http://www.developers-association.org/review.aspx?f=tech_ed_2004

Les articles sur VS 2005 et VB 2005 qu'il me reste à publier sur le site du labo.net le seront très prochainement

Le pourquoi du 270Mo du SP2 de Windows XP

 Rebecca Norlander Group Manager sur le SP2 de windows XP nous explique dans une courte vidéo pourquoi le SP 2 est aussi gros. Vous pouvez également lire le transcript de l'interview pour ceux d'entre vous qui ont du mal avec l'anglais oral.

En savoir plus :
http://channel9.msdn.com/ShowPost.aspx?PostID=9400