I. Qu’est ce que .NET MAUI ?

A. Introduction

.NET MAUI (Multi-platform App UI) est une technologie de développement d’applications multiplateformes open source créée par Microsoft.

Prévue initialement pour une sortie en 2019, elle a finalement vu le jour en 2021 par manque de « maturité ».

Cette dernière permet aux développeurs de créer des applications natives pour diverses plateformes à partir d’un seul code de base en langage C# et XAML :

NET MAUI and the differents plateforms possible

B. Historique

Pour résumé l’histoire de .NET MAUI, il faut revenir en juin 2004 lors du lancement de la première version de Mono par son créateur Miguel de Icaza.

Mono est une implémentation open source du Framework .NET de Microsoft dans le cadre de la .NET Foundation et basée sur les normes ECMA pour C# et le Common Language Runtime afin d’offir au développeur une plateforme de développement de logiciels multiplateformes.

Entre autre, l’un des avantages majeur de Mono était son compilateur surpuissant et ultra-rapide qui dépasse encore aujourd’hui les performances de ces concurrents.

Par la suite, Mono qui appartenait à l’époque à l’entreprise Ximian a été racheté dans un premier temps en 2003 par l’entreprise Novell puis fut racheté en 2011 par la société Attachmate, éditeur de logiciel.

Attachmate et Novell partageant de nombreux clients, Attachmate décide alors une restructuration des projets. Ainsi Mono n’est pas une priorité pour la société éditeur de lociel, elle décide alors de licencier plus de 800 personnes en mai 2011, peu de temps après la finalisation de l’achat de Novell.

Les créateurs de Mono décident alors de créer très rapidement une startup, Xamarin, afin de poursuivre le développement de Mono et d’offrir du support aux développeurs. La société atteindra rapidement l’autosuffisance, diminuant la nécessité d’un apport de capitaux, grâce aux contrats de support et aux nouveaux produits pour développer en .NET sur téléphonie mobile

En février 2016, Xamarin est rachétée par Microsoft qui sera progressivement remplacé par .NET MAUI en novembre 2021 et sera mis à la retraite en novembre 2022.

Magré ce changement de nom et d’auteur, .NET MAUI reprend le même fonctionnement de développement d’applications multiplateformes que Xamarin avec le langage C# et XAML et une architecture MVVM (Modèle-Vue-VueModèle).

II. Setup d’un projet .NET MAUI

A. Création de la solution

Tout d’abord pour commencer un projet .NET MAUI, il faut commencer par mettre en place l’environnement sur lequel l’application va tourner. Pour cela nous allons nous rendre sur Visual Studio Installer et ajouter la charge de travail Développement .NET Multi-plateform App UI comme ci-dessous :

installation de la charge de travail pour .NET MAUI

Ainsi après la fin de l’installation de la modification de Visual Studio, nous allons pouvoir maintenant créer un projet .NET MAUI.

Pour ce faire, nous allons directement aller sur Visual Studio et créer une nouvelle solution .NET MAUI :

création du projet .NET MAUI

Après avoir cliqué sur le bouton suivant, vous allez choisir le nom de l’application et l’emplacement où vous allez la développer. Vous pouvez choisir n’importe quel nom et n’importe quel emplacement en respectant quelques règles de nommage :

  • Favoriser au choix : le camelCase , PascalCase car certaines plateformes ou librairies auront du mal à interpréter les noms de projet comprenant des caractères spéciaux.

  • Eviter les nombres et les caractères provenant d’autres langues comme le cyrillique ou encore les caractères chinois, japonais ou encore coréen afin d’éviter les bugs dans l’appel ou la liaison de plusieurs projet dans une même solution.

Petite astuce de développement : Fais attention au choix du nom que vous donner à la solution et au(x) projet(s) car une fois choisi il est compliqué de les changer en cours de développement car toutes les références du projet et des pages quelles qu’elles soient seront à modifier avec prudence car cela peut faire crasher un projet.

Enfin vous devez faire le choix de la version de .NET MAUI, pour l’instant, seulement .NET 6 et 7 sont disponibles donc libre à vous de faire le choix qui convient le mieux à votre projet.

Les seules différences que l’on pourrait noter entre .NET 6 et 7 est que .NET 6 est la version .NET prise en charge à long terme, c’est-à-dire que Microsoft gardera cette version comme version fonctionnelle de base. A l’inverse, .NET 7 est la version plus récente qui aura peut etre deux ou trois fonctionnalités de plus mais cela pourrait poser problèmpe si Microsoft décide de la supprimer un jour pour passer à .NET 8 ou une autre version.

De plus, il faudra également se renseigner sur la compatibilité avec les différentes librairie que vous allez télécharger qui requiert parfois .NET 7.

Enfin si vous avez bien tout suivi comme je viens de l’expliquer, vous devriez vous retrouvez avec une solution Visual Studio comme ci-dessous :

architecture de base lors de la création du projet

B. Mise en place de l’architecture MVVM

Maintenant que l’on a créé notre solution sur Visual Studio, il ne reste plus qu’a mettre en place l'architecture MVVM avant de pouvoir passer au développement de l’application.

Pour ce faire nous allons faire un clic droit sur notre projet en question, pour ma part le projet se nomme TutoNetMaui, puis cliquer sur Gérer les packages NuGet.... Ensuite il suffira d’ajouter les deux librairies NuGet suivantes :

  • La librairie CommunityToolKit.Maui la plus récente stable sortie

Librairie CommunityToolKit.Maui

A noter : Lorsque vous allez ajouter cette première librairie à votre projet, il vous faudra ajouter deux petites lignes dans le fichier MauiProgram.cs pour que la librairie soit opérationnelle :

  1. La référence à la lib : using CommunityToolkit.Maui;
  2. Son enregistrement dans le MauiAppBuilder via la méthode : .UseMauiCommunityToolkit()

Le fichier MauiProgram.cs ressemblera alors à cela :

MauiProgram.cs après l’ajout de la librairie CommunityToolKit.Maui

  • La librairie CommunityToolkit.Mvvm la plus récente stable sortie

Librairie CommunityToolkit.Mvvm

Après cette étape d’installation de librairies, nous allons maintenant ajouter des dossiers qui contiendront les différents types de fichiers qui feront fonctionner l’application. Je parle évidement des fichiers View (Vue), Model (Modèle) et ViewModel (VueModèle) qui sont les trois types de fichiers élémentaires de l’architecture MVVM.

Vous devriez obtenir une structure de projet similaire à celle-ci :

Structure complète du projet créée

Et voilà votre projet .NET MAUI est maintenant setup, il ne vous reste plus qu’à coder ! Nous verrons dans un prochain article les bases du développement d’une application .NET MAUI.