Juste un petit billet pour signaler que j'ai ouvert un projet sur CodePlex, il s'agit d'un Viewer pour Log4Net se basant sur les logs en format XML.
le projet est mature, utilisable, et, bien entendu, il peut être étendu avec la participation de tous.
Binaires et sources sont disponibles ici :
Vous devez être identifié pour poster un commentaire.
L'année commence bien ! J'ai le plaisir de vous annoncer qu'en ce premier janvier 2009 je viens de recevoir ma nomination MVP C#.

Je mesure l'honneur qui m'est fait au travers de cette nomination et je vais continuer à oeuvrer, au travers de ce blog, des articles que je publie et des livres en cours de rédaction, pour mériter ce titre en partageant toujours plus d'information technique mais aussi ma passion en mon métier et ma conviction que les outils Microsoft depuis la naissance de .NET marquent un tournant décisif autant qu'un bond qualitatif jamais réalisé en matière d'environnement de développement et d'experience utilisateur.
Je vous souhaite à tous une année 2009 exaltante, tant sur le plan professionnel que personnel !
Le site MVP où vous pouvez consulter ma nomination
Mon blog technique: Dot.Blog
Vous devez être identifié pour poster un commentaire.
WPF cette star inconnue !
Depuis deux ans que cette technologie existe sa pénétration reste faible, certainement entraînée par le semi-succès de Vista auquel elle est liée au moins en apparence (le moteur d'affichage de Vista fonctionne sous WPF, comme celui de Seven à venir ou de Surface) alors même que WPF est utilisable sous XP et que cette techno représente un réel bon en avant.
Rendre justice à WPF commence certainement par mieux expliquer que cette nouvelle gestion d'interface rend de vrais services pour le développement de tous les types de programmes, même ceux de gestion. Quoi que puissent en faire penser les démos ultra graphiques, les pages qui se plient comme un livre et autre carrousel de vidéos tournoyant dans l'espace, WPF est parfaitement taillé pour créer de "vraies" applications de tous les jours.
Le mieux à faire est donc d'expliquer et montrer à quel point WPF va plus loin que toutes les autres alternatives dont les Windows Forms basées sur des principes vieux comme Delphi 1 en 1995 ou VB de la même époque.
Il est temps de changer de point de vue, mais au lieu de me croire sur parole je vous propose un nouvel article de plus de 40 pages et de nombreux exemples fournis en code source.
Si vous voulez comprendre pourquoi il faut aujourd'hui utiliser WPF :
L'article "10 bonnes raisons de choisir WPF" est à télécharger en suivant le lien ou bien en se rendant sur www.e-naxos.com rubrique téléchargements, articles C# et .NET.
Bonne lecture ...
Vous devez être identifié pour poster un commentaire.
RDL ? Cela ne vous dit rien ? SSRS ou BIDS non plus ? Et le composant gratuit de Microsoft ReportViewer ? Rien ? ... Alors il faut que vous lisiez absolument ce nouveau tutorial (PDF, 30 pages + exemples VS 2008) que je viens de mettre en ligne !
Il existe en effet une solution gratuite et plus que performante pour générer des états, elle se cache dans Visual Studio et un peu aussi dans les méandres des sites Microsofts pour télécharger "ReportViewer" qui fonctionne sous VS 2005 et VS 2008.
Cette solution est plus qu'honorable : sous-états, états avec noeuds dépliables, prévisualisation avec recherche de texte, fonctionnant sous Windows Forms et sous ASP.NET, utilisant toutes les sources de données possibles dont les grappes d'objets en mémoire, capable de produire des PDF, des fichiers Excel... Le tout gratuitement et assez facilement.
Rêve éveillé ? Non... mais en revanche, et pour des raisons que j'ignore, cette solution est méconnue. Elle mérite bien un tutor pour rétablir la justice (et vous faire économiser l'achat d'un générateur qui n'en fera peut-être pas la moitié) !
L'article RDL et ReportViewer est à télécharger en suivant le lien ou bien en se rendant sur www.e-naxos.com rubrique téléchargements, articles C# et .NET.
Bonne lecture ...
Vous devez être identifié pour poster un commentaire.
Smarter Duplicate File Finder est un outil gratuit très malin : il permet de localiser les fichiers dupliqués dans une liste de répertoires pouvant se situer éventuellement sur des disques différents.
Vous devez être identifié pour poster un commentaire.
LINQ est certainement l'ajout de C# 3.0 qui marquera le plus l'histoire de ce merveilleux langage et même celle des autres. Qui voudra développer dans le futur avec un langage n'implémentant pas une feature équivalente ?
Mais savez vous qu'on peut faire du LINQ dynamique de la même façon qu'on peut faire du SQL dynamique ? C'est à dire à partir de chaînes de caractères construites par code, voire à partir d'entrées de l'utilisateur ?
Pour arriver à un tel prodige il faut néanmoins utiliser une petite librairie "LINQ Dynamic Query Library" qui n'est pas fournie de base avec VS2008. Pour savoir comment télécharger et utiliser cette librairie (fournie en code source), lisez l'article ici.
Vous devez être identifié pour poster un commentaire.
Avant de s'attaquer aux articles, je fais le tri dans les infos que j'ai collectées durant les TechEd. Parmi celles-ci les liens, vers des sites ou des blogs, me semblent être une matière première qui mérite d'être partagée avec vous.
Cette liste de liens est tout sauf exhaustive. Il s'agit d'une sélection toute personnelle d'adresses que j'ai collectées au fur et à mesure durant les TechEd et que je tenais à partager avec vous...
Nom Adresse Thèmes Micro Framework SDK Download, Newsletter, Samples & Tools Windows Embedded Developer Center .NET Micro Framework Embedded Programming with the Microsoft® .NET Micro Framework F# Langage F# PopFly Site officiel MS Popfly Silverlight Site officiel MS Silverlight blendables Outils, composant pour Blend
Auteur Adresse Thèmes John Gossman C#, WPF Dan Crevier ASP.NET Dave Baker Micro framework, Windows CE, XP Embedded
Don SymeF# Dan Fernandez Lead Product Manager - Non-Professional Tools, Visual Studio Express and Popfly WPF3D Team Blog WPF et 3D Charles Petzold Site et blog de l'incontournable Petzold Joel Pobar CLR Program Manager Chad Hower "Kudzu" Stephen Forte .NET Bart De Smet C#, Framework, Sql Server, WF Bob Beauchemin SQL Server Roy Osherove .NET Olivier Dahan .NET, TechEd, VS2008 Neno Loje .NET Peter Foot .NET Biztalk team blog L'équipe MS de Biztalk Dave Baker .NET, MF, Win CE, XP Embedded David Gristwood Application Architect chez Microsoft Doug Mahugh Open XML Jezz Santos Software factory, Guidance in context.. Matt Winkler WF, WCF Olivier Bloch Windows Embedded Paul Andrew .NET, WF, Workflow, Framework Steve Teixeira Visual C++ Steve Lasker Sql server, code sample pablo Castro ADO.NET, Astoria, Entity framework Windows PowerShell L'équipe de Windows PowerShell Simon Guest SAO, Web Services, Office XML Frank Prengel .NET, Gadgets & Devices, Embedded Mike Taulty Entity Framework, ADO.NET Giorgio Sardo ASP.NET, WPF, Vista Olav Tollefsen LINQ, .NET 3.5
Nom Adresse Virtualization for Windows: A Technology overview (.doc) PopFly Block SDK (.zip)
Vous devez être identifié pour poster un commentaire.
Les conférences européennes TechEd 2007 de Microsoft débutent lundi prochain (5 novembre) à Barcelone. Trop tard pour s'inscrire, mais on est dans les temps pour ceux qui, comme moi, s'y rendre !
Dernière valise à boucler, vérifier le portable, ne pas oublier l'appareil photo (Barcelone regorge de choses intéressantes), la checklist est longue !
J'ai déjà repéré des conférences passionnantes, mais il faudra faire des choix, même sur 5 jours du matin au soir, il sera humainement impossible de tout suivre..
Je vais tenter, au jour le jour, de vous proposer un résumé des activités, des conférences suivies, des annonces importantes,... Tout cela réclame que je dispose bien d'une liaison wifi dans l'apart que j'ai loué..
Les moyens techniques seront ce qu'ils sont, et au minimum je mettrai mon blog à jour sur mon site: http://www.e-naxos.com/blog en relayant ici le maximum si la technique le permet.
Dans tous les cas, à mon retour de nombreux papiers sont à prévoir, donc restez branchés, et suivez l'info des TechEd sur Dot.Blog ! Olé !
Vous devez être identifié pour poster un commentaire.
Préserver sa liberté de pensée et faire en sorte que cette liberté soit reconnue est finalement le fondement de tout blog.
Que l'on soupçonne la moindre censure, voire auto-censure, et c'est toute la crédibilité du blogger qui trinque.
La technique devrait être l'occasion d'une pensée parfaitement objective.
La réalité est plus complexe !
On a tous en tête la bataille rangée entre partisans du Mac contre ceux du PC, débat d'un autre âge remplacé par celui des tenants de Linux contre les pro Windows, du Libre contre le Commercial, etc.
la technique déborde souvent sur le débat d'opinion. Et cela d'autant plus que s'il est aisé de voir que Linux est meilleur que Windows (.. non je plaisante c'est pour voir si vous suivez :-) ) il est plus difficile de juger du futur de Delphi par rapport à .NET ou de l'intérêt de Firebird sur SQL Server 2005 express.
Résultat, sur un blog technique on exprime aussi des opinions sur des choix techniques. Et c'est là qu'il est essentiel pour le blogger que la sincérité de son discours ne puisse être mise en cause.
Le meilleur moyen d'echapper à ce doute est donc pour le blogger de maîtriser la totalité de la chaîne technique de la publication de son blog.
Il existe des bloggers purement techniques : extraits de code, liens vers des docs, relais d'invitation à des manifestations techniques, etc. Ceux là n'ont pas à se poser de question sur leur liberté d'expression, par choix il ne s'en servent que d'une petite partie non polémique.
Il existe aussi des bloggers "engagés" comme il y a des chanteurs "engagés". Pour ceux là, dont je suis, la technique n'est pas tout, elle ne peut exister que dans un cadre plus large intégrant une vision du monde plus vaste. Dès lors la polémique est possible même si ce n'est pas forcément le but recherché.
Il existe des bloggers techniques engagés comme il y a des chanteurs engagés. Ce n'est ni mieux ni moins bien, c'est un style différent. Lori n'a pas de leçon à donnée à Renaud, et Trust n'a pas a se moquer d'Enrico Macias.
C'est pourquoi, sans renier le présent blog qui a son utilité au sein d'une communauté sympathique et dynamique, j'ai décidé d'ouvrir un second blog hébergé sur ma propre plateforme technique. Mon expression y sera totalement libre et je m'y sentirai plus à l'aise pour certains billets.
Bookmarquez cette adresse, et venez faire un petit coucou de temps en temps :
Dot.Blog
Vous devez être identifié pour poster un commentaire.
Un petit coup de projecteur sur un opérateur méconnu de C# histoire de garder les neurones en activité pendant l'été...
Vous connaissez la syntaxe: x = (test) ? (sivrai) : (sifaux);
Cela permet en une instruction d'attribuer la valeur "sivrai" ou "sifaux" à x selon le résultat du test. Cela est très pratique et clarifie la lecture du source comparativement à l'utilisation d'un if/else.
Mais connaissez-vous la version courte de cet opérateur conditionnel ?
Le cas d'utilisation est très fréquent dans un code bien protégé : il s'agit en général d'affectuer une valeur à une variable si la valeur est non nulle, sinon d'affecter une valeur par défaut. Exemple :
string s = variable==null ? "chaîne nulle" : variable;
Ici on se protège contre le fait que la variable "variable" peut être nulle. Dans ce cas on affecte à "s" une chaîne par défaut, sinon on affecte "variable". L'utilisation de l'opérateur ?: se justifie pleinement ici (si on suppose par exemple que "variable" est un paramètre passé à la méthode en cours qui peut, même si cela n'est pas prévu, être passé à null). Cet opérateur rend l'écriture plus concise que l'utilisation de if/else qui serait:
string s;
if (variable==null) s="chaîne nulle"; else s=variable;
Mais il y a encore plus court !
Le cas évoqué étant très fréquent, C# propose un autre opérateur conditionnel, le ??.
Ce dernier est spécialement étudié pour tester les nuls.
De fait, notre test exemple s'écrit désormais :
string s = variable ?? "chaîne vide";
En réalité l'opérateur ?? a surtout été ajouté pour gérer les types nullables. Lorsqu'on affecte une variable nullable à une autre qui ne l'est pas, il est en effet nécessaire de tester le null pour éviter une exception.
Exemple :
int? a = null;
int y = a ?? -1;
ici, "a" est un integer nullable, que nous initialisons d'ailleurs à null, alors que "y" est un integer "standard" ne pouvant pas prendre la valeur nulle. L'utilisation de ?? est donc obligatoire ici pour éviter l'exception.
On comprend mieux la raison d'être de cet opérateur ajouté dans C# 2.0 puisque c'est dans cette version qu'on aussi été ajoutés les types nullables.
Néanmoins cette instruction très peu utilisée et méconnue rend aussi service en dehors du contexte des types nullables, notamment avec les types objets qui eux sont nullables depuis toujours. Notre exemple avec une variable string en est une illustration.
Bon développements ! (truffés désormais de "??" qui vous feront passer pour un guru de C# :-) )
Vous devez être identifié pour poster un commentaire.
Microsoft organise le 18 avril prochain à Paris une conférence ".NET pour les Delphistes".
Le but est de présenter .NET aux utilisateurs de Delphi, de répondre à leurs questions et d'écouter les témoignages d'utilisateurs Delphi qui sont passés à .NET.
Ce sera aussi l'occasion pour tous ceux que la question intéresse de se rencontrer, d'échanger leurs avis et expériences, bonnes ou mauvaises, et de faire le point pour prendre les meilleures décisions.
C'est gratuit, ouvert à tous, et la page d'inscription qui donne le détail de l'événement se trouve ici :
http://www.microsoft.com/france/events/event.aspx?EventID=1032335615
Vous devez être identifié pour poster un commentaire.
Ajax c'est un vieux concept (html+javascript) avec un mot nouveau qui fait branché dans les discussions à la machine à café. C'est vrai.
Mais pas seulement, c'est aussi un grand pas en avant qui efface de plus en plus la limite entre applications Web et applications Windows.
Le plus grand pas dans ce sens a certainement été ASP.NET avec son modèle de développement événementiel "à la windows".
Ces deux visions sont-elles incompatibles ?
Non, bien au contraire !
En Ajaxisant une page ASP.NET vous la rendez plus vivante, plus réactive encore et vous évitez le scintillement des "postbacks" en renforçant ainsi l'aspect "pro" de votre site.
Faut-il dès lors se lancer dans la programmation JavaScript, un langage amusant mais un peu "jouet" comparé aux langages modernes comme C#, il faut bien l'avouer ?
Encore une fois non !
Microsoft a releasé dernièrement la V1 de ce qui s'appelait jusqu'à lors "Atlas" et qu'on doit appeler maintenant "Microsoft Ajax", le tout assorti d'un Toolkit plein de composants géniaux. Le tout gratuitement comme beaucoup de choses sous .NET chez MS !
Ajoutez un composant ScriptManager à votre masterpage, et ajoutez un UpdatePanel dans lequel vous placez ce qui doit être "ajaxisé" et sans aucune ligne de code votre page devient plus fluide !
On peut bien entendu faire plus sophistiqué, à vous de le découvrir notamment au travers des très nombreuses démos et vidéos :
Microsoft Ajax, le site officiel
Vous devez être identifié pour poster un commentaire.
Framework .NET, C#, Visual Studio .NET, informations, humeurs, idées...
.NET, C#
| Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |