Voici les deux ouvrages que j’ai écrit en 2019-2020 pour DUNOD:
Aide-Mémoire C++, sortie en Juillet 2020
Aide-Mémoire C#/.NET, sortie en Janvier 2021.
Merci à Jean-Luc Blanc et Maxine Pouzet de chez DUNOD.
Le premier ouvrage sur C++ (https://lnkd.in/eaca6bP) était un challenge à relever, un rêve. Le second sur C# (à paraître en Janvier 2021) est une chance. Je tiens à remercier mon éditeur et plus particulièrement Jean-Luc Blanc et Maxine Pouzet pour leur confiance.
On fera un nouveau projet début 2021 avec la seconde édition de “Mieux Coder en C++” toujours chez Dunod.
UltraFluid Modeler (UFM) est cours de développement mais il est disponible en daily build au téléchargement ent BETA 2 sur www.buildonthemetal.com.
Le code est disponible comme en Open-Source mais non compilable pour des raisons commerciales suite à sa finalisation. Les fichiers volontairement manquants sont les ressources graphiques (forms, icons, bitmap, menu, etc). L’accès au code source est sur Github.
Le logiciel permet de faire des diagrammes et de la visualisation. Par défaut, il est possible de faire des diagrammes simples avec des gabarits simples ou bien des diagrammes d’Infrastructure ou bien des diagrammes de Développement.
Le logiciel est le compagnon idéal des Architectes IT. Dans sa version BETA2, le logiciel est limité à 50 gabarits par application. Cela vous permet de tester et vous enregistrer pour la future date de lancement. Le produit sera disponible en plusieurs versions.
Exemple de modélisation de classes comme en UML
Le logiciel est un mix de Visio et PowerPoint et aussi simple à utiliser.
Exemple de diagramme plus visuel avec des gabarits
Si vous voulez faire partie du programme BETA User et Insider, inscrivez vous sur www.buildonthemetal.com.
En 2011, j’étais en mission à la Banque de France dans un service d’Architecture Technique nommé SATIS. Nous faisions des dossiers d’Architecture pour les nouvelles applications pour qu’elles passent en commission pour obtenir ou ou non une ligne budgétaire dans la banque.
Nous faisons des diagrammes dans Visio et c’était moche. Il y avait des carrés, des gabarits serveurs, des images, des traits partout et c’était horrible. Chacun faisiat à sa sauce. Moi j’ai opté pour PowerPoint des fois pour faire, via les Office Shared Components, du dessin de carrés (items) avec du texte reliés à d’autre éléments. Il y avait du texte pour les flux, les numéros de port et les protocoles. Mes diagrammes n’étaient pas les plus moche.
En 2012, le service se donne l’ambition d’être pilote sur un logiciel d’Architecture d’Entreprise : ARIS IT Designer. Ce logiciel propose de faire de la modélisation et de stocker les diagrammes en base de données et possède un module de requétage pour savoir quels sont les diagrammes qui possèdent tel ou tel gabarit avec des propriétés. Exemple: je veux connaitre toutes les application qui ont de l’Oracle 8 ou du Windows Server 2003 R2 pour les mettre à jour. Je suis moteur pour faire pilote du programme. Je rencontre les gens du projet (code interne MATUR – modèle d’architecture technique et d’urbanisation de mémoire…). On me donne accès à l’outil. C’est visuellement dégueulasse : du Java… Par contre, il y a des modèles de gabarit, des modèles et des processus précablés, de la méthodologie. cela se sent et se voit. Tout est customsable et finalement en l’analysant, c’est un logiciel graphique sur lequel chaque élément peut se voir affecté des propriétés customs.
Mon collègue de l’époque, Jean-Nöel me dit: “Pic, tu me ferais ça en C++, fast & Fluid et on le propose à la BdF ?”
J’ai commencé par dessiner des gabarits simples (ligne, carré, ellipse, flèche, etc) puis des images. Ensuite, j’y ai introduit descgabarits images prédéfinies comme ceux des documents Microsoft Visio avec leur gabarits serveurs, database, web server, desktop, laptop, etc. Pui j’ai ajouté des gabarits comme en UML comme les classes, interfaces, enumérations, components, packages, comments… La, ça prend forme. J’ai ensuite ajouté la possibilité de modifier la couleurs de remplissage ou non, la couleur de contour ou non. Ensuite, j’ai ajouté la possibilité de modifier le texte des éléments (taille, police, bold, italic, underline, align left, center, right). Tout cela, ce sont des propriétés par défaut d’un gabarit. Un gabarit peut être déssiné, retaillé, déplacé, groupé, supprimé et connecté via une flèche avec un autre gabarit. Il peut passer devant, derrière, ou un cran en avant, un cran en arrière. Tout est accessible depuis un Ribbon au look Office 2020.
Une fonctionnalité est aussi utile. Elle permet de stocker du texte (comme dans Notepad) derrière un gabarit (Propriété Code) via l’onglet (Excel like en bas de la page). C’est une propriété d’un gabarit. J’ai un module qui importe des fichiers sur disk qet qui dump le contenu des fichiers dans la propriété Code. C’est bien pour aspirer les fichiers de code et faire un audit.
Une autre fonctionnalité et la posibilité de visualiser les fichiers et répertoires sur dique et de les explorer. C’est la fonctionnalité Folders.
Voilà, je suis prêt. Ou presque. OK, on est en 2020.
Mon article sur le Monde du Développement selon Microsoft va paraître en Mars 2020 dans le magazine Programmez. on y trouve aussi une contribution de Timothé sur Xamarin.
Windows est le fleuron technologique de Microsoft depuis 25 ans. Vous allez me dire, oui mais maintenant il y a Azure. OK mais Azure c’est quoi ? C’est ; si je fais abstraction de la partie Linux; Windows Server et Service Fabric… et ça, c’est Windows. C’est du C/C++. Et oui, encore ! Y a pas de secret. ça doit marcher vite et bien. Cela doit être fiable, robuste rapide et sécurisé.
Dans un de mes derniers post “C++ unsafe et unsecure ?” (http://netazurerangers.com/blog/c-unsafe-et-unsecure/), j’explique pourquoi C/C++ est le meilleur et pourquoi Microsoft fait 95% de ses produits avec. Microsoft est la société n°1 de l’industrie logicielle. Ce n’est pas une régie publicitaire comme Google ou Facebook, c’est de la Tech pure jus. Microsoft vend des produits et du Services. Bref passons…
A partir de là, on connait l’architecture de base de Windows. maintenant, on attaque les éléments sur système d’exploitation à savoir le kernel et le Scheduler de threads. Windows ordonnance des threads, Linux ordonnace des processus. Ces deux systèmes ne fonctionnent pas de la même façon. La doc sur les Processes & Threads est ici : https://docs.microsoft.com/en-us/windows/win32/procthread/about-processes-and-threads
Pour tester cela, il faut installer Visual C++ disponible dans Visual Studio 2019 par exemple, Community Edition ou Pro 30 day trial. Si vous avez touché de l’argent de Papa Noël, achetez les livres suivants:
Windows via C/C++ de Jeffrey Richter et Christophe Nasarre
Moi j’ai acheté Inside Windows NT en 1992 et j’ai eu le virus.
Windows c’est énorme. C’est puissant. Vous lisez le livre Windows Internals et vous aurez la vision ; vous comprendrez comment marche l’OS. C’est très intéressant et vous n’aurez aucun mal à comprendre les nouvelles technologies Microsoft avec ça. Microsoft NET, le CLR, la BCL, c’est fait avec un peu de C++ et du C#/PInvoke sur l’API Windows alias Win32. Regardez le code sur GitHub du CoreCLR (https://github.com/dotnet/runtime) et du CoreFX.
Il y a des légendes urbaines selon lesquelles Microsoft réécrit Windows from scratch; ça c’est pour les managers et le 01 Informatique. Pour les techniciens, la vérité c’est que Windows est assis sur le même code et évolue depuis 25 ans. Le code est amélioré et régulièrement remanié en C++ Moderne. Je peux vous le certifier car j’ai le code source de Windows NT 4, Windows 2000 et accès au dernier code source de Windows 190x. Le code est fait en :
C pour le kernel et les drivers
en C/C++ pour le reste.
Le C++ Moderne c’est quoi ?
de la libération automatique de la mémoire avec les points intelligents (smart pointers)
utilisation de la bibliothèque standard STL (Standard Template Library)
utilisation du C++11/14/17 avec auto, les lambdas, etc.
A partir de là, on peut rentrer dans le détail. Les plus jeunes pourraient penser que Windows utilise NET mais il n’en ai rien. La lutte entre l’ancienne Windows Division et la Developer Division n’est pas terminée. Pour ceux qui veulent des détails, voici l’article qu’il faut lire:
Windows est entièrement fait en C/C++ avec une légère précision:
le kernel est fait en C
le reste est fait en C++
Pourquoi ?
Pour Microsoft et ce depuis 25 ans, le C++ c’est naturel, c’est l’électricité. On veut faire un logiciel, un produit, on utilise C++. Microsoft fait 95% de ses produits en C++ car c’est fiable, robuste, puissant et rapide.
En tant que MVP, j’ai signé avec Microsoft un NDA pour avoir accès au code source de Windows 10 et Windows Server 2019. le code est clean, truffé de C++ Moderne et ce n’est pas près de s’arrêter.
Avec l’avènement des technologies dites productives comme NET ou Java, les légendes urbaines se multiplient. Windows fait en NET, Linux en Java… Des foutaises ! Linux est faite en C/C++. Windows est fait en C/C++. Le reste c’est de la littérature.
Les grands logiciels sont faits en C++ ! Vive C++ !
J’étudie le code de Windows depuis 2001 date à laquelle j’ai mis la main sur le leak de Windows NT4 puis en 2003 sur le leak de Windows 2000. 2GB de source code, la mine d’or. Puis j’ai eu accès au Windows Research Kernel XP et Windows Server 2003. j’ai rebuildé le kernel et monté une VM Windows Server 2003. Génial!
Windows Research Kernel était une initiative pour les universités qui faisaient des cours sur les systèmes d’exploitation. Fabuleux. Et livré avec Windows Internals, la bible.
Le job de mes rêves : Développeur Windows chez Corp. Mais bon je suis français, faut pas rêver ! 🙂