L’un des résultats de cette ouverture a été la sortie en juin dernier de la première version stable de .NET Core.
Pour rappel, .NET Core est une version modulaire et épurée du .NET Framework, pouvant s'exécuter sur plusieurs environnements. Avec .NET Core il est possible de créer et déployer des applications .NET sur Windows, Linux et OS X.
.NET Core apporte un début de solution au développement multiplateforme avec .NET. Une solution qui demeure toutefois partielle, car la réutilisation du code reste cependant limitée par la fragmentation qui existe encore dans l'écosystème .NET, entre le Framework .NET, .NET Core et Xamarin.
En effet, même si le même langage de programmation, le même environnement de développement, les mêmes outils de compilation peuvent être utilisés pour ces trois plateformes, chacune dispose de sa propre librairie de base :
- Base Class Library pour le Framework .NET ;
- Core Library pour .NET Core ;
- Mono Class Library pour Xamarin.
Ainsi, tout développeur qui veut écrire du code qui va fonctionner sur les trois plateformes, se voit obligé de prendre en compte et gérer trois bibliothèques de classes de base différentes.
Pour résoudre ce problème, Microsoft dévoile .NET Standard 2.0. .NET Standard sera l’unique bibliothèque de classes de base utilisée par .NET Framework, .NET Core et Xamarin. De ce fait, un développeur qui crée une API qui cible .NET Standard, peut l'exécuter sur toutes les plateformes .NET.
La mise en place de .NET Standard introduit cependant de nombreux défis que Microsoft devra résoudre. Microsoft fait savoir que la solution sera compatible uniquement avec le Framework .NET 4.6.1 et les versions futures.
Toutefois, pour maintenir la compatibilité avec .NET Framework 4.6.1, la firme se trouve dans l’obligation de supprimer les APIs qui ont été introduites dans .NET Standard 1.5 et 1.6.
Par ailleurs, la firme envisage de mettre à jour Xamarin pour prendre en charge l’ensemble des APIs qui seront incluses dans .NET Standard.
Selon Microsoft, .NET Standard 2.0 sera un ensemble d’APIs qui sont actuellement incluses à la fois dans le Framework .NET et Xamarin. Ce qui implique leur extension à .NET Core.
Pour y parvenir, Microsoft envisage étiqueter les APIs du .NET Framework et de Xamarin :
- Les APIs avec l'étiquette [Requise] seront celles qui sont nécessaires sur toutes les plateformes. Elles seront incluses dans .NET Standard ;
- Les APIs avec l'étiquette [Optionnelle] seront celles qui sont spécifiques à chaque plateforme. Elles seront disponibles via des packages NuGet.
Ci-dessous les APIs qui seront offertes par .NET Standard 2.0 :
Les outils permettant de cibler .NET Standard 2.0 seront disponibles la même période que la version stable de Visual Studio 15. .NET Standard sera publié comme un package NuGet et bénéficiera d’un support de premier niveau sur Visual Studio, Visual Studio Code et Xamarin Studio.
Pour le futur, Microsoft recommande aux développeurs qui font le développement multiplateforme de désormais utiliser .NET Standard au lieu des “Portable Class Libraries”.
Source : Blogs MSDN
Et vous ?
Que pensez-vous de l’orientation de Microsoft avec .NET Standard ?