Où en est-on du Design Pattern MVVM en WPF ?

Pour réaliser une application WPF sur le modèle MVVM que dois-je faire aujourd'hui en 2019 ? J'en suis resté à quelque chose de pas très fini ni tout à fait utilisable à mon sens. 

Nous avons chacun un petit bout de MVVM Design Pattern implémenté à sa sauce, je cite pelle mêle, Laurent Bugnion,  Josh Smith (who thanks John Gossman), Prism, Wilfried Woiré, Alexy Shelest ...

J'ai également contribué à l'époque avec le GitHub - WPF Prims Toolkit.

Avec Prims ou pas Prism avec MEF ou pas MEF ...

Pour accéder à la librairie PRISM :

http://prismlibrary.github.io
Cette image vient de PRISM

Alors, je reprends les reines et j'espère bien qu'aujourd'hui, si j'instancie une nouvelle Application Desktop WPF avec mon Visual Studio 2017 Community le framework design pattern MVVM est déjà dans mon Template d'application WPF. Non ?

Malheureusement, je replonge dans les affres d'MVVM avec des sites actuels qui m'expliquent ce qu'est le modèle M-V-VM :

C# Corner - MVVM in WPF

Nipun Tomar présente le Design Pattern MVVM comme si c'était un truc nouveau le "last update" de son article date de Fev 2018 ! Alors qu'en bas (conseil pour connaitre la vraie date d'un article allez voir les commentaires) les commentaires dates de 2013. On est où ? En 2018 ou en 2013 ? 

Bon, j'avoue les explications sont vraiment très bonnes et très complètes sur la comparaison des modèles MPV, MVC et MVVM, si vous ne connaissez pas MVVM ça peut bon à prendre.

Pour le reste, je dois retourné avec Laurent Bugion et la chose principale qui a changée depuis lors c'est la disparition du CodePlex snif ! Laurent Bugnion a migré son projet dans GitHub :

GitHub - Laurent Bugnion - mvvmlight

C'est bien parce qu'il existe encore et malgré tout, cela permet de voir que la communauté est vivante. Mais son framwork est orienté portabilité Xamarin.Android, Xamarin.iOS, Xamarin.Forms, WPF. C'est curieux il cite encore Silverlight :-))

Et à part ça ?

SupInfo - WPF - MVVM : Le Data Binding (lien supprimé devenu payant sans doute)

Ils sont mignons, aucun code, tout à la mimine, depuis zéro, en Oct. 2015 ! Et bien ils ne sont pas en avance.

Et donc, en continuant mes recherches, je retrouve également Prism et son nouveau site ... avec peut-être en roadmap la version 6.0.

http://prismlibrary.github.io/docs/wpf/legacy/Implementing-MVVM.html
Prism Library - Implementing the MVVM Pattern Using the Prism Library for WPF

Voilà, alors faut-il aller plus loin ? Je pense qu'il me faut commencer par installer un Template. C'est tout en bas de la page :

https://marketplace.visualstudio.com/items?itemName=BrianLagunas.PrismTemplatePack
Prism Template Pack

Ce n'est pas un NuGet mais une extension Visual Studio :

Visual Studio -> Outils -> Extensions et mises à jour ...

Je n'ai pas trouvé si facilement, j'ai du aller dans -> En ligne -> Visual Studio Marketplace -> Modèles -> Visual C# -> WPF et dans la barre de recherche je tape "Prism" :

Extension Visual Studio - Prism

Voilà, je vais tester tout ça te revenir vous dire si on peut faire une Application Desktop WPF efficace avec tout ça.

Il y a un nom a retenir c'est Brian Lagunas qui est le "product owner" de Prism 6.0 qui sortira surement bientôt ;) et qui est totalement "Open Source".

Pour faire fonctionner quelques exemples comme :

GitHub - Brian Lagunas - InfragisticsWebinarSimpleMVVMPrism

L'installation du Prism Template Pack n'a pas suffit. J'ai du exécuter la commande suivante dans la Console du Gestionnaire de package :

PM> Install-Package System.Windows.Interactivity.WPF -Version 2.0.20525

Pour la suite je me permets de noter un autre lien :

GitHub - PrismLibrary / Prism

Have fun!

Les objets en C#

En C++, on connait des objets comme "array", "list", "tuple", "vector" mais alors quels sont ces objets en C# ? Quels sont les objets de la librairie standard du C# ? C'est la question que j'ai envie de me poser aujourd'hui.

Les Objets en langage C#
Les Objets en langage C#
Il y a un peu de confusion entre "programmation objet" et "les objets en C#". En langage C# on trouve notamment à la rubrique objets :

MSDN - Objets (Guide de programmation C#)
Comparaison entre Class et Struct, les Class sont des types référence et les Struct sont des types valeur.

Programmation orientée objet, pour mémoire :
L’encapsulation signifie qu’un groupe de propriétés, méthodes et autres membres corrélés est traité comme une unité ou un objet unique.
L’héritage décrit la possibilité de créer des classes à partir d’une classe existante.
Le polymorphisme signifie que plusieurs classes peuvent être utilisées de manière interchangeable, même si chacune des classes implémente les mêmes propriétés ou méthodes de manière différente.

MSDN - Programmation orientée objet (C#)
Rappel des concepts de programmation objet :

Interface, delegate, champ et propriétés, sealed, abstract

Modificateurs d’accès et niveaux d’accès
public  Tout autre code du même assembly ou d'un autre assembly qui y fait référence peut accéder au type ou au membre.
private  Seul le code de la même classe peut accéder au type ou au membre.
protected Seul le code de la même classe ou d'une classe dérivée peut accéder au type ou au membre.
internal Tout code du même assembly, mais pas d'un autre assembly, peut accéder au type ou au membre.
protected internal Tout code du même assembly ou toute classe dérivée dans un autre assembly peut accéder au type ou au membre.
private protected  Le code de la même classe ou d'une classe dérivée peut accéder au type ou au membre dans l’assembly de la classe de base.

Substitution de membres
virtual Autorise la substitution d'un membre de classe dans une classe dérivée.
override Substitue un membre virtuel (substituable) défini dans la classe de base.
abstract Requiert qu'un membre de classe soit substitué dans la classe dérivée.
new, modificateur Masque un membre hérité d'une classe de base.

OPENCLASSROOMS - Programmez en orienté objet avec C#
Cours rapides et efficaces sur la programmation objet (POO)

Et maintenant avec tout ça nous n'avons pas encore vu d'objet C# à proprement parlé.

Les Objets en C#

On trouve le Tuple
Mais c'est plutôt un "concept C#" qu'un objet et c'est d'ailleurs un objet assez complexe , il me fait penser à l'objet "élastique".

Du coup je me retrouve à réviser un petit peu mon C# Objet et je trouve la page suivante :

MSDN - Object.Equals Method
Complexe déjà non ? Pour des Structs la fonction Equals comparera les valeurs, on dit que struct est un type par valeur tandis que pour des Class Equals comparera les références. Autrement dit pour comparer des Class il veut mieux dériver de l'interface IComparable et implémenter la fonction overridée CompareTo.

On fait de la POO mais toujours pas d'objets. Si je cherche "Librairies en C#.NET" je tombe sur des livres ???!

To Be Continued

C'est quoi Azure Container Services ?

Je poursuis dans l'Azure, j'ai essayé sans succès d'installer directement Docker dans un machine Windows. Comment puis-je utiliser la puissance des Containers (Conteneurs). Autrement dit, puis-je utiliser des images containers autrement qu'en installant Docker sur ma machine hôte Windows ?

Docker Hub
Question corolaire, comment utiliser les images containers le plus simplement possible ?

Microsoft Container Registry
Dans l'Aure, je cherche les services concernant les Containers :


Microsoft Azure - Containers Services
Il me semble que Kubernetes est un service de gestion des conteneurs donc l'idée serait de commencer par la création d'un Conteneur.

Allez c'est parti.

Azure création d'un Conteneur

Dans le formulaire Instances de conteneurs, je vois le bouton Ajouter :


Azure Container Ajouter
Un wizard, 3 étapes, on commence par "De base" et le nom du Container.

Azure Container Image
Alors c'est quoi une "Azure Container Image" ? Une partie de la réponse à cette question se trouve Ici :

ROHIT TATACHAR - Improved discovery experience for Microsoft containers on Docker Hub
Je nous le met en français :
À partir de mai 2018, une petite sélection d'images a été migrée de microsoft / * vers mcr.microsoft.com/*. La plupart des images ont maintenant été transférées vers mcr.microsoft.com tout en maintenant l'expérience de découverte sur Docker Hub.

La transition est toujours en cours et nous espérons que 100% des pensions livrées seront transférées à MCR dans les prochains mois. De plus, nous déplaçons les images officielles Microsoft de la liste «communauté» vers la catégorie «Éditeur vérifié» sur Docker Hub.

Avec cette mise à jour, il est possible de rechercher des images Microsoft en cochant la case "Editeur vérifié" dans la nouvelle expérience utilisateur de Docker Hub. Les images elles-mêmes n'ont pas changé avec cette transition - il n'y a pas de changement dans l'expérience de tirage de l'image, mais uniquement dans l'expérience de découverte.

Si je comprends, les images Microsoft quittent DockerHub ... pour aller vers mcr.

Donc si on veut récupérer une Image pour notre Azure Container on peut aller dans :

docket hub - Official Images Windows

Ou dans :

Microsoft Containers Registry ... bas en fait non, on arrive directement dans le Dash board Azure c'est encore, à mon sens, une grosse cagade microsoft ... Je retourne dans DockerHub pour finalement trouver mon image.

En plus, je suis déjà connecté sur mon compte Azure avec le même navigateur et il ne s'en rend pas compte me reconnecte c'est tout un binse.

Microsoft Docker Hub
Encore un lien pour trouver une image docker ...

To Be Continued



Démarrer avec .NET Core, Docker et Microsoft Container Registry

Dans un article précédent je cite le blog de Scott Hanselman je trouve son article fort intéressant, je souhaite donc creuser .NET Core avec Docker et sur le Microsoft Container Registry. Si cela se trouve, je fais fausse route car ce n'est pas la bonne façon de faire mais je vais faire confiance à Scott.

Sacré Scott, me voilà bien, il me laisse avec trois notions à maitriser avant de comprendre ce qu'il a voulu dire par Démarrer avec .NET Core et Docker et MS Container Registry.

.NET Core : c'est le framework libre et open source et multiplateformes de Microsoft je sais dit comme cela c'est un peu bizarre mais c'est pourtant ça Microsoft s'est tourné depuis longtemps vers l'open source n'en déplaise à certains (en général des linuxiens).

Docker : Je commence à voir ce que c'est : plus léger qu'une machine virtuelle, il permet de faire tourner des applications sur toutes les plateformes. Un Container Docker est facilement déplaçable et installable sur une autre machine.

Alors Microsoft Container Registry c'est quoi ?
Ici : Microsoft Container Registry To replace Docker Hub for new images
On nous dit que Microsoft Container Registry va remplacer Docker Hub alors Docker Hub c'est quoi ? Sacré Scott.

Je dirais que c'est comme un Hub d'Images où l'on peut trouver des Images Docker à déployer. Il faut s'enregistrer ...

Docker Hub s'enregistrer pour récupérer une Image de Docker
MS Container Registry va héberger tous les nouvelles images Container de Windows Server 2019.

Voilà d'après la ligne de commande :

docker run --rm mcr.microsoft.com/dotnet/core/samples:dotnetapp

Scott utilise MS CR au lieu de Docker Hub.

Notez que les équipes Microsoft publient maintenant des images de conteneur sur le MCR (Microsoft Container Registry) afin de pouvoir utiliser le CDN Azure et en tirer un meilleur parti plus rapidement lorsqu'elles sont prochent de nous. Les images commencent à MCR et peuvent ensuite être syndiquées à d'autres registres de conteneurs.

Bon alors c'est quoi le CDN Azure ? Container Docker Network ... pfff.

Donc, peut-on dire que si l'on souhaite des Images Docker à terme, il vaudrait mieux aller les chercher chez MSCR ? Et que sinon on va dans Docker Hub ...

Install Docker

A priori Scott nous dit d'installer "Docker".

https://docs.docker.com/docker-for-windows/install/
Docker - Install Docker Desktop for Windows
Allons y !

Choisir les Containers Windows à la place des Containers Linux
Et puis un petit reboot ...

Docker Desktop 2.0.0.3
Une Icône sur le bureau ...
Docker Desktop
Et une série de messages ...

Docker - Windows 14393 is deprecated

Ca commence problème de compatibilité de version. Cette machine a été crée dans le Cloud il y a quelques mois à peine.
Docker - Hyper-V are not enabled
Là, je crois que je vais cliquer sur Ok ... un petit redémarrage ... Et donc maintenant on aurait les commandes de Scott à exécuter dans la console Docker pour installer et démarrer une application Web ASP.NET sur .NET Core ?

Vous y croyez ? Pas moi.

Docker - An error occurred
Voici le message d'erreur :

Unable to start: The running command stopped because the preference variable "ErrorActionPreference" or common parameter is set to Stop: 'MobyLinuxVM' failed to start.

Failed to start the virtual machine 'MobyLinuxVM' because one of the Hyper-V components is not running.

'MobyLinuxVM' failed to start. (Virtual machine ID 4C3FFD31-1791-4697-B6B9-309DE796DBD5)

The Virtual Machine Management Service failed to start the virtual machine 'MobyLinuxVM' because one of the Hyper-V components is not running (Virtual machine ID 4C3FFD31-1791-4697-B6B9-309DE796DBD5).
at Start-MobyLinuxVM, <No file>: line 296
at <ScriptBlock>, <No file>: line 412
at Docker.Core.Pipe.NamedPipeClient.Send(String action, Object[] parameters) in C:\workspaces\stable-18.09.x\src\github.com\docker\pinata\win\src\Docker.Core\pipe\NamedPipeClient.cs:line 36
at Docker.Actions.DoStart(SynchronizationContext syncCtx, Boolean showWelcomeWindow, Boolean executeAfterStartCleanup) in C:\workspaces\stable-18.09.x\src\github.com\docker\pinata\win\src\Docker.Windows\Actions.cs:line 92
at Docker.Actions.<>c__DisplayClass19_0.<Start>b__0() in C:\workspaces\stable-18.09.x\src\github.com\docker\pinata\win\src\Docker.Windows\Actions.cs:line 74
at Docker.WPF.TaskQueue.<>c__DisplayClass19_0.<.ctor>b__1() in C:\workspaces\stable-18.09.x\src\github.com\docker\pinata\win\src\Docker.WPF\TaskQueue.cs:line 59


Plutôt indigeste, MobyLinuxVM et pourtant j'ai choisi Windows ... et le bouton "Reset to factory defaults" allons-y pourquoi pas, rien n'y fait !



Tentative de relance après le reset :



Ok Ok Start ! Mais rien n'y fait CRASH !

Je relis la première phrase du Post de Scott Hanselman :

It's super easy to get started with .NET Core and/or ASP.NET Core with Docker. If you have Docker installed you don't need to install anything to try out .NET Core, of course.

En effet c'est super facile si vous avez Docker d'installé correctement sur votre machine par contre c'est super chiant d'installer Docker. Voir impossible car ma machine est virtuelle dans l'Azure alors je pense que la solution est plutôt là :

Azure - Instance de conteneur
Have fun? Not fun;-)



10 des meilleurs Blog C# .NET

Vous cherchez les meilleurs informations, les lectures les plus appropriées les plus intéressantes sur le langage C# DotNET et tous ces dérivés. On va regarder ce que l'on peut faire.

J'ai longtemps écris des articles sur C# .NET et mon blog était référencé parmi les meilleurs en page 1 de googole et puis d'autre sont arrivés et bientôt je fus submergé et c'est bien normal. C'est la loi de
l'évolution quand un créneau est bon à prendre il faut être le premier.

Blog en C# .NET

Alors aujourd'hui pour être référencé correctement avec C#.NET, il faut vraiment écrire beaucoup et je n'ai plus le temps alors je regarde ce que les autres écrivent. Et c'est intéressant finalement.

Je remarque une technique en référencement qui consiste à trier les meilleurs Blogs C# .NET et en parler dans un article avec des liens sur chacun des blogs.

Developpez.net - Les meilleurs blogs sur C#
Ils sont carrément chauvins que des blogs sur le site Développez.net. Ils proposent avent tout les blogs qui sont héberger sur Développez.net d'autre sont directement des blogs Microsoft ! Que du lourd pas de place pour les petits.

dotnetdojo - Top 20 des blogs Dotnet
C'est la technique de référencement qui est employée ici faire part des 10 blogs .NET C# qu'il préfère ou qu'il trouve en tête de recherche dans les moteurs. C'est un blog assez fort qui prend le développement logiciel au sérieux par exemple avec cet article : Les 10 premiers principes

Et je le remercie de référencer mon propre blog qui est classé dans ce top 20 c'est assez gratifiant je dois dire.

Puis, quand on cherche à lire sur le C# .NET, on tombe forcément sur les blogs de Microsoft :

Visual S# Archives | .NET Blog

Visual S# Archives | .NET Blog
Le souci chez Microsoft c'est qu'ils changent souvent leurs liens et vous vous retrouve avec des liens cassés ou pire qui pointent vers tout autre chose.

Et maintenant Le Roi, the King of C# .NET : SCOTT HANSELMAN
Le plus gros publicateur d'informations intéressantes sur C#.NET (peut être trop !)

Le King in French : Blog .NET de Thomas Levesque
Je suis triste en allant visiter son blog on peut constater qu'en Français c'est fini il ne publiera plus car en anglais, il est 20 fois plus visité (c'est vrai c'est incontournable).

Petit mise à jour, moi j'ai continué de publier en Français pour C# .NET car maintenant ce sont les moyens de traduction qui se sont terriblement améliorés. Ici même tout en haut vous pouvez choisir la langue et pas seulement l'anglais.

En anglais donc : Thomas Levesque's .NET blog

Et il en a un que je ne connaissais pas mais que j'ai trouvé très pertinent des articles très approfondis C'est : Mathias Montantin : Blog .NET

En plus, je tombe sur LE SUJET du moment pour tous les architectes DotNET : Architecture en Microservices en 10 min

Alors voilà, je ferai ça plus souvent : plutôt regarder et lire ce que les autres font que d'écrire moi même des articles.

Pour me ressourcer,

Azure Cloud - Redimensionner une machine virutelle

Vous avez une machine virtuelle dans le Cloud et Azure et vous souhaitez la redimensionner bien sûr c'est possible. C'est une très grande force de pouvoir adapter la taille de votre machine virtuelle à vos besoins.

Alors ce matin, je vais me connecter en Remote Desktop sur ma machine virtuelle et je trouve qu'un Go de RAM c'est un peu juste. Je me connecte sur mon tableaux de bord Azure, je regarde les coûts :

Les coût de mon Cloud Azure pour une machine virtuelle B1s : environ 13 euros
Les coût de mon Cloud Azure pour une machine virtuelle B1s : environ 13 euros
Oui la machine B1s (la plus petite qui soit) est donnée pour 10,67 €/mois mais autour, il faut deux trois bricoles pour la faire fonctionner, une adresse IP, un disque de stockage plus quelques objets liés aux récentes manipulations ... des logs.

Je me dis que je peux investir un peu : et tenter d'upgrader ma machine virtuelle, oui c'est là que c'est un réel avantage le Cloud et les machines virtuelles vous allez voir.

Rappelez-vous quand vous aviez votre propre serveur physique dans un data center qu'il vous coûtait la somme de 150 € /mois et que le manager du data center vous appelait car il était "tombé" pour je ne sais qu'elle erreur SQL Server ... si si rappelez-vous la galère.

Donc là je vais dans Microsoft Azure -> Machine Virtuelle -> Taille :
Redimensionner ma machine virtuelle
Je choisie la nouvelle taille que je souhaite pour ma machine en sélectionnant la ligne correspondante et je clique sur le bouton "Redimensionner". Bon cet un plus cher, il va falloir le surveiller ...

J'étais connecté sur cette machine en Remote Desktop donc je vois les messages suivants :

Redimensionner ma machine virtuelle le Remote Desktop : Shutting down
Et peu de temps après :
Redimensionner ma machine virtuelle le Remote Desktop : Please wait
Redimensionner ma machine virtuelle le Remote Desktop : Please wait for the Remote
Je vérifie le message de mon tableau de bord Azure :

Redimensionner ma machine virtuelle : Message de tableau de bord Azure
Redimensionnement réussi de la machine virtuelle à la taille 'Standard B1ms'. Je me reconnecte en Remote Desktop (même mot de passe) :

Vérification de la mémoire de ma machine virtuelle redimensionnée
J'ai bien 2 Go de RAM dans ma machine virtuelle maintenant redimensionnée.

Azure - Redimensionner une machine virtuelle

Voilà sans bouger de mon bureau, depuis mon Tableau de Bord Azure, c'est comme si j'étais allé acheter une barrette de mémoire 1Go de RAM (ou commandée sur Internet, elle serait arrivée sur mon bureau) :
  • que j'étais allé dans le Data Center
  • que j'avais coupé le serveur physique
  • que j'avais sorti de Rack de mon serveur physique
  • que je l'avais démonté pour y insérer la barrette de mémoire
  • que j'avais replacé le Rack dans son logement
  • que j'avais remis la tension et relancer le serveur
  • que j'étais retourné dans mon bureau
Et que je m'étais connecté à la nouvelle configuration physique de mon serveur. Croyez moi je l'ai déjà fait ... pfff c'est chaud. Vous n'êtes jamais certain qu'un serveur physique dont on arrête les disques redémarre sans encombre.

Bref je préfère l'Azure Cloud.


Azure Cloud - Le prix des Log Analytics

Le coût ou le prix des "Logs Analytiques" dans l'Azure Cloud de Microsoft, cela ne me semble pas très claire ;) C'est juste pour prendre une note. Afin de monitorer ma machine virtuelle dans le Cloud Azure on me propose de collecter des données en utilisant Azure Log Analytics mais cela ca me coûter combien ?

Au moment de créer le service de "Log Analytics" cela ne parait pas claire non plus :

https://docs.microsoft.com/fr-fr/azure/azure-monitor/learn/quick-collect-azurevm
Création d'Espace de travail Log Analytics
Niveau tarifaire "Par Go" de toutes les façons je n'ai pas le choix, en (1) je ne peux rien changer.

On dirait bien que tout cela n'est pas totalement sec ! De toutes les façons je n'ai pas encore eu de mauvaise surprise avec ce système, donc je plonge pour les "Log Analytics".

Je créé ce service dans le Groupe MyMachineVirtuelle étant donné que je souhaite collecter des données sur cette machine virtuelle en particulier.

Un fois l'objet MonEspaceTravailLogAnalytics créé je peux naviguer pour y accéder et l'on me demande de connecter une source de données :
Connecter Ma Machine Virtuelle à l'Espace de Travail Log Analytics
A priori, j'ai connecté ma machine virtuelle à l'espace de travail :

Machine Virtuelle Connectée à l'Espace de Travail Log Analytics
Je tente d'accéder à mon Espace de Travail Log Analytics pour y voir ma machine virtuelle monitorée :

Microsoft OMS
Donc tout ceci va changer à partir du 19 janvier 2019, c'est à dire bientôt ! Si je devais utiliser OMS (Microsoft Operations Management Suite) alors je devrais lire :

Migration du portail OMS vers Azure

Je crois que je vais plutôt attendre ... ;-)



Azure Cloud - Faut-il clôre mon abonnement gratuit avant que cela ne me coûte trop cher ?

Mon abonnement gratuit dans l'Azure Cloud prend fin. C'est ce que je craignait à la suite de la création d'un compte Microsoft Azure Cloud et la proposition d'un abonnement gratuit de 170 €, je dois maintenant clôturer avant que ce la ne me coûte trop cher.

C'est étonnant car Microsoft vous propose un abonnement gratuit mais il est limité dans le temps à un mois. Ce qui n'est, à mon goût, pas très long. Finalement les 170 € ne sont utilisables qu'un mois ...

Ce que j'ai hébergé dans mon abonnement gratuit :
Un machine virtuelle et une plateforme moodle dont j'ai trouvé la procédure de déploiement sur GitHub - Azure - Moodle.

Mais me voilà avec un coût de 67,91 Euros et j'imagine que c'est par mois ... ;-)
Azure Cloud le Coût d'une Plateforme Moodle
Pour être exacte, il y a à l'intérieur de ce coût une machine virtuelle d'environ 5 euros ... Ce qui coûte le plus cher c'est la base de données MySQL-bluadj pour 21,78 €/mois ...

Mais ce qui m'inquiète un peu c'est le schéma suivant, avec sa pente vertigineuse vers le plafond des 170 € :
Azure Cloud - Le Coût d'une Plateforme Moodle
On voit la barre des 170 € / mois mais la courbe y va très vite. Le Taux de prévision des dépenses semble atteindre la barre des 170 € /mois au milieu du mois de décembre ce qui est idiot car je risque de ne pas dépenser plus ... comprenne qui pourra.

J'arrive a un coût de déploiement d'une plateforme moodle dans l'Azure Cloud de Microsoft pour : 64,67 € / mois je vais tâcher de baisser drastiquement ce coût en ajustant la machine d'hébergement moi même.

Je vais de suite supprimer tout cela de mon abonnement pour réduire les coûts !

Coût de mon abonnement gratuit à Microsoft Azure Cloud

Je ne garde qu'une petite machine virtuelle B1S qui ne devrait me coûter que quelques Euros par mois et je supprime tout le reste. La prévision des coûts de mon abonnement va t-il suivre ?

Je reviens le lendemain pour constater l'évolution de mon abonnement :

Azure Cloud - Coût trouver le joli graphique
Je clique pour obtenir un nouveau graphique de coût. Afin d'en suivre l'évolution et de voir ce que les suppressions que j'ai effectuées ont comme effet.

Azure Cloud évolution du Coût
Pour l'instant cela n'a pas changé, par la suite je devrai voir la courbe verte se mettre à l'horizontale indiquant que je ne dépense plus rien de plus ...

J'espère que je ne me trompe pas mais je souhaite le vérifier.

A suivre.

Voilà j'ai sauter dans l'Azure Cloud de Microsoft

Je suis passé au Cloud, comme je l'avais pressenti, la courbe verte s'est mise à l'horizontal et j'ai mis à niveau mon abonnement gratuit pour un abonnement à l'utilisation :

Azure Cloud évolution du Coût
Azure Cloud évolution du Coût
Le message : "Les services gratuits expirent le 14/12/2019". Je ne sais pas encore très bien ce que cela veut dire, c'est à découvrir.

Autre message : "Mise à niveau réussie vers le paiement à l'utilisation. Votre crédit gratuit reste disponible jusqu'à la fin du cycle de facturation de la version d'évaluation gratuite. Toute utilisation au-delà de votre crédit gratuit sera appliquée à votre mode de paiement."

A décoder ... je crois que cela signifie que je conserve mon Crédit gratuit restant de 95,2 Euros valable pendant toute l'année ...

Finalement ce que je lis directement sur le graphique c'est que je n'ai rien à payer : "Cumul mensuel jusqu'à ce jour : 0 EUR" et que j'ai encore du crédit 95,2 EUR jusqu'à la fin de la période d'évaluation gratuite cette fois qui dure un an.

Conclusion

Heureusement que j'ai fait attention de contrôler précisément ce processus car il fait peur, l'instanciation d'une plateforme moodle aura suffit à faire décoller mon abonnement à plus de 100 Euros / mois. Mais je l'ai supprimée et mon abonnement est redevenu raisonnable à l'échelle d'un test d'un essai quasi gratuit.

Ca y est je suis dans l'Azure Cloud de Microsoft ... pour quelques euros/mois. Me voilà avec une Machine Windows Server 2016 à administrer dans le Cloud Azure de Microsoft.

Les Machines Virtuelles dans l'Azure Cloud avec PowerShell

Comment gérer, connecter et installer vos Machines Virtuelles dans l'Azure Cloud ? Parce que ce n'est pas si facile, je prends quelques notes dans ce post. Je souhaite créer une Machine Virtuelle dans l'Azure Cloud y accéder pour installer des applications web.

Documentation sur les machines virtuelles Windows
Créer une machine virtuelle Windows dans Azure avec PowerShell.

Pour ouvrir la fenêtre de commande Azure Cloud Shell c'est Ici :

Ouvrir la fenêtre de commande Azure Cloud Shell (PowerShell)
Ouvrir la fenêtre de commande Azure Cloud Shell (PowerShell)

La fenêtre suivante s'ouvre :
Bash ou PowerShell
Bash ou PowerShell

Personnellement, je choisie "PowerShell" :

Pas de stockage - Créer un stockage
Pas de stockage - Créer un stockage

Bon bas je clique sur "Créer un stockage" ... Il se passe un peu de temps et puis :
Le prompt du Power Shell dans l'Azure
Me voilà avec le Prompt du Power Shell dans l'Azure prêt à lancer des commandes. Alors c'est vraiment très puissant parce que l'on à vu que l'on pouvait créer une machine virtuelle y installer le web serveur IIS.

Démarrage rapide : créer une machine virtuelle Windows dans Azure avec PowerShell

Ouverture d'une Session RDP sur la Machine Virtuelle
En suite, pour installer IIS sur cette machine, dans la fenêtre PowerShell de la machine, j'exécute les commandes suivantes :


Installation du Serveur Web IIS sur la Machine Virtuelle Crée
Installation du Serveur Web IIS sur la Machine Virtuelle Crée
Pour tester l'installation d'IIS sur la Machine Virtuelle, j'y accède par un navigateur :


Accès au serveur IIS fraichement installé sur la Machine Virtuelle
Accès au serveur IIS fraichement installé sur la Machine Virtuelle
A la fin on peut même se payer le luxe de tout supprimer étant donné que l'on a rien installé de particulier et que le tout à pris à peine quelques minutes.

> Remove-AzureRmResourceGroup -Name myResourceGroup

Conclusion

Voilà comment à l'aide de mon Tableau de bord Azure Cloud j'ai créé une machine virtuelle à l'aide d'un script PowerShell. Je m'y suis connecté pour installer un Web Serveur IIS à l'aide d'un script PowerShell également. J'ai vérifié l'installation et la réponse aux requête web de ce serveur IIS.

L'Azure Cloud c'est vraiment magique !



C'est quoi l'Intelligence Artificielle l'IA ou l'Artificial Intelligence (AI)

Je souhaite défricher ou démocratiser l'Intelligence Artificielle, l'IA ou l'Articial Intelligence, comprendre les concepts et pourquoi pas trouver une application de l'Intelligence Artificielle. Je dis souvent quand on me pose la question que ce n'est pas difficile il suffit de télécharger une Intelligence Artificielle sur Internet, sur GitHub en particulier.

Alors allons-y faisons le !


C'est quoi l'Intelligence Artificielle

Ce matin je lis un article :

Blog: Yohan’s Advice on Artificial Intelligence (AI) & Cybersecurity

Je vais essayer d'en tirer la quintessence la substantifique moelle ... Cet article conclut sur les synergies entre l'IA et l'IoT (Internet of Things).

Les concepts présentés :

Machine Learning : le fait qu'une machine puisse apprendre par elle même
Neural Networks : le fait de constituer des interactions des liens des neurones
Deep Learning : apprentissage approfondi, méthodes d'apprentissage automatique pour modéliser

Architecture d'un système de détection de cyber attaques basée sur le Machine Learning :
Définir les règles que traiter ?
Créer un modèle pour reconnaitre une telle attaque
Définir les actions appropriées

Passons à la réalité : le ML produit trop de faux positifs

To Be Continued!

Azure Cloud - Le coût réel de l'Azure Cloud est difficile à prévoir

Vous cherchez à savoir combien cela coûte réellement d'utiliser des ressources dans l'Azure Cloud ? J'étais surpris d'entendre que l'on avait le droit à 170 € de crédit gratuit. En plus le MVP qui nous a présenté un mock dans l'Azure Cloud ajoutait que c'était renouvelable tous les mois ... Je suis dubitatif.

Azure Cloud - C'est un peu de désenchantement
Azure Cloud - C'est un peu de désenchantement

Et ben oui, je cherche toujours le coût réel de l'utilisation de l'Azure Cloud. J'ai maintenant quelques éléments concernant la création de machines virtuelles.

Mais que se passe t-il ? J'ai une notification dans mon Dashboard de l'Azure Cloud, j'y vais et là :

Azure Cloud - Notification d'expiration !
Azure Cloud - Notification d'expiration !

C'est déjà la fin ! A vrai dire, je n'ai pas eu le temps de commencer, j'ai instancié une VM pour voir. Je n'ai pas souhaité la configurer dès le départ avec l'accès RDP port 3389 me disant que je pourrais le faire facilement depuis le Dashboard et je cherche encore.

Par contre on m'indique que mon abonnement gratuit prend fin dans quelques jours ... !?

Ce qui me déplait fortement c'est que je continue a surfer sur l'Azure Cloud de Microsoft et voilà ce qu'il me propose ...

Azure Cloud - C'est un peu de désenchantement
Azure Cloud - C'est un peu de désenchantement

Du coup je fais quoi ? Je créé un nouveau compte avec une nouvelle adresse email pour essayer à nouveau gratuitement ... C'est idiot. On est facilement perdu quand au coût réel de tout cela c'est un mystère.

Tout ceci n'est pas très agréable, en vérité le "Taux et prévision des dépenses" est très complexe puisqu'il s'agit d'un règlement à l'utilisation.

Mettre à niveau votre abonnement

Dans mon tableau de bord Azure Cloud, j'ai une notification "Votre crédit gratuit expire bientôt" je clique et là on me propose les choses suivantes :/p>

Mettre à jour votre abonnement - Et toutes les explications du coût

Oui vous pensez comme moi que cela va vous couter 24,46 € / mois au minimum mais ce coput ne concerne que le support technique et regardez en bas vous pouvez mettre à jour votre abonnement sans support technique et là c'est réellement gratuit.

Voilà je suis convaincu je vais pouvoir rester dans l'Azure Cloud !