Avec .NET 5, Microsoft voudrait produire un environnement d'exécution .NET unique
Et une infrastructure utilisable partout

44PARTAGES

15  0 
« Aujourd’hui, nous annonçons que la prochaine version, après .NET Core 3.0, sera la version .NET 5. Il s’agira de la prochaine grande version de la famille .NET. Il n'y aura qu'un seul .NET à l'avenir et vous pourrez l'utiliser pour cibler Windows, Linux, MacOS, iOS, Android, tvOS, watchOS et WebAssembly, etc. »

Microsoft affirme avoir ajouté environ 50 000 API .NET Framework à la plateforme depuis le lancement du projet .NET Core.

Il faut préciser que .NET Core n’offrait pas de prise en charge de ASP.NET WebForms, Windows Forms et Windows Presentation Foundation (WPF). Cela veut dire que .NET Core a été disponible sans prise en charge d’un Framework d’interface utilisateur au grand désarroi de nombreux développeurs. Néanmoins, Microsoft a promis d’apporter une solution en faisant de la prise en charge du développement d’applications Desktop Windows dans .NET Core 3.0 sa principale priorité.

Ainsi, en présentant .NET Core 3.0, l’éditeur a décrit trois scénarios importants pour la communauté des développeurs qui seront réalisables avec cette version :
  • Des versions côte à côte de .NET qui supportent Winforms et WPF : Avant le lancement de cette version, Microsoft expliquait qu’il ne pouvait y avoir qu’une seule version de .NET Framework sur une machine. Ce qui veut dire qu’avec l’installation d’une mise à jour de .NET Framework via Patch Tuesday ou par des mises à jour de Windows, il y a un risque qu’un correctif de sécurité, un correctif de bogue ou une nouvelle API puisse casser le fonctionnement d’applications sur la machine. Avec .NET Core, Microsoft entend résoudre ce problème en permettant la coexistence de multiples versions de .NET Core sur la même machine. Les applications peuvent dès lors être verrouillées à une version spécifique et passées à une autre version après avoir été testées.
  • Intégrer .NET directement dans une application : Puisqu’une seule version de .NET Framework pouvait être installée sur une machine, il était impératif d’installer la dernière version pour tirer avantage d’une nouvelle fonctionnalité du framework ou du langage. Avec .NET Core, vous pouvez livrer le framework avec votre application. Cela permet de tirer parti de la dernière version, fonctionnalités et API sans avoir à attendre l’installation du framework.
  • Bénéficier des fonctionnalités de .NET Core : .NET Core constitue une version évolutive et open source de .NET. Désormais les applications WinForms et WPF sur Windows peuvent tirer profit des dernières fonctionnalités de .NET Core, qui incluent aussi plus de correctifs essentiels pour un support meilleur d’écrans à haute résolution.

« .NET Core 3.0 réduit l’écart en terme de capacités avec .NET Framework 4.8, permettant ainsi à Windows Forms, WPF et Entity Framework 6. Ce développement s’appuie sur ce travail. Le noyau .NET et le meilleur de Mono permettent de créer une plateforme unique vous pouvez utiliser pour tout votre code .NET moderne.

« Nous prévoyons de publier .NET 5 en novembre 2020, et la première préversion sera disponible dans la première moitié de 2020. Elle sera prise en charge avec les futures mises à jour de Visual Studio 2019, Visual Studio pour Mac et Visual Studio Code ».


.NET 5 = Prochaine version de.NET Core

.NET 5 est la prochaine étape avec .NET Core. Le projet vise à améliorer .NET de plusieurs manières:
  • Créer un environnement d’exécution et de framework .NET unique, utilisable partout et offrant des comportements d’exécution et des expériences de développeur uniformes.
  • Développer les fonctionnalités de .NET en exploitant le meilleur de .NET Core, .NET Framework, Xamarin et Mono.
  • Construire ce produit à partir d'une base de code unique sur laquelle les développeurs (Microsoft et la communauté) peuvent travailler et se développer ensemble, ce qui améliore tous les scénarios.

Ce nouveau projet et cette nouvelle direction changent la donne pour .NET. Avec .NET 5, vos fichiers de code et de projet auront la même apparence, quel que soit le type d'application que vous créez. Vous aurez accès aux mêmes capacités d’exécution, d’API et de langage avec chaque application. Cela inclut de nouvelles améliorations des performances qui s’engagent dans corefx, pratiquement tous les jours.

Tout ce que vous aimez de .NET Core continuera d'exister:
  • Open source et orienté communauté sur GitHub.
  • Implémentation multi-plateforme.
  • Prise en charge de l'exploitation de fonctionnalités spécifiques à la plateforme, telles que Windows Forms et WPF sous Windows, ainsi que des liaisons natives vers chaque plateforme native de Xamarin.
  • Haute performance.
  • Installation côte à côte.
  • Petits fichiers de projet (style SDK).
  • Interface de ligne de commande (CLI).
  • Intégration de Visual Studio, Visual Studio pour Mac et Visual Studio Code.

Voici ce qui sera nouveau:
  • Vous aurez plus de choix sur les expériences d'exécution.
  • L'interopérabilité Java sera disponible sur toutes les plateformes.
  • L'interopérabilité Objective-C et Swift sera prise en charge sur plusieurs systèmes d'exploitation.
  • CoreFX sera étendu pour prendre en charge la compilation statique de .NET (ahead-of-time - AOT), des empreintes plus petites et un support pour davantage de systèmes d'exploitation.

Feuille de route

Microsoft prévoit de livrer .NET Core 3.0 en septembre, .NET 5 en novembre 2020, puis prévoit d’envoyer une version majeure de .NET une fois par an, tous les mois de novembre:


« Nous omettons la version 4, car cette nomenclature risque de perturber les utilisateurs familiarisés avec le .NET Framework, qui utilise la série 4.x depuis longtemps. De plus, nous voulions clairement communiquer que .NET 5 était l'avenir de la plateforme .NET.

« Nous en profitons également pour simplifier les noms. Nous pensions que s’il n’y avait qu’un seul .NET à l’avenir, nous n’aurions pas besoin d’un terme de clarification comme «Core». Le nom abrégé est une simplification et indique également que .NET 5 possède des fonctionnalités et des comportements uniformes. N'hésitez pas à continuer à utiliser le nom «.NET Core» si vous le préférez. »

Expériences d'exécution

Mono est l'implémentation multi-plateforme d'origine de .NET. Il s'agissait à l'origine d'une alternative open source à .NET Framework qui s'est ensuite tournée vers le ciblage des appareils mobiles au fur et à mesure de la popularité des appareils iOS et Android. Mono est le runtime utilisé dans le cadre de Xamarin.

CoreCLR est le runtime utilisé dans le cadre de .NET Core. Il visait principalement à prendre en charge les applications cloud, y compris les plus grands services de Microsoft, et est également utilisé pour les applications de bureau Windows, IdO et d’apprentissage automatique.

Pris ensemble, les environnements d'exécution .NET Core et Mono présentent de nombreuses similitudes (ils sont à la fois des environnements d'exécution .NET) mais également des fonctionnalités uniques et précieuses. Il est logique de permettre de choisir l'expérience d'exécution que vous souhaitez. C’est pourquoi Microsoft est en train de créer des remplacements directs CoreCLR et Mono. L’éditeur envisage de simplifier les choses comme un commutateur de construction pour choisir entre les différentes options d’exécution.


Source : Microsoft

Voir aussi :

JetBrains annonce la disponibilité de la version 2019.1 de ReSharper Ultimate, sa suite d'outils pour les développeurs .NET et C++
.NET Core 3.0 Preview 4 est disponible et s'accompagne d'une MàJ de la compilation hiérarchisée ainsi que du contrôle WinForms Chart
Microsoft annonce ML.NET 1.0 RC, la dernière version Preview de son framework d'apprentissage machine, avec prise en charge des modèles TensorFlow
ASP.NET Core est le 3e serveur Web le plus rapide, répondant à 7 millions de requêtes HTTP/s, selon un test de TechEmpower

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de redcurve
Membre confirmé https://www.developpez.com
Le 07/05/2019 à 10:09
.net 5 est la suite logique pour cette technologie vivement que ça sorte en attendant je dois fignoler du code sur WPF et balancer ma méga PR
Avatar de emilie77
Membre actif https://www.developpez.com
Le 07/05/2019 à 11:37
Quand je pourrai faire du WPF sur Linux je retrourne au C#
Avatar de sergio_is_back
Membre chevronné https://www.developpez.com
Le 07/05/2019 à 12:02
En après avoir fait une machine virtuelle qui ne fonctionne que sous Windows, ils veulent faire une vraie machine virtuelle... Il devraient peu être reprendre la machine Java, ça irait plus vite...
Avatar de redcurve
Membre confirmé https://www.developpez.com
Le 07/05/2019 à 12:27
Citation Envoyé par sergio_is_back Voir le message
En après avoir fait une machine virtuelle qui ne fonctionne que sous Windows, ils veulent faire une vraie machine virtuelle... Il devraient peu être reprendre la machine Java, ça irait plus vite...
Il serai bien d'arrêter de raconter n'importe quoi pour rester poli. Surtout que vous êtes manifestement complètement à la masse et en retard de plusieurs années
Avatar de sergio_is_back
Membre chevronné https://www.developpez.com
Le 07/05/2019 à 13:16
Citation Envoyé par redcurve Voir le message
Il serai bien d'arrêter de raconter n'importe quoi pour rester poli. Surtout que vous êtes manifestement complètement à la masse et en retard de plusieurs années
Les .NET (core et framework) utilisent un compilateurs à la volée qui génère le code machine à partir d'un pseudo-code (CIL) ça ressemble beaucoup à ce que fait Java... ou je me trompe ?

La CLR .NET Framework est une machine virtuelle qui ne fonctionne que sous Windows...
La CLR. NET Core est une machine virtuelle également même si elle vise plusieurs plateformes...

Quand à Java y'a très longtemps qu'il fait la même chose (y'a des micro-machines java dans nombreux objets connectés)...
Je le sais pour l'avoir utilisé y'a très longtemps (presque 12 ans) sur des terminaux portables sous OS propriétaire à base processeurs ARMv3...
Avatar de xarkam
Membre confirmé https://www.developpez.com
Le 07/05/2019 à 13:22
Citation Envoyé par emilie77 Voir le message
Quand je pourrai faire du WPF sur Linux je retrourne au C#
As-tu essayé Avalonia ?
Avatar de xarkam
Membre confirmé https://www.developpez.com
Le 07/05/2019 à 13:34
Citation Envoyé par sergio_is_back Voir le message
Les .NET (core et framework) utilisent un compilateurs à la volée qui génère le code machine à partir d'un pseudo-code (CIL) ça ressemble beaucoup à ce que fait Java... ou je me trompe ?

La CLR .NET Framework est une machine virtuelle qui ne fonctionne que sous Windows...
La CLR. NET Core est une machine virtuelle également même si elle vise plusieurs plateformes...

Quand à Java y'a très longtemps qu'il fait la même chose (y'a des micro-machines java dans nombreux objets connectés)...
Je le sais pour l'avoir utilisé y'a très longtemps (presque 12 ans) sur des terminaux portables sous OS propriétaire à base processeurs ARMv3...
Java n'a que 7 ans de plus que C#. Ca n'est pas pour autant qu'il a de bonnes performances. (le lien magique https://benchmarksgame-team.pages.de...er/csharp.html (le code sources des tests se trouve aussi sur le site) )
Avatar de sergio_is_back
Membre chevronné https://www.developpez.com
Le 07/05/2019 à 13:41
Citation Envoyé par xarkam Voir le message
Java n'a que 7 ans de plus que C#. Ca n'est pas pour autant qu'il a de bonnes performances. (le lien magique https://benchmarksgame-team.pages.de...er/csharp.html (le code sources des tests se trouve aussi sur le site) )
Je parlais pas des performances mais de la philosophie générale... Même si pour certains projets la performance peu s'avérer cruciale !
Avatar de redcurve
Membre confirmé https://www.developpez.com
Le 07/05/2019 à 14:33
Citation Envoyé par sergio_is_back Voir le message
Les .NET (core et framework) utilisent un compilateurs à la volée qui génère le code machine à partir d'un pseudo-code (CIL) ça ressemble beaucoup à ce que fait Java... ou je me trompe ?

La CLR .NET Framework est une machine virtuelle qui ne fonctionne que sous Windows...
La CLR. NET Core est une machine virtuelle également même si elle vise plusieurs plateformes...

Quand à Java y'a très longtemps qu'il fait la même chose (y'a des micro-machines java dans nombreux objets connectés)...
Je le sais pour l'avoir utilisé y'a très longtemps (presque 12 ans) sur des terminaux portables sous OS propriétaire à base processeurs ARMv3...
Le .net framework n'est pas une machine virtuelle, la VM est CoreFX mauvaise pioche. CoreFx n'est qu'une implémentation possible de la norme CLR et comme spécifié dans la norme il n'y a pas d'adhérence encore la CLR et l'OS puisqu'elle est hosté. Seul l'hôte est dépendant du système. Jusqu'à .net core il n'existait qu'un hôte prévu pour windows. Bref le .net framework n'est qu'un framework les gens confondent souvent avec la technologie sous jacente CLR/CLI mais ça n'est pas la même chose, ceci étant du à des abus de langages.

Le .net framework n'est qu'un ensemble d'outils codé en C# qui lui même ne fait que suivre les contraintes de la CLI qui est indépendante de la CLR... Ce qui permet de d'utiliser la norme CLI en dehors de la CLR ou de .net pour faire large. Exemple, la norme CLI est utilisée pour exposer les api systèmes de Windows par méta données. Chose tout à fait faisable de la même façon sur Linux ou MacOS.

Si je voulais faire tourner des applis dotnet sur des devices microscopique je partirai sur net micro framework, qui vient sans CoreFx en mode bare metal il possède sa propre couche d'abstraction matériel du coup même pas besoin d'OS.
Avatar de redcurve
Membre confirmé https://www.developpez.com
Le 07/05/2019 à 14:36
Citation Envoyé par emilie77 Voir le message
Quand je pourrai faire du WPF sur Linux je retrourne au C#
ça devrait être possible bientôt Microsoft va publier le reste des sources avec dedans le transpiler baml => direct3D. Pour le moment on a Xaml => Baml.

Une fois le code publier il sera possible de faire pareil en utilisant Vulkan ou OpenGL stay tuned. En attendant tu peux partir sur Avalonia par exemple.
Responsable bénévole de la rubrique Microsoft DotNET : Hinault Romaric -

Partenaire : Hébergement Web