UltraFluid Modeler BETA2, le logiciel de modélisation Open-Source.

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.

Infeeny recrute des consultant(e)s Modern Apps et Azure !

Infeeny est l’ancien Gold Partner MC-NEXT

Infeeny, une société du groupe Econocom est un nouveau pure-player Microsoft. Vous voulez travailler dans des grands comptes sur des projets innovants, rejoignez-nous ! Nos consultants sont formés, éduqués, suivis, coachés via des events internes ou chez Microsoft. Ils passent des certifications. La formation et le coaching sont nos engagements les plus précieux. Nous faisons des articles technique pour Programmez via le partenariat avec la communauté technique des NET Azure Rangers, nous organisons des évents internes, nous sommes sur les salons avec Microsoft via les “Ask the Expert” via le programme MVP. Nous bénéficions du référencement Econocom dans le CAC40. Cela fait une énorme différence avec les autres pure-players qui sont des PMEs pour la plupart… Faites la différence entres les différents acteurs, choissiez le dynamisme de Infeeny.

En tant que leader technique NET, j’évolue dans un monde ou le Cloud Azure a une part prépondérante. Nous utilisons les technologies comme NET/NET Core, AKS (kubernetes), Docker, API Managament, Cognitive Services, Windows, Linux, SQL Server, SharePoint, Office 365, etc.

Venez tenter l’aventure ! Tentez votre chance

Vos contacts :

  • Pascale TOSTAIN (pascale.tostain@infeeny.com) – Recrutement
  • Michel HUBERT (michel.hubert@infeeny.com) – Direction Technique

UltraFluid Modeler BETA 2

UltraFluid Modeler est en BETA 2. Le soft est fait en C++ 64 bit Release et utilise le C++ Rest SDK de Microsoft pour le support JSON.

Vous pouvez le downloader ici: www.buildonthemetal.com

Rappel des diverses fonctionnalités:

  • Copy, Cut, Paste
  • Sélection simple, intuitive, de la première ligne, que les lignes, que des éléments
  • Ajout d’une image
  • Ajout d’un shape générique (rectangle, ellipse, étoire, flèche diverse, etc)
  • Ajout d’une zone de texte
  • Ajout d’un gabarit de Infrastructure (server AD, server Database, server Web, desktop, etc)
  • Ajout d’un gabarit de Dev (class, interface, enum, component, comment, package, etc)
  • Ajout d’un gabarit Diagram
  • Ajout d’un élément PLnning Task, Month ou Text
  • Modification des propriétés texte (police, taille, taille +, taille -, bold, italic, underline, strikethrough, fill, color)
  • Affichage des panneaux Solution, Class, Properties
  • Suppression d’un élément
  • Import de code C++ est dessin d’un gabarit par fichier
  • Dump des objets dans le panneau Debug
  • Module File Explorer : liste les fichiers et répertoires sous forme de gabarits
  • Ajoute un connecteur (flèche) entre deux gabarits
  • Déconnect un connecteur
  • Sélectionne un élément à partir d’une combo (nom de l’élément)
  • Augmente/Diminue la taille d’un élément par deux
  • Modifie la couleur de remplissage
  • Modifie la couleur de ligne
  • Modifie la largeur de ligne
  • Modifie la couleur de page
  • Zoom In/out
  • Sélection d’un zoom custom
  • Alignement du text gauche, centré, droite
  • Alignement des gabarits à gauche, à droie, au dessus, en dessous en fonction du premier sélectionné
  • Déplacement devant top, derrière -, devant +, derrière au fond
  • Sélection d’un élement pour le déplacer
  • Redimentionnement d’un élément
  • Group/Ungroup des éléments
  • Modification des propriétés dans la Property Grid
  • Load/Save de documents
  • Import/Export des documents au format JSON
  • Export des documents au format PNG

UltraFluid Modeler – Introduction

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.

http://www.netazurerangers-fr.com/

Le produit est disponible en version limitée sur le site.

Visual Studio Code, SSH, Linux, Kubernetes…

Après 3 semaines d’études de Kubernetes sous Linux, j’y vois déjà plus clair au niveau du tooling. Le fonctionnement sous Linux est indispensable pour bien comprendre comment cela fonctionne : le cluster, les pods, le proxy, les services, kubectl

bash sous Ubuntu 19.10
Visual Studio Code avec une fenêtre Terminal en ssh depuis Windows

L’apprentissage de Kubernetes est assez complexe au premier abord car les docs sont tordues. On est loin de la prise en main façon Microsoft. J’ai du me faire mal et lire un book Kubernetes Up & Running de O’Reilly et la version française que mon éditeur DUNOD m’a envoyé gratuitement (merci).

Sinon c’était des recherches sur le web pour trouver les commandes à renseigner dans le bash terminal. On avance doucement. Sur le papier c’est pas dur:

  • création du Web API en NET Core C# NET via console dotnet new WebAPI
  • création & build de l’image Docker
  • push de l’image en registry privée locale
  • création d’un déploiement avec helm sur k8s en pointant sur l’image en registry privée
  • vérification dans le portail k8S que tout est ok (vert)
  • kubectl get services => récupération du port du NodePort du service
  • chrome: host_linux:nodeport/webapi et ça marche !

ça c’est la théorie car la machine Linux, quand elle veut pas, y a moment de solitude. On n’est pas dans un environnement intégré Microsoft avec des assistants et de l’ai de partout. Là, c’est Terminal bash et tu te dém…. !

Si vous suivez mes tutos, vous vous en sortirai. Au pire des cas, vous m’envoyez un email. 🙂

Comment devenir un Expert Docker/Kubernetes dans le monde Microsoft ?

Ce post part d’une réflexion relatée à mon boss et à mes anciens collègues de différentes sociétés suite à la réception d’une newsletter Microsoft Azure….

Microsoft nous spam avec kubernetes… Y a pas à dire, Microsoft s’est converti à k8s.

En tant que MVP (Most Valuable Pipiche), je vous donne un feedback from the field sur Docker/Kubernetes. On m’a poussé à apprendre Docker & Azure en 2017 chez Neos-SDI et j’ai galéré… Mais ça a changé ma vie depuis 3 ans.

Après des semaines d’expérimentations avec ses choses-là (Docker, Azure et maintenant Kubernetes) , je suis arrivé à un constat : on a du boulot pour 10 ans sans forcer. Et donc qui dit boulot du business !

Par contre, le challenge c’est de faire évoluer les gens et là, ça va changer les habitudes des Devs NET traditionnelles. Comme disait Aimé Jacquet, sélectionneur de France 98, « Faut que tu muscules ton jeu sinon tu vas au-devant de sévères déconvenues ! ».

NET pour Windows, c’est mort. Faut faire de l’Azure, du Linux, du Docker/Kubernetes.

La recette à Pic :
Il faut vous mettre aux architectures micro-services (View on the web, Download pdf)
Il faut que vous maitrisiez la modernisation des applications .NET vers Azure (Download pdf)
Il faut faire des applications Web Modernes avec ASP.NET Core  et Azure (View on the web, Download pdf)
Il faut mettre en éveil l’Architecte qui est en vous:
Il faut regarder les samples officiels Microsoft comme eShopOnContainers, eShopWeb, SmartHotels360 et décortiquer la doc
Récupérer le code sur GitHub:
https://github.com/mspnp/microservices-reference-implementation
https://github.com/dotnet-architecture/eShopOnContainers
https://github.com/dotnet-architecture/eShopOnWeb
https://github.com/microsoft/SmartHotel360

Synthèse :

La solution est multi-plateformes (Windows, Linux) et multi-technologies:

  • Shipping/Delivery est en ASP.NET Core Web API avec support Redis
  • Shipping/DroneScheduler est fait en ASP.NET Core Web API avec support CosmosDB (ils ont pas pu s’empêcher…)
  • Shipping/injection est fait en Java/springframework
  • Shipping/package est fait en TS/node avec support MongoDB

Il y a le dev et le Ops : le YAML & co.

Le code des DockerFile est dense (limite complexe)

=> Il faut former les gens à Docker : c’est indispensable. Docker/Windows, Docker/Linux => mettre le paquet sur Docker

  • On peut d’ailleurs se servir de ce sample training officiel Docker/K8s.

Microsoft demande aux développeurs d’avoir des skills :

  • Windows, Linux
  • Docker, Kubernetes
  • Node, TS, Java, C#
  • MongoDB, Redis, CosmosDB

Le monde est de plus en plus complexe. Qui comme moi va passer son week-end à lire des books pour se former… ? Tout le monde n’est pas passionné. La barre est haute au niveau des skills .Je suis conscient que cela va nous donner du boulot pour les 10 ans à venir par contre la question reste posée : (hier, j’ai vu 2 cv asp.net qui m’ont pas fait rêver…) => on en fait quoi de ces gens-là ? Déjà que quand tu leur dit arrêter de faire EF, ils couinent…

On va leur demander de faire autre chose que du Web API bête et méchant : on leur demande d’être des architectes et de vrai développeurs avec un mindset open. Fini de jouer…

La clé de tout ça : la formation. Il est difficile de recruter des gens prêt à l’emploi : c’est très rare. Ils sont déjà en poste ou coûte très cher. Il faut former les gens. C’est la clé.

Mon avis personnel :

Aujourd’hui, tout existe, repos GitHub, Microsoft Learn, Microsoft Doc, les books gratuits MS Press, ceux qu’on rippe, ceux qu’on achète : on a tout ! La Technologie marche bien. Ce n’est pas le problème. Mais le problème c’est l’humain. Il faut faire prendre la mayonnaise, le faire adhérer, lui faire prendre conscience que c’est son intérêt d’upgrader ses skills.

Ça va être long et douloureux. Déjà que pour faire du Windows Server/IIS/SQL Server, le développeur Microsoft standard est léger… alors là, avec du Docker, Azure, NET Core, Linux, je suis pessimiste. On va ramer. On va essayer.

Informations technique :

Regardons le code du service Delivery, c’est pas dur :

Regardons le code que GetAsync :

On a un wrapper Redis : c’est le assuré via le package Nuget StackExchange.Redis

IDatabase est le wrapper Redis :

La conclusion de ce post est la suivante:

Formez vous à Docker/Kubernets, c’est l’avenir. Utilisez les samples de référence comme canevas de départ dans vos projets.

La newsletter Microsoft du jour: Lien: https://docs.microsoft.com/en-us/azure/architecture/reference-architectures/microservices/aks

Aide-Mémoire C#/NET pour Dunod

C’est avec une joie immense que je vous annonce que mon Editeur Dunod me confie le projet de livre “Aide-Mémoire C#/NET” pour 2020. Parution en Septembre 2020.

Design de la couverture

Objectif : le langage C# et la plateforme Microsoft NET et .NET Core.

On va taquiner les 350 pages.

Table des matières / sommaire :

  • Préface de Eric Vernié, Microsoft FRANCE
  • Partie I : la plateforme NET
    • Le CLR : common language runtime et les assemblies
    • Le CTS : common type system
    • La BCL : base class library
  • Partie II : le langage C# et le framework NET
    • Les types
    • Les statements
    • Les classes
    • Les properties, les méthodes, les interfaces
    • Les generics
    • Les events et les delegates
    • Les types nullables
    • Les exceptions
    • La reflection et le chargement des assemblies
    • La serialisation
    • Async / await
    • LINQ
    • Le multithreading
    • Le Garbage Collector
    • Gestion du XML
    • Les I/O
    • L’accès aux données via ADO.NET
    • Web API et JSON
    • Cryptographie
    • Overview WinForms
    • Overview WPF
    • Overview ASP.NET MVC  / APS.NET Core
    • Overview Entity Framework / EF Core
    • Net Core
    • L’interop COM
    • L’interop avec C++, C++/CLI et C++/CLR
  • Partie III : Azure
    • Overview Azure
    • Overview Docker & Containers
  • Partie IV : les outils
    • Nuget
    • Visual Studio 2019
    • ILDAsm et divers
    • Roslyn

Si vous voulez être relecteur technique, envoyez moi un email pour que je vous donne accès à mon SharePoint sur christophep@cpixxi.com via une inscription de votre compte email Microsoft dans mon Active Directory en tant que Guest member.

Mon identité web (sites Web MVP Fr et en-US et blogs)

Pour présenter mes articles techniques (possibilité de télécharger les PDF), mes applications GitHub, mes bouquins et plus généralement mes activités communautaires de MVP, j’ai fait deux sites web:

Ils ont presque la même façace. Voici le site en français. On y trouve :