Archive

Posts Tagged ‘Feeds’

Feeds Of The Week #10

Le temps passe à une vitesse…c’est dingue.

Commençons par les little wonders : The String Remove() and Replace() Methods et String Padding and Trimming – Not Just for Spaces!

Ensuite, le fonctionnement du Dictionary<TKey, TValue>, c’est toujours utile à savoir !

Les enums. Souvent peu utilisées, je trouve que c’est assez dommage. Elles peuvent, entre autres, éviter de se balader avec des chaînes de caractères qui doivent signifier un truc (et donc sensible aux fautes de frappe). Deux billets intéressants : Fun with enum et Empowering Enums.

Un « petit » post sur l’interface IEnumerable. Pourquoi on a pas une méthode d’extension ForEach sur le type Enumerable<T> ? Quelques arguments : Why no ForEach method on IEnumerable interfaces.

Un deuxième billet sur le web.config, concernant les cookies, cette fois (le premier billet était ici).

Et enfin, Writing Maintainable Code.

Sinon, en fin de semaine dernière, il y avait la Build. Il y a plein de blogs qui en ont parlés, alors c’est plus réellement une news fraîche ^^
Par contre, il y a quand même un billet en particulier que je voulais linker : Présentation d’ASP.NET 4.5 Developer Preview.
Et un autre sur le Framework 4.5 (en dehors de la Build, cette fois) : What’s New For Parallelism in .NET 4.5.

Sinon, dans deux semaines, pas de Feeds Of The Week pour cause de vacances (en Irlande ! :)). La semaine suivante, je posterais donc le helper Ext.Net pour le GridPanel ainsi que d’autres petites choses (j’arrêterais de le dire pour le faire…).

Et pour finir, une touche d’humour !

Catégories :.Net, Divers, Feeds

Feeds Of The Week #9

Deuxième semaine que je vois pas trop passer et où j’ai pas le temps / courage (rayer la mention inutile…) de faire tout ce que je voulais…

Mais bon, des choses quand même intéressantes.

Déjà, au sujet des tests unitaires (c’est le bien, alors faut en profiter !!!). Dans le projet, on a des appels à la base et un processus de caching pour les données de références (du genre les devises). Pour tester plusieurs méthodes, on devait donc taper dans le cache, le web cache. Dans un test unitaire. Je savais que c’était possible, la preuve (mais je me souvenais plus comment…) : Accéder à HttpContext.Current dans un test unitaire – configuration des types d’hôte dans un projet de test.

Ensuite, un topo assez utile sur les blocs using. C’est simple mais, à mon sens, pas assez utilisé. Ça permet pourtant plein de choses  : the other thing about “using” blocks.

Les interfaces… C’est l’un des fondements de la programmation orientée objet. Cependant, elle est parfois très mal/peu utilisée. J’ai vu des choses qui piquaient les yeux être utilisés à la place des interfaces (soit disant pour découpler les couches…). C’est toujours bon de lire ce genre de (long) billet : Designing C# Software With Interfaces.

Quand on travail dans le domaine du web, on essaie souvent de rendre les sites plus légers pour un accès plus rapide. Qui n’a pas quitté un site parce que c’était trop long à afficher ?… (j’ai des problèmes avec Ext.Net d’ailleurs, trop de codes pour gérer les différents stores….) The Importance (and Ease) of Minifying your CSS and JavaScript and Optimizing PNGs for your Blog or Website.

Un billet sur les différentes approches possibles sur un bout de code particulier. Making It More Functional. Sur certaines choses, il est facile de généraliser et de faire des classes réutilisables, des helpers ou autres. Ceci dit…est-ce pertinent ? Est-ce que le code est réellement applicable à autre chose ?

Les Little Wonders, maintenant, autour de la classe String. Très souvent utilisées, mais avec parfois des surprises !

Et pour finir, une petite question conne, mais qui a son importance : What is this thing you call a « type »? Partie 1, Partie 2.

Catégories :.Net, Divers, Feeds

Feeds Of The Week #8

Cette semaine, pas mal de choses.

Déjà, comme il est toujours bon de garder en mémoire les bases : A Brief Introduction of Fundamental OOP.

Ensuite, des liens qui suivent des conversations que j’ai eu avec des collègues.
Par habitude maintenant (et parce que c’est super pratique), j’utilise beaucoup d’expressions lambdas (sauf quand je dois rendre mon code compatible VS2005…). Résultat, une discussion avec un collègue qui disait que les lambdas, c’est pas forcément simple de comprendre comment ça fonctionne. Kodefuguru a répondu à ma place : Lambdas for Junior Developers.

Avec les lambdas, il y a souvent Linq (les méthodes d’extensions System.Linq dans mon cas). Et là, on a discuté de performances. J’avais lu, il y a pas mal de temps, que ceux qui constatent des performances moindres (Linq to SQL), c’était aussi ceux qui employaient mal Linq. Je suis plutôt d’accord avec cet avis. Et du coup : LINQ query performance (Count & Any).

Question optimisation, il y a aussi les génériques. Dans notre cas, on a un socle qui a été fait en .Net 1.1 (sic…) et migré par parties (comprendre : quand les devs avaient que ça à faire). Du coup, on se trimballe parfois des méthodes qui usent (abusent) du cast (tout est object, et je dis bien object, pas objet…).
Mais les génériques, on  peut aussi optimiser un peu : Optimization and generics, part 1: the new() constraint & Optimization and generics, part 2: lambda expressions and reference types.

Pour en revenir un peu à Linq. Un autre billet sur les méthodes d’agrégation : Five Easy Sequence Aggregators.

Après, d’autres liens un peu en vrac !

Voilà, ça fait déjà pas mal de choses ^^

Sinon, concernant mes helpers Ext.Net.
J’ai eu à affronter un cas auquel je n’avais pas pensé durant le développement du helper pour le GridPanel.
Et c’est en cherchant à le résoudre que j’en ai résolu d’autres ^^
Pour résumer, voici les problèmes :

  • L’une de nos données à afficher est stockée dans un Dictionary<String, Double>, la clef est l’identifiant de la monnaie (EUR, USD, JPY…) et le double est le montant :
    • Dans certains cas, il faut afficher le montant de la devise sur la même ligne (1 ligne = 1 contrat)
    • Parfois, il faut afficher le montant de la devise dans une autre devise (quand on change la devise sur l’écran)
  • Les objets que l’on utilise sont énorme (il y a bien trop d’infos à l’écran…), ce qui fait que la sérialisation Ext.Net (pour stocker les données dans le store) prend :
    • TOUT l’objet
    • Uniquement les propriétés primitives (String, Int32…en sommes les types du namespace System)

La solution…Et bien, ça a été de créer un dictionnaire de données (littéralement : Dictionary<String, Object>) pour stocker les données (en utilisant la réflexion pour le charger). Ce ne fut pas une mince affaire, mais au final le résultat est plutôt concluant.
Je mettrais donc, sous peu, à jour le repository GitHub. Et je ferais donc le billet qui va bien.

En conclusion : A t-on encore besoin de développeurs ?
Je réserve mon avis, pour le moment… Il y a quelques années, j’entendais partout que les développeurs iraient en Inde/Chine/Maroc/etc. Aujourd’hui, il y a toujours des développeurs. Il y a même des entreprises qui se payent des consultants (j’en sais quelque chose…) pour…pisser du code. Wait and see!

Catégories :.Net, Divers, Feeds

Feeds Of The Week #7

Au programme, cette semaine : fatigue, motivation en berne et temps de merde. Ah non, c’est pas au bon endroit, ça…

Sinon, c’est vrai, un billet assez light cette fois (j’ai beaucoup de brouillons, mais j’ai du mal à les finir…).

En premier, d’abord parce que je travaille plus dans le web, Philippe Vialatte qui parle du web.config. Tout d’abord pour dire qu’il faut y prêter grande attention et ensuite pour une suite de billets dont le premier élément tourne autour du débogage.

Ensuite, parce que j’aime bien le sujet : The Past, Present and Future of Parallelizing .NET Applications.

Le lazy loading aussi, avec ce billet : .net 4 et Lazy-loading thread-safe : un nouveau type bien pratique.

Et enfin, c’est pas la première fois que je renvois vers des billets de ce genre, mais c’est parfois un peu (trop ?) notable : Montre-moi ton expérience !

Et pour combler un peu, petite anecdote amusante (enfin, amusante…).
Dans le bureau, un collègue (on va l’appeler FUIJDT dans le but d’anonymiser les données…) est arrivé et a remarqué le cordon de téléphone (vous savez, le truc à spirales) totalement en vrac  d’un autre.
Par curiosité, FUIJDT appelle le service qui se charge des téléphones (qui n’est pas le même que celui qui installe les pc, qui n’est pas le même que celui qui les stock, qui n’est pas le même que celui qui fais les images…). Et là, on a eut droit à une discussion assez surréaliste.
FUIJDT demandait uniquement s’il était possible de changer le cordon (une information bête et méchante avec une réponse allant de « oui » à « non »…). En face, le gars lui a demandé son nom, prénom, adresse mail et numéro de téléphone pour créer un ticket d’activité et justifier des 5 secondes qu’aurait du durer l’appel…
Finalement, FUIJDT en a eu marre et à raccroché après deux bonnes minutes…

Catégories :.Net, Divers, Feeds

Feeds Of The Week #6

Cette semaine, commençons par un peu de sécurité.
Il y a (trop) longtemps, j’avais parlé de faire un billet sur la sécurité. Mais en ayant changé de mission, la sécurité est totalement tombée de la liste des priorités (sic…; je suis donc sur d’autres sujets, alors il reste dans le billet reste incomplet dans les brouillons…).
Du coup, je renvois vers d’autres blogs !
Le premier est si bien intitulé : Le minimum absolu de la sécurité (vu du coté du web). Tandis que le second porte sur les outils : Free Security tools which you should have in your tool belt (pour moi, le minimum syndicale est quand même Fiddler, et pas que pour la sécurité).

Ensuite, un petit point (toujours utile) sur l’héritage et surtout l’overriding et le hiding : The Default is to Hide, Not Override et My Leading Candidate for Worst C# Feature – Method Hiding.

Un retour aux (code) sources avec une très bonne explication de la différence entre Value Type et Reference Type. C’est un peu la base, mais c’est toujours bon de se remémorer les choses… ValueTypes and ReferenceTypes : Under the Hood.

Les paramètres par défaut, c’est bien. Ça évite de faire tout plein de surchages. Mais…Default Parameters are Compile-Time Substitutions.

Ensuite, en vrac : What is a Closure?, The Principles of Good Programming, Scrum in One Slide & mise à jour du Framework Scrum et enfin Why the #AskObama Tweet was Garbled on Screen.

Voilà, beaucoup de liens. Dans le courant de la semaine prochaine (je me mets un « deadline » sinon je vais pas le faire XD), je posterais les contrôles ExtJS que j’ai fais.

Catégories :.Net, Divers, Feeds

Feeds Of The Week #5

Cette fois, je tiens un peu à parler d’un Framework Javascript.
Personnellement, j’aime pas spécialement le Javascript : pas d’IDE réellement bon, une horreur à déboguer et en plus, maintenant, avec le web 2.0 (je trouve le nom ridicule, mais bon…XD) et la folie autour de l’Ajax, c’est encore plus chiant à déboguer (merci Fiddler !!!).

Du coup, quand je vois un Framework avec des trucs tout prêt, j’apprécie.
L’exemple JQuery est, pour moi, discutable. Y a un socle commun et autour…y a autant de trucs qui traîne que dans les anneaux de Saturne (même s’il y a parfois des perles, mais y a aussi des horreurs…).

Dernièrement, au boulot, il a été décidé qu’on travaillerait avec Ext JS.
Pour ceux qui ne connaissent pas, c’est un Framework Javascript donc, qui est compatible avec les 5 broswers les plus utilisés sur le marché.
Mais l’intérêt de Ext JS, c’est surtout Ext JS .Net. Et ouais, ils ont pensés à nous, humbles développeurs .Net ! 🙂
Alors, soit les deux versions n’avancent pas au même rythme, mais la version .Net est quand même super utilisable (et surtout aisée à utiliser).
Je ne saurais que trop conseiller d’aller  voir les démos !
Je reviendrais surement sur Ext JS .Net dans un futur blog parce que mon boulot du moment, c’est d’encapsuler le GridPanel pour faire des tableaux à la chaîne.

A part ça, quoi de neuf cette semaine ?

Encore du parallélisme !!! Avec une Introduction à TPL DataFlow en C#.

Ensuite, deux billets intéressant de James Michael Hare :

Ensuite, un billet (blog) à suivre pour toute personne devant utiliser un peu de localisation : What curious property does this string have?

Après,  une question toute bête, pour une réponse nettement moins évidente (et tributaire de la personne en face…) : C# – Mais comment prononcer une lambda expression ?

Et enfin, La revue de code “du pauvre” avec TFS 2010. S’il y avait plus de revue de code en amont, il y aurait plein de problèmes d’évités… Et chacun pourrait y trouver une source d’amélioration (savoir se remettre en cause, c’est quand même important…).

Catégories :.Net, Divers, Feeds

Feeds Of The Week #4

Cette semaine, on parle un peu des null.
C’est toujours utile, en C#4 de faire des méthodes d’extensions. C’est assez simple à créer et ça rend quand même pas mal de service. Mais un truc qu’il ne faut surtout pas oublier, c’est de gérer les null, sinon, la NullReferenceException pointe son nez. Un petit point sur ce sujet : Extension methods on a null object instance.
Ensuite, on parle de la classe Nullable. En effet, on peut souvent utiliser Nullable<int> (par exemple), mais cette classe possède aussi des méthodes static. C’est développé ici : C#/.NET Little Wonders: The Nullable static class.

Je ne sais pas vous, mais j’avais déjà entendu l’expression « Following the pattern ». Sur le coup, je n’avais jamais relevé (en général, c’était dans un contexte où j’avais toujours quelque chose de plus urgent à faire…). Mais là, j’ai pu enfin comprendre ce que cela voulait dire, à suivre ici : Following the pattern.

Ensuite, une nouvelle qui est assez intéressante : la documentation pour MVC3 est dispo. Et non seulement dispo, mais en 9 langues différentes ! De quoi contenter un peu tout le monde. C’est publié ici : ASP.NET MVC 3 Docs In Nine Languages.

Et enfin, je tenais à signaler que l’été étant enfin là (on a eu un avant goût début juin, avant de retrouver un temps aléatoire, mais bon…), donc la saga « J’en ai rien à coder 2011 » est également là !
Au programme cette année :
Chapitre 1 – Visual Studio 2010
Chapitre 2 – Windows Azure
Chapitre 3 – WebMatrix
Chapitre 4 – Windows Phone 7
Chapitre 5 – SDK Kinect
Jeu-concours
Chapitre 6 – Internet Explorer & Développement Web – Focus sur HTML5
Chapitre 7 – Windows 7
Chapitre 8 – Décryptage BUILD

Pour info, on peut retrouver J’en ai rien à coder / J’en ai rien à déployer sur Facebook ! ^^


Voilà, c’est tout pour cette fois, mais y a de quoi lire !!!

Catégories :.Net, Divers, Feeds