Welcome to my blog

Here, I talk about my projects, .Net, and work.

15 Oct, 17

Générer tous les T4 Text Templates à la compilation


Hello World à tous !

Si comme moi vous utilisez du T4 Text Templates (fichiers .TT) dans vos projets avec Visual Studio et avez besoin de les générer avant chaque compilation, cet article est pour vous.

Depuis un certain temps, je me suis mis en tête d’avoir une numéro de version d’Assembly qui correspond à « Année.Mois.Jour.NombreDeBuildDansLaJournée ». Pour générer celà, rien de tel qu’un peu de méta-programmation avec du T4. Et comme je suis un fénéant, j’ai envie de faire en sorte de générer automatiquement tous mes fichiers T4 avant la compilation.
Ces dernières années, j’ai utilisé plusieurs façons de faire dans divers projets sous Visual Studio 2013, 2015 et maintenant 2017, souvent bancales. Entre les lignes de commandes en Pre-Build, les chemins qui n’existent plus d’une version à une autre de Visual Studio voir d’une machine à une autre, et bien j’étais gâté.

Read more
13 Sep, 17

Stage à Microsoft 4.0 – Le stagiaire devient employé


Hello World à tous !

Je n’en ai pas du tout parlé sur mon blog, mais je suis actuellement dans la région de Seattle depuis Avril dernier, en stage chez Microsoft (comme toujours…). Je n’en ai pas parlé car je pense avoir fait le tour de ce que je peux dire publiquement d’intéressant au sujet d’un stage dans cette entreprise. Mais ce qu’il y a ensuite pourrait être intéressant.

Ces derniers mois, j’ai eu l’occasion de travailler de nouveau avec l’équipe Chakra qui développe le compilateur JavaScript de Microsoft Edge, ainsi que MakeCode, qui développe un outil éducatif destiné à apprendre aux enfants à programmer (ce qui doit rappeler à SoftwareZator à certaines personnes).

J’ai récemment eu le plaisir d’accepter une offre d’embauche pour un travail à temps plein en tant qu’ingénieur en développement logiciel à Microsoft Corporation dans la région de Seattle, dans l’équipe MakeCode. Je vais donc quitter la France pour vivre de l’autre côté de l’Atlantique.

Read more
28 Août, 17

ClipboardZanager – Le défi technique


Hello world à tous !

Voilà presque un an que je travaille en pointillé sur ce projet. ClipboardZanager, le gestionnaire de presse-papiers que je maintiens depuis 2010 a le droit à un nouveau visage tout beau tout propre après 3 ans sans nouvelles.

Quoi de neuf?

Voici avant tout un résumé des nouveautés :

  1. Inspiré par Windows 10 pour Windows 10
    Une toute nouvelle interface qui s’adapte au nombre et à la taille de vos écrans et aux paramètres de personnalisation de Windows. L’interface adapte sa couleur et transparence en fonction de ce que vous avez définit dans vos paramètres.
  2. Sécurité améliorée
    Un procédé de chiffrement similaire à celui de PasszordZanager a été utilisé. L’application peut éviter automatiquement de conserver des données dangereuses telle que des numéros de carte de crédit. Enfin, vous pouvez choisir une application dont ClipboardZanager doit ignorer les données copiées.
  3. Synchronisation avec le Cloud
    Il est (de nouveau) possible de synchroniser ses données avec le Cloud via son compte OneDrive ou Dropbox personnel. Une application Android et iOS sont en cours de développement.
  4. Accessibilité
    Cette nouvelle version a été conçu pour supporter la navigation intégralement au clavier, les lecteurs d’écrans et le contraste élevé.
  5. Performances
    Une grande amélioration a été apportée. Au repos, ClipboardZanager consomme moins de 3Mo de RAM (comparé à 45 avant) et monte jusqu’à 75Mo lors que l’on réalise une capture d’écran (contre environ 500Mo à 1Go auparavant).
  6. Licence
    ClipboardZanager est désormais OpenSource sous licence WTFPL (Do What The Fuck You Want Public License). J’en profite pour annoncer que je cherche des traducteurs et développeurs Android/iOS qui voudraient bien contribuer. 🙂
Read more
18 Oct, 16

Récupérer la vraie résolution d’un écran en C# ou comment Windows m’a écarté l’Anus


Hello World à tous !

Tu essayes de récupérer la résolution d’écran de tous tes moniteurs en C# et tu t’arraches les cheveux ? Tu es au bon endroit.

Je viens de passer l’après-midi à tenter de récupérer la résolution de tous mes écrans (internes + externes) sans que la taille du texte, apps et autre de Windows, que l’écran principal ou que la rotation d’un écran externe ne vienne me faire démouler un cake.

Le scénario

Dans le cadre d’un projet personnel, je dois développer une application WPF. Je souhaite faire en sorte qu’une même fenêtre de cette application soit ouverte sur chaque écran du PC et prenne une certaine dimension en fonction de la résolution de l’écran ciblé. Il ne me faut donc pas juste récupérer la résolution de l’écran principal (primaire) ou la résolution global (somme de tous les écrans), mais bien récupérer la résolution de tous les écrans connectés au PC.

Pour cela, rien de plus simple, il me suffit d’utiliser l’API suivante :

Oui mais ! Ceux qui ont fait cette API (et je pense que j’irais leur dire bonjour la prochaine fois que je retourne à Redmond) ont dû trouver que c’était trop facile.

Read more
6 Oct, 16

Stage a Microsoft 3.0 – Retrospective – Visual Studio 15′ Prev 5


Hello World !

Ça y est, l’été, c’est terminé. Contrairement à l’an dernier, je n’ai pas fait un article par semaine, car tout simplement il n’y a pas d’intérêt à tout répéter. J’ai déjà raconté une bonne partie de ce qu’il y a à dire sur un stage à Microsoft, du moins tout ce que j’ai le droit de dire. Je vais donc en parler de manière plus réduite en essayant de parler de ce qui a été nouveau et plus globalement, ce que j’ai été amené à réaliser.

Le job

J’ai donc travaillé durant 12 semaines avec l’équipe VS IDE Project & Telemetry de Visual Studio. C’est en fait deux petites équipes en une, constituées de 5-6 personnes à chaque fois, avec un seul manager. Les deux parties sont donc :

  1. Telemetry, qui travaille sur le développement des apis et outils internes concernant la télémétrie de Visual Studio. C’est en fait l’équipe dans laquelle j’étais il y a deux ans.
  2. Project, là où je suis cette année, travail sur les fonctionnalités de Visual Studio qui permettent de gérer les projets et solutions au niveau global. Ça signifie qu’on ne va pas rentrer dans les détails des projets dédiés au C# par exemple, il y a une autre équipe pour ça, celle qui réalise les outils de développement spécifique au C#.

Dans cette équipe, comme à chaque fois, j’ai fait face à des nationalités diverses et variées. Un chilien, trois américains, deux russes, un bulgare, un indien, un ukrainien, deux chinois.

Read more