27avr. 2016

Visual Studio 2015 : NuGet et les projets partagés entre solutions

Me voilà réduis depuis un petit moment à écrire du powershell pour faire de la restauration de package sur des projets partagés entre plusieurs solutions.

J'ai fini par trouver ceci :

Ce monsieur Jason Stangroome a écrit un package nuget qui "corrige" le problème.

Cependant, soyons lucides, c'est en réalité un problème de design qui est à l'origine de tout cela ^^.

Voici le lien vers le package en question :

Enjoy !

05avr. 2016

CleanCoder : Giving up on TDD

Ou pourquoi certains dév abandonnent TDD par Uncle Bob Martin.

Ce post est une mine d'arguments pour expliquer et convaincre vos collègues de l'utilité de la méthode Test Driven Development.

Morceaux choisis

Design et TDD

- But I thought TDD meant that you didn't have to design.

Yeah, and: "Love means you never have to say your sorry." What a bunch of horse hockey! We are programmers! We design! We create structures with high cohesion and low coupling. We manage dependencies. We isolate modules. WE. DESIGN.

Les tests nous parlent

Something that is hard to test is badly designed.

- Hmmm. I'm not sure...

Look. Suppose you ask me to write an app to control your grandmother's pacemaker. I agree, and a week later I hand you a thumb-drive and tell you to load it into her controller. Before you do you ask me: "Did you test it?" And my response is: "No, I chose a design that was hard to test."

04avr. 2016

Vis ma vie de dev : phrases cultes

Entendu en réunion :

  • "Il faut être orienté solution et pas orienté problème."
  • "Les managers ont convertis les tailles de tee shirt en jours."

Nous (développeurs) estimons en tailles de tee shirts pour avoir une idée de la complexité relative d'un tâche par rapport à une autre.

23fév. 2016

PragDav : Agile is dead, long live Agile !

Lors d'un meetup Software craftman ship Paris nous avons visionné la conférence Agile is dead de Dave Thomas.

Dave Thomas alias PragDave signataire du manifeste Agile y explique comment les pratiques de développement agile se sont "perverties". On fait de l'Agile désormais - et on le monnaie.

Considérez cet extrait sur son blog :

  • You aren’t an agile programmer—you’re a programmer who programs with agility.
  • You don’t work on an agile team—your team exhibits agility.
  • You don’t use agile tools—you use tools that enhance your agility.

Ces quelques phrases en perspective avec la businessisation de l'agilité dans le monde de l'entreprise illustrent parfaitement la pensée de Dave Thomas.

Bon visionnage !

23déc. 2015

Optimiser son temps : le pomodoro

A la recherche d'une technique d'optimisation du temps, j'ai fait la découverte du pomodoro. Cette technique de travail existe depuis les années 80.

L'idée est de découper sa journée en périodes de 25 minutes entrecoupées par des pauses de 5min. Tous les 4 pomodori, on effectue une "grande pause" de 10 à 15 minutes.

Lire la suite

29sept. 2015

Software Craftmanship : le mantra

Citation Toujours laisser le code dans un état meilleur que celui où vous l’avez trouvé.

10sept. 2015

Unity : tester l'instanciation des classes

Cela fait plusieurs fois que je rencontre le problème des enregistrements manquants dans Unity. Le projet se lance et on obtient l'erreur suivante :

Resolution of the dependency failed, 
    type = "MyAssembly.IMyTypeName", name = "(none)".
Exception occurred while: while resolving.
Exception is: InvalidOperationException - The current 
    type, MyAssembly.IMyTypeName, is an interface 
    and cannot be constructed. Are you missing 
    a type mapping?

Les applications en entreprise nécessitent souvent que des webservices soient lancés, des cas de tests créés etc ... .

Mettre toutes ces conditions en place prends du temps - pour parfois aboutir à ce message d'erreur, et être obligé de tout recommencer.

Heureusement il est possible d'automatiser.

Lire la suite

29avr. 2015

AngularJS : Entre récupération et création de module

Petit piège dans lequel je suis tombé avec AngularJS. Lorsqu'on écrit la ligne suivante :

var app = angular.module('mymodule', []);

On crée un nouveau module. Si on écrit la ligne suivante :

var app = angular.module('mymodule');

On récupère le module créé.

Dans mon cas, je recréais le module que je venais de créer. Ce qui à l'exécution me donnait un erreur Unknown Provider lorsqu'AngularJS tentait d'injecter un service dans mon contrôleur.

Source

28avr. 2015

AngularJS : Manipuler le DOM avec JQuery

Voici un post sur stackoverflow qui décrit comment intéragir avec JQuery pour ouvrir une popin modale :

Comme en MVVM on s'attache à ne pas intéragir avec la couche vue depuis le code view model. L'astuce est de créer un service dédié qu'on va venir injecter à l'intérieur du contrôleur.

De cette façon, on se libère de la dépendance grâce au principe d'injection de dépendance :P. L'objectif étant bien sûr la testabilité accrue du code.

23avr. 2015

Javascripts : 3 façon de créer une classe javascript

Au hasard de mes balades sur le net, j'ai trouvé cette page qui récapitule les 3 façons de déclarer une classe en js :

13avr. 2015

Team Foundation Server : activer/désactiver le déploiement automatique

Voici comment activer ou désactiver le déploiement automatique dans Team Foundation Server :

Lire la suite

02mar. 2015

Javascript : mémo sur les design patterns

En fouinant sur le net à la recherche des guildes de programmation sur le langage Javascript, j'ai trouvé ce site :

Vous y trouverez entre autres le revealing pattern, des implémentations de design pattern du GOF.

18fév. 2015

CSS joke

.wife {
    right: 100%;
    margin: 0%;
}

Pour moi et tous les G33k casés.

Source

27janv. 2015

Powershell : équivalent de tail

Dans bien des situation, nous avons des fichiers de log à suivre. Hors, honte à Microsoft, jusqu'ici nous n'avions pas d'équivalent à l'outil tail de bash.

Voici une petite ligne de commande qui permet de faire la même chose que tail :

Get-Content -Path "C:\scripts\test.txt" -Wait

16déc. 2014

JQuery FileUpload avec IE 9 : Callback non appelé

Je travaille avec IE 9, et je devais uploader un fichier vers un serveur en utilisant Web API. J'ai finalement opté pour le plugin FileUpload de JQuery.

Seulement voilà, le plugin upload bien le fichier, mais je n'avais pas de retour après la soumission du formulaire.

Lire la suite

15déc. 2014

Web API/JQuery : Upload de fichier avec IE 9

Je n'ai pas trouvé de solution full JQuery native pour faire un upload de fichier avec IE 9, sans utiliser de plugin donc.

On oublie tout de suite l'utilisation d'un objet javascript FormData avec la fonction $.ajax de JQuery, car sous IE 9, ça n'existe pas.

Néanmoins voici une alternative possible sans utiliser de plugin.

Lire la suite

14déc. 2014

Reference ASP.Net Web API

Sécuriser

12déc. 2014

References Web

Les sites de référence et documentation généraux sur les technologies Web :

JavaScript

Styling

  • Bootstrap - Un framework pour gérer la partie graphique des sites web.

30oct. 2014

Visual Studio 2012 : Optimiser son environnement

J'ai récemment été confronté à des lenteurs - quasiment un freeze - à l'ouverture de Visual Studio. A tel point qu'il devenait nécessaire de passer par le système de fichier pour modifier les fichiers sources.

Voici deux pistes de réflexion pour optimiser votre environnement.

Choisir le bon type de workspace

Team Foundation Server propose deux types de workspace, serveur et local.

Le workspace serveur

Lors de modifications dans un workspace serveur, Visual Studio checkout automatiquement les fichiers modifiés.

Lire la suite

30oct. 2014

Parole de dév

"Les mails urgents arrivent à pieds."

Spécial dédicace à P.

- page 1 de 15