.Net Core 2.2 et 3.0 Preview disponibles, WPF, Windows Forms et WinUI passent open source

.Net Core 2.2 et 3.0 Preview disponibles, WPF, Windows Forms et WinUI passent open source

.Net Core 2.2 et 3.0 Preview disponibles, WPF, Windows Forms et WinUI passent open source

Conférence Connect() oblige, les annonces de Microsoft pour les développeurs sont nombreuses et importantes. Après la diffusion de la Preview de Visual Studio 2019 vient .Net Core, pour rappel un remaniement complet, multiplateforme, modulaire et open source (licence MIT) de l’ancien framework .NET.

On commence donc avec la nouvelle version 2.2, disponible en version finale. On y trouve la compilation hiérarchisée (optionnelle), la classe EventListener pour surveiller les évènements, le support d’AccessToken dans SqlConnection, la possibilité d’injecter du code avant l’exécution de la méthode principale d’une application ou encore le support d’ARM32.

Mais évidemment, c’est la disponibilité de la première préversion de .NET Core 3.0 qui focalise les regards, puisqu’elle est la première à être compatible avec les Windows Desktop Applications, illustrant la volonté de Microsoft de faire à terme de son .NET Core le seul environnement pour tous les types de projets (on en est encore loin).

.NET Core ne se limite donc plus aux applications et API web, aux objets connectés ou encore aux applications console. Il peut maintenant être utilisé pour des applications de bureau, ce qui peut paraître étrange au premier coup d’œil mais permet aux développeurs intéressés l’accès au SDK complet de Windows 10.

Pour les interfaces, .NET Core 3.0 est compatible avec les WinForms, WPF (Windows Presentation Foundation) et le plus récent WinUI, qui contient notamment tous les éléments Fluent Design. Conséquence, ces trois frameworks deviennent open source à leur tour (licence MIT toujours) et sont récupérés par la .NET Foundation, dont le comité directeur passe de trois à sept membres (tout participant actif peut être élu).

Parmi les autres nouveautés de .NET Core 3.0, signalons la génération automatique d’exécutables pour les applications, la copie des dépendances NuGet pendant la construction d’un projet, un JSON Reader se voulant deux fois plus rapide, les types Index et Range, les flux asynchrones, TLS 1.3 ou encore, spécifiquement sous Linux, OpenSSL 1.1.1.

L’utilisation de .NET Core 3.0 requiert la version 15.9 de Visual Studio 2017 ou la préversion de Visual Studio 2019.

Commentaires (4)


A noter que Microsoft a clairement indiqué qu’ils ne travailleraient pas pour le cross-platform de Winforms, WPF ou WinUI:



We will typically not accept contributions that implement support for an OS-specific technolology on another operating system. For example, we do not intend to create an implementation of the Windows registry for Linux or an implementation of the macOS keychain for Windows. We also do not intend to accept contributions that provide cross-platform implementations for Windows Forms or WPF.

 

https://github.com/dotnet/wpf/blob/master/Documentation/contributing.md



From a technical standpoint, WPF depends on multiple Windows components: D3D (DirectX), DWrite, User32, GDI+, WISP (Touch), and several others (including Windows Runtime dependencies). The interaction with these components is complex, critical and not architected with cross-platform in mind. As a result, our focus is on completing open source of WPF and bringing it to parity with .NET Framework.



https://github.com/dotnet/wpf/issues/48#issuecomment-444198305


C’est ce qui leur est reproché effectivement pas certains devs, mais j’imagine que ça viendra dans un second temps


Je vois pas vraiment ce qu’on peux leur reprocher de ce coté là..



wpf as pas été conçu avec le cross platform en tête.

winform as déjà wine.

Et si tu veux dev une appli, cross plat, tu pars sur un framework qui le permet ( et en dot net / xaml, tu à xamarin, avalonia et uno )


Reproché dans le sens où pas mal de devs à qui j’ai parlé attendaient pour Core 3.0 une vraie solution multiplateforme pour les interfaces, alors qu’ils ne font pour l’instant que prendre les trois existantes pour Windows. Du coup pour Linux et Mac, il n’y a toujours rien. Mais j’imagine que ça viendra, pourquoi pas via Xamarin justement.


Fermer