Le modèle de développement UI selon Microsoft

L’avenir de monde graphique (UI) chez Microsoft se nomme WinUI. WinUI ce sont les contrôles XAML de Windows 10. Ils sont faits en C++.

Windows 10 en fait une utilisation intensive et les propose (enfin) en accès complet à tout le monde: NET, C++, Win32.

Microsoft is committed to C++. Windows aussi. Microsoft fait ses logiciels en C++ car C++ est rapide et performant. Vous saisissez mon sous-entendu ? Sur le site Microsoft, si vous cherchez à faire du développement logiciel, on vous oriente sur .NET par défaut. Je pose la question : mais pourquoi ?

Microsoft ne le fait pas. Pourquoi le ferais-je ? Microsoft n’est plus dans le dog-fooding comme avant. Il y a un discours interne et un discours externe.

En interne, il n’y a aucun débat, on fait tout ou presque (à 90%) en C/C++. Windows, Office, Edge, etc.

En externe, on ne fait que la promotion de .NET, du web, de JS/TS, de Angular et de python !

Là ou je rigole, c’est que les évangélistes de Microsoft qui passent leur temps à prendre en photo leur repas de hamburgers sur twitter ne connaissent en rien le monde natif et là ça pose un problème par exemple, sur WinUI. Il n’y a plus personne pour expliquer le vrai Microsoft, celui de l’intérieur.

Sur WinUI, il faut faire la promotion de XAML Islands, des controles en C++ et savoir expliquer comment le mixer avec MFC et les contrôles Win32 par exemple. Résultat: rien. Y a personne qui sait faire.

En tant que MVP, je vais m’y consacrer. mais c’est pas normal que Microsoft ne remplisse pas sa part de Learning.

Des fois, j’ai des discussions avec des développeurs qui pensent que Windows est fait en C# ???? WTF! Le niveau de connaissance de l’entreprise Microsoft est nivelé par le bas. Les architectes .NET pensent que les interfaces graphiques desktop doivent être faites en WPF. Ah oui ? Pourquoi Microsoft ne le fait pas alors ?

L’avenir c’est C++ et .NET Core. Ce n’est pas que .NET et C#. NET et son CLR c’est powered by C++.

Présentation de mon profil

Je m’appelle Christophe Pichaud, 45 ans, je suis divorcé et j’ai trois filles. Je suis Architecte de Solutions Microsoft et développeur. Je travaille dans le milieu de l’écosystème Microsoft depuis 20 ans, suis certifié sur Windows, C++, C#/NET et SQL Server. Je suis aussi Microsoft MVP depuis deux ans dans la catégorie Developer Technologies. J’ai une passion aussi pour le C++ mais je vous présente plus particulier mes compétences en C#/NET Framework.

Je vais vous présenter trois missions .NET complexes :

La première : Pour Microsoft, en solo. Il s’agit d’un projet CIR vitrine pour Microsoft que j’ai réalisé en 2018 pour un Microsoft Gold Partner à Paris. Il s’agit de mettre à disposition un container Docker sur le Market Place Azure pour gérer un cache distribué implémenté avec OpenLDAP-LMDB pour les applications sur Azure. Le but étant de concurrencer les solutions comme DocumentDB de Microsoft ou MongoDB qui sont assez cher sur Azure. Le projet a été réalisé en 8 mois et met en œuvre un container docker qui embarque un serveur web autonome et une librairie d’accès aux données (c’est un filesystem en mémoire) extrêmement rapide. Ce projet met en œuvre les technologies Azure Container Instance et Azure Container Registry. Les performances du service REST sont 10x supérieurs à MongoDB et DocumentDB pour un coût inférieur. La solution a été appréciée par Microsoft.

La seconde : Pour le CACIB, en 2010, en équipe, il s’agit d’un projet bancaire CIB de consolidation des flux Front-Back avec une solution financière IntelliMatch. Le but est de traiter la nuit les flux du FrontOffice et de les agréger finement pour qu’ils puissent être consolidés. Il s’agit de services de traitement fonctionnant sous forme de Windows Workflow qui s’exécutent en parallèle avec d’autres opérations multithreads.  J’ai participé à la finalisation de cette solution et résolu les problèmes de multithreading (plantages aléatoires). J’ai développé un outil graphique de monitoring en WinForms qui permet de suivre le chemin du workflow de traitement pour que les équipe de support puissent analyser les travaux réalisés la nuit. Cette gestion du support a été très bénéfique.

La troisième : Pour CPORDevises en développement solo avec un CP en 2016, Il ‘agit du développement d’une application graphique pour des traders d’Or. Le but était de faire de l’acquisition de données dans des grilles et de permettre la saisie en parallèle sans bloquer l’interface utilisateur. Il s’agit d’opérations qui mêlent les mécanismes de Timer et de multithreading. L’application MDI permet d’afficher des grands écrans complexes qui sont mise à jour plusieurs fois par secondes via des appels de WS en arrière plans. La solution vient d’un mécanisme de récupération de données en mémoire et d’un affichage en asynchrone. Ce n’est pas du binding car c’est trop lent. WinForms était la solution car le GDI est plus puissant que WPF.

Je pratique C#/Net depuis 2001 et possède les certifications MCSD.NET, MCTS. Je maitrise une bonne partie de la stack .NET que j’ai mis en œuvre en entreprises mais les technologies Microsoft ne cessent de grossir et il faut s’adapter. C’est ma principale qualité. J’aime travailler en équipe sur des solutions complexes. Je suis prêt à relever de nombreux défis et je suis très motivé.

En 2012, pour Sogeti,  j’ai aussi réalisé une mission de 24 mois à la Banque de France dans un service Architecture. Une belle mission.

En 25 ans, j’ai eu la chance de mettre en œuvre en entreprises la plupart des technologies Microsoft : Win32, COM, MFC, SQL Server, IIS, HIS, Exchange, AD, VBS, WInForms, WPF, AP.NET & MVC, Azure.

Je ne connais pas tout, ce n’est pas possible. Par contre, je lis beaucoup. Je m’adapte. Je me remets en cause : c’est obligatoire. Je rip pleins de ebooks.

Mon domaine, c’est le monde Microsoft. Via le channel MVP, j’ai les informations confidentielles avant tout le monde.

Je me forme régulièrement sur Pluralsight. Je suis un Expert technique sur Windows, C++ et NET.

Je suis aussi contributeur open-source officiel sur le code source Windows via Windows/Terminal depuis Juin 2019. Fier.

Mon dada, c’est le C++ mais je suis passé à NET en 2001 avec le NET SDK Betas 2. J’ai assisté à la conférence NET de Develop Mentor qui invitait les développeurs Microsoft à présenter le CLR, la BCL et C# à San Francisco en 2001.

J’ai compris que c’était l’avenir.

Je suis aussi contributeur régulier au magazine Programmez et Community Manager de la communauté de NET Azure Rangers (27 membres, 9 MVP).

Si vous pensez que je peux vous être utile, de par mon expérience d’Architecte logiciels et de développeur expérimenté, n’hésitez pas à me contacter.

Je me ferais une joie de répondre à une interview par fil, skype ou de visu.

Christophe Pichaud – MVP Developer Technologies | www.netazurerangers.com | christophep@cpixxi.com | @windowscpp | windowscpp.com | christophep.com

Mon Livre Aide-Mémoire C++pour Janvier 2020

C’est un projet qui me tient à cœur. Je suis en train d’écrire un livre sur C++17 et la STL.

Il est destiné aux étudiants, aux ingénieurs et aux professionnels. Il n’y a pas beaucoup de bouquins valables en français sur C++  et encore moins sur le C++ Moderne.

J’ai donc contacté un éditeur connu et je lui ai proposé mon projet, qui a été accepté.

C’est un format moyen de type 300 pages. le but de cet ouvrage est d’être très pragmatique et très orienté code. Il y a pleins d’exemples.

Le but n’est pas de perdre le lecteur dans les méandres du standard ISO mais de lui montrer tout ce qui marche et qui efficace.

Le C++ est de plus en plus complexe et il n’est pas facile de monter au bord tellement il est immense. Le but de ce livre est de permettre de sa lancer sans peine.