Nous sommes en train d’intégrer .Net MAUI dans notre langage Unicorn365. En générant du code .net MAUI par notre langage Unicorn, nous nous sommes aperçus de la facilité avec laquelle le code pouvait être écrit.

De deux façons, soit en séparant la présentation (nouveautés xaml) et la logique et règles (code .cs) ou soit en générant l’interface directement dans le code C#.

Voici la définition de Microsoft sur .Net MAUI :

l’interface utilisateur d’application multiplateforme .NET (.NET MAUI) est une infrastructure multiplateforme permettant de créer des applications mobiles et de bureau natives avec C# et XAML.

.NET MAUI est open source et est l’évolution de Xamarin.Forms, étendue des scénarios mobiles aux scénarios de bureau, avec des contrôles d’interface utilisateur reconstruits à partir de la base pour les performances et l’extensibilité. Si vous avez déjà utilisé Xamarin.Forms pour créer des interfaces utilisateur multiplateformes, vous remarquerez de nombreuses similitudes avec .NET MAUI. Il existe toutefois certaines différences. À l’aide de .NET MAUI, vous pouvez créer des applications multiplateformes à l’aide d’un seul projet, mais vous pouvez ajouter du code source et des ressources spécifiques à la plateforme si nécessaire. L’un des principaux objectifs de .NET MAUI est de vous permettre d’implémenter la plus grande partie possible de votre logique d’application et de la disposition de l’interface utilisateur dans une seule base de code.

Nous pouvons générer des programmes .Net MAUI de différentes façons, via une ligne de commande dotnet CLI (command line interface), via l’utilisation de visual studio Code ou Visual studio 2022.

Je vais vous présenter la dernière méthode ici.

En premier lieu, si vous ne l’avez pas déjà, téléchargez la version Visual Studio community 2022, la version 17.3.0 preview qui intègre .net MAUI.

Pour créer un projet .Net MAUI, c’est très simple. Créer un nouveau projet et choisir « Application .NET MAUI »

Tapez le nom de votre projet, puis cliquez sur « Créer ».

Vous obtenez par défaut un projet de type « Hello World ».

Les fichiers principaux d’un projet .net MAUI sont les suivants :

  • MauiProgram.cs : contient le code pour la création et la configuration les objets de l’application
  • App.xaml.cs : Définit les ressources de l’interface et la création de la fenêtre initiale de l’application.
  • AppShell.xaml.cs : Spécifie la page initiale de l’application et enregistre les chemins des pages pour la navigation.
  • MainPage.xaml.cs : Définit l’interface utilisateur et la logique métier pour la page par défaut. Il est possible de créer autant de pages souhaitées ainsi que de classes pour implanter des logiques métiers.

Dans la structure du projet, on retrouve les différentes plateformes dont on peut spécifier pour une en particulier des élements distinctifs en fonction de la ou des plateformes cibles. L’intérêt est qu’elles se partagent le maximum de pages et de codes.

Dans les options du projet, on peut aussi définir quelle plateforme on souhaite intégrer dans notre projet.

Pour tester une plateforme en particulier, il suffit de la choisir puis de lancer le programme.

Un exemple ici d’un programme généré pour Windows en .net MAUI. Le résultat est le même sur Android, iOS, etc…

Pour tester sur Android sur un périphérique spécifique, par exemple, il suffit d’aller ajouter un nouvel appareil android.

Vous pouvez sélectionner le type et le modèle, la version d’android, etc… pour pouvoir ensuite tester votre programme sur le périphérique de votre choix.

Ensuite, vous n’avez plus qu’à sélectionner votre périphérique pour lancer le programme !

A noter pour iOS, vous aurez besoin d’un mac (imac, macbook pro, air, …) et visual studio peut se connecter à votre mac via votre réseau pour pouvoir exécuter le programme 🙂 Il suffit de coupler le mac et d’activer la connexion à distance sur le mac.

Dans une prochaine partie et tutoriel, nous utiliserons notre langage Unicorn365 pour générer une application .net MAUI.

N’hésitez pas si vous avez des questions ou des commentaires, dans notre rubrique contact ou sur mon linkedin !

Dominique