Vos applications Windows Forms et WPF sont-elles prêtes pour .NET Core 3.0 ?
Microsoft veut s'en assurer et sollicite les développeurs

Le , par Michael Guilloux, Chroniqueur Actualités
Lors de la dernière édition de sa conférence Build en mai, Microsoft a fait une annonce qui a surpris plus d'un développeur : .NET Core 3.0 va prendre en charge le développement d'applications de bureau, mais cette nouveauté sera uniquement disponible pour Windows. Ainsi, avec .NET Core 3.0, les développeurs seront en mesure d'exécuter de nouvelles applications de bureau Windows ou des applications de bureau existantes sur .NET Core et profiter de tous les avantages de la plateforme. Lesquels avantages sont entre autres :

  • des améliorations de performances et mises à jour du runtine ;
  • la facilité de tester une nouvelle version de .NET Core juste sur une application de votre ordinateur ;
  • l’activation à la fois du déploiement global et du déploiement local des applications ;
  • la prise en charge des outils CLI de .NET Core ;
  • l’utilisation du nouveau .csproj et la gestion des packages.

.NET Core a pourtant été présenté comme une version multiplateforme de .NET Framework. Microsoft a donc abandonné les technologies de Framework .NET liées à Windows afin que .NET Core soit ouvert à d'autres plateformes, notamment Linux et macOS. .NET Core n'offre donc pas de prise en charge de ASP.NET WebForms, Windows Forms et Windows Presentation Foundation (WPF). Ce qui ne fait pas l'affaire de nombreux développeurs, qui n'ont pas manqué d'exprimer leur besoin auprès de Microsoft. L'annonce du support des applications Windows desktop, plus précisément de Windows Forms et Windows Presentation Framework (WPF), est donc une réponse à la demande de ces derniers. Ce support sera ajouté sous la forme d'un ensemble de packages sous le nom de « Windows Desktop Packs ».

Maintenant que Microsoft a fait cette annonce, il faut s'assurer de la qualité de ce support, notamment en ce qui concerne le portage des applications existantes. Pour cela, le géant du logiciel met à la disposition des développeurs l'outil Portability Analyzer, pour leur permettre de savoir si leurs applications Windows Forms et WPF sont prêtes à être portées sur .NET Core 3.0.

« Nous voulons nous assurer que .NET Core 3.0 inclut toutes les API dont dépendent vos applications Windows Forms et WPF. Ainsi, afin de savoir quelles API sont utilisées, nous publions Portability Analyzer qui signalera l'ensemble des API référencées dans vos applications qui ne sont pas encore disponibles dans NET Core 3.0. Cette liste d'API sera envoyée à Microsoft et nous aidera à définir les API à intégrer [à .NET Core 3.0] avant sa livraison », explique l'équipe .NET dans un billet de blog.

L'analyseur de portabilité, qui est un outil open source, vise donc à simplifier votre expérience de portage, et pour cela, Microsoft invite les développeurs à le télécharger et l'exécuter sur leurs applications. « Afin que nous puissions connaître les API dont nos utilisateurs ont besoin, nous vous demandons d’exécuter l’outil qui nous aidera à fournir la meilleure expérience possible dans le portage de vos applications. En même temps, vous verrez à quel point vos applications sont portables, car l'outil génère une liste d'API référencées dans vos assemblys, qui pourraient ne pas être prises en charge dans .NET Core 3.0. »


Présentation de l’outil Portability Analyzer

L'exécution de l'outil fera deux choses. Elle va générer une feuille Excel qui signalera le niveau de compatibilité de votre projet avec .NET Core 3.0, en précisant les API spécifiques de votre projet qui ne sont pas actuellement prises en charge. Mais elle va également envoyer ces mêmes données à l'équipe .NET de Microsoft, pour qui cela servira à déterminer quelles API sont nécessaires pour le plus grand nombre. À part ces informations, aucune autre (ni code source ni binaires) ne sera envoyée de votre ordinateur à Microsoft. L'équipe .NET insiste également sur le fait que l'ajout de nouvelles API à .NET Core 3.0 se fera en fonction des informations collectées. Les développeurs sont donc invités à télécharger et exécuter l'outil, pour s'assurer que leurs applications et leurs API spécifiques seront prises en compte.

Télécharger l'outil Portability Analyzer sur GitHub

Et vous ?

Depuis l'annonce de Microsoft en mai, avez-vous étudié les avantages et inconvénients du support des applications Windows desktop sur .NET Core 3.0 ?
Si oui, pouvez-vous les partager et les expliquer ?
Comptez-vous déjà développer de nouvelles applications Windows Forms ou WPF avec .NET Core 3.0 ou porter des applications existantes ? Dans quels buts ?

Voir aussi :

.NET Framework 4.7.2 est disponible, avec le support de l'injection de dépendance dans les Web Forms et la sécurisation de cookies avec SameSite
La préversion de la compilation hiérarchisée est disponible dans .NET Core 2.1, pour tirer le meilleur parti du démarrage et de l'exécution d'une app
Microsoft annonce la sortie de .NET Core 2.1, avec de nombreux ajouts et améliorations qui viennent enrichir cet environnement
.NET Core 3.0 offrira un support du développement d'applications de bureau, mais sur Windows uniquement
Microsoft annonce la disponibilité de .NET Core 2.1 RC1, cette version peut déjà être utilisée en production

Source : Blog .NET


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse Signaler un problème

Avatar de frfancha frfancha - Membre confirmé https://www.developpez.com
le 10/08/2018 à 7:45
Citation Envoyé par François DORIN Voir le message
Aujourd'hui, il n'y a pas de solutions stables pour faire des applications de bureau compatibles Windows, Linux et MacOS
QT.
Avatar de hotcryx hotcryx - Membre extrêmement actif https://www.developpez.com
le 10/08/2018 à 10:47
Avatar de François DORIN François DORIN - Responsable .NET & Magazine https://www.developpez.com
le 10/08/2018 à 11:02
Citation Envoyé par frfancha Voir le message
QT.
Non. Remet dans le contexte : pas en .NET .

Citation Envoyé par hotcryx
https://en.wikipedia.org/wiki/List_of_widget_toolkits
En C# est cité :
  • GTK#. Binding de GTK, dont le portage Windows est douloureux (bugs, comportement différents, etc...). Bref, pas vraiment utilisable pour faire un code véritablement portable ;
  • Winform. Marche très bien sous Windows (normal), moins bien sous Linux et MacOS car l'implémentation faite par Mono n'est malheureusement pas fidèle 100% (malgré une très bonne fidélité en général).


Bref, aujourd'hui, à moins de se tourner vers une solution comme Electron, il n'existe pas de framework ou de binding en .NET permettant de faire des applications graphiques de manière portable. Les différents projets existant sont abandonné, dans un état de proof of concept, en cours de développement ou bogué.

Donc je réitère : pas de toolkit graphique stable et utilisable pour faire des applications graphiques en .NET, à moins d'utiliser une solution type Electron.
Avatar de frfancha frfancha - Membre confirmé https://www.developpez.com
le 10/08/2018 à 11:10
Citation Envoyé par François DORIN Voir le message
Non. Remet dans le contexte : pas en .NET .
Donc je réitère : pas de toolkit graphique stable et utilisable pour faire des applications graphiques en .NET, à moins d'utiliser une solution type Electron.
Le lien entre Electron et .NET ??
Avatar de François DORIN François DORIN - Responsable .NET & Magazine https://www.developpez.com
le 10/08/2018 à 11:16
Le lien ? C'est une solution utilisable en .NET.
Avatar de frfancha frfancha - Membre confirmé https://www.developpez.com
le 10/08/2018 à 12:21
Citation Envoyé par François DORIN Voir le message
Le lien ? C'est une solution utilisable en .NET.
Déso, je ne comprends pas comment Electron est plus lié à .NET que QT.
Quelque chose m'échappe.
Peux-tu préciser?
Avatar de François DORIN François DORIN - Responsable .NET & Magazine https://www.developpez.com
le 10/08/2018 à 12:31
A la base, Electron et Qt sont deux techno qui n'ont rien à voir avec .NET. Qt, c'est du C++ et Electron, c'est du NodeJS/Chromium/HTML/CSS/JS

Maintenant, il est possible d'utiliser Electron dans un programme .NET car il y a eu un binding de développé pour cela.

Ce n'est pas le cas pour Qt. Il y a bien eu des projets de bindings, mais ils ne sont plus maintenu / pas abouti. Autrement dit, rien d'utilisable aujourd'hui.
Avatar de redcurve redcurve - Membre averti https://www.developpez.com
le 10/08/2018 à 18:57
Citation Envoyé par François DORIN Voir le message
A la base, Electron et Qt sont deux techno qui n'ont rien à voir avec .NET. Qt, c'est du C++ et Electron, c'est du NodeJS/Chromium/HTML/CSS/JS

Maintenant, il est possible d'utiliser Electron dans un programme .NET car il y a eu un binding de développé pour cela.

Ce n'est pas le cas pour Qt. Il y a bien eu des projets de bindings, mais ils ne sont plus maintenu / pas abouti. Autrement dit, rien d'utilisable aujourd'hui.
J'espère que MS pourra nous sortir un framework Xaml qui marche partout, enfin Xaml plutôt un moteur de rendu en fait Xaml n'étant qu'une "sérialisation" d'interface
Avatar de MABROUKI MABROUKI - Membre expert https://www.developpez.com
le 11/08/2018 à 23:17
bonjour
le package cité « Windows Desktop Packs ».est-il disponible en téléchargement ?

Car je veux utiliser l'assembly "System.Numerics" qui dispose des primitives mathématiques 3D en Winforms Classiques et permet un calcul "hardware accelerated" même en x86...
Avatar de VinceB85 VinceB85 - Futur Membre du Club https://www.developpez.com
le 13/08/2018 à 17:10
Citation Envoyé par François DORIN Voir le message
pas de toolkit graphique stable et utilisable pour faire des applications graphiques en .NET
XWT fonctionne avec le .NET framework 4.0+ et Mono. Je l'utilise actuellement et c'est plutôt pas mal, même si il y a encore quelques petits bugs d'affichage entre les OS. Sa fonctionne même sur Windows XP et MacOS 10.7
Sinon il y a aussi Eto.Forms mais je l'ai juste testé une fois, pas vraiment utilisé...
Contacter le responsable de la rubrique Accueil