Pour cet article je vais faire un mini REX sur l’écosystème de Microsoft pour les développeurs.
J’ai commencé à travailler avec les technologies Microsoft vers 2016. Pour situer, Windows 10 devait avoir à peu près un an et Satya Nadella était à la tête de l’entreprise depuis 2 ans environ.
Ces deux points sont, à mon sens, importants et ont fait débuter une nouvelle ère chez Microsoft. Déjà Windows 10 à fait naître UWP (Universal Windows Platform) où pour la première fois, les développeurs peuvent construire une application pour la déployer sur toutes les plateformes Windows (PC, tablette, Xbox, HoloLens, Windows Phone – RIP, IoT, etc.).
Ensuite le CEO a donné une nouvelle direction pour tendre vers l’open-source. Ce qui est « révolutionnaire » pour Microsoft. Cela a permis de faire évoluer les technologies de Microsoft conjointement avec Microsoft et la communauté. Pour moi, Microsoft réussi à joindre le meilleur des deux mondes.
L’open-source a permis de compléter les composants graphiques d’UWP avec l’Windows CommunityToolkit. Cette boîte à outils est d’une grande aide pour les développeurs en ajoutant de nouveau composant (exemple : rogner une image avec ImageCropper) mais aussi des utilitaires comme l’implémentation des notifications « toasts » Windows.
Une autre révolution chez Microsoft est la portabilité du framework .NET vers du cross-plateforme. Ce qui a amené à .NET Core. Tout cela depuis 2016 !
Aujourd’hui en 2022, toutes ces révolutions ont bien évoluées et l’écosystème c’est complexifié si on ne se tient pas à jour des actualités.
Historiquement Microsoft mettait à disposition un seul et unique framework : .NET Framework. L’avantage est que les développeurs n’ont qu’un seul framework sur lequel se baser mais il faut un système d’exploitation sous Windows. Puis est arrivé .NET Core, avec qui il est possible de l’utiliser sur la majorité des OS : Windows, Linux et MacOS. Entre temps il y a eussi .NET Standard puis un framework propre à UWP, sans parler de Xamarin…
Mais heureusement la coexistence entre .NET Framework et .NET Core prend fin en 2022 avec l’unification des framework dans la version .NET 6. Enfin !
Travaillant dans l’industrie du logiciel, j’ai vu à quel point les choix étaient compliqués entre le choix des versions, la compatibilités entre elles et leurs évolutivités. Heureusement l’unification est là et permet une dernière grosse migration pour les développeurs..NET 6 est vraiment une grande étape qui permet de cibler : Windows, Linux, MacOS, iOS, Android ! Ce qui donne naissance à .NET MAUI, l’évolution de Xamarin.
.NET MAUI
L’un des grands avantages de .NET MAUI est l’unification des projets par plateforme cible. Alors que Xamarin crée un projet pour iOS, Android et le code partagé. Là un seul projet est à gérer.
Un des points qui m’a frustré est de ne pas avoir unifié le XAML (langage UI Microsoft, l’équivalent du HTML par exemple) avec celui des autre frameworks Microsoft comme WPF ou UWP.C’est un produit à l’heure de cet article un peu jeune pour moi. Ce n’est pas encore assez aboutie pour concurrencer Flutter par exemple sur le cross-plateforme. Mais l’avenir ne peut réserver que de bonnes évolutions.
WinUI 3
Pour moi, WinUI 3 tends vers le remplacement d’UWP pour les applications bureau. À mon sens, UWP n’a sa place uniquement si vous souhaitez cibler les plateformes comme Xbox, Hololens ou de l’IoT et encore.
Pour une application bureau WinUI 3 est juste très bien pensée et cohérente avec l’évolution et l’écosystème de la marque. De plus il se repose sur .NET 6, ce qui permet de regrouper facilement vos logiques métiers entre .NET MAUI et WinUI 3 par exemple ou .NET API.
Conclusion
Je ne suis pas le plus objectif par rapport à Microsoft car j’apprécie beaucoup l’écosystème. Mais l’entreprise à fait une belle évolution. Je trouve qu’elle facilite toujours la vie des développeurs par rapport aux autres produits du marché. Même si ce n’est pas à 100% parfait, Microsoft ne répondra pas à tous les besoins. Je trouve que l’on ne considère pas assez les technologies Microsoft et que le public à encore une vision ancienne où de toute façon pour utiliser ses technologies il faut uniquement du Windows/Windows Server et beaucoup de RAM. Ce qui n’est plus vrai actuellement où il fait de l’ombre à Java sur les performances, le cross-plateforme et la syntaxe du langage avec C#.
Description du problème
Par défaut, il n’est pas autorisé de faire des requêtes entre une application qui est dans un domaine A vers une autre qui serait dans un domaine B (pour des raisons de sécurité, il y a plus de détails dans les sources).
Si vous avez un front qui tourne sur un serveur node localhost:4200 et votre backend .Net sur localhost:7248), les requêtes du front ve...
Photo by Jackson So on Unsplash
Dans ce court article je vais vous expliquer comment faire en sorte que votre formulaire généré avec le moteur de templating Razor ait bien le bon champ « action » et non un champ « action » vide.
...