Dot.Blog

C#, XAML, Xamarin, UWP/Android/iOS

.NET Standard avec Xamarin

Xamarin supporte désormais .NET Standard, c’est simple et cela permet d’obtenir un code encore plus portable !

.NET “Standard”

Kesako ? .NET n’est-il pas en lui-même une sorte de standard ? Oui. Mais comme vous le savez il existe plusieurs “saveurs” de .NET. Celui de WPF est un peu différent de celui de UWP qui lui-même diffère de l’ex Silverlight ou du plus antique Windows Forms, etc.

Xamarin, du temps de son existence d’avant Microsoft, avait justement fourni un travail unique en créant une librairie .NET portable sur Linux, Mac, Android et iOS (héritée de Mono). C’est là dessus que se base tout Xamarin. En y ajoutant un compilateur C# on avait un ensemble .NET complet pour travailler sur Android et iOS.

Mais cela fait des saveurs de .NET en plus ! Et maintenant que Xamarin c’est Microsoft, pour ce dernier ça devient un vrai binz à gérer !

Un vrai sac de nœuds puisque s’ajoute à tout cela .NET Core.!

Vous trouverez quelques explications sur .NET Core dans mon papier “.NET Core, ASP.NET Core et Xamarin” dans lequel je prévoyais et annonçais le prochain passage de Xamarin dont les Xamarin.Forms à .NET Core. Depuis cet été c’est chose faite d’ailleurs.

En gros pour ceux qui lisent une ligne sur deux et qui n’iront pas relire le billet cité .NET Core c’est le nouveau .NET cross-plateforme par construction et modulaire. Pour ASP.NET Core cela permet notamment de se dégager totalement de l’obligation de tourner sur un serveur IIS de MS (en autres avantages).

Pour le reste c’est le nouveau framework plus rapide et moins encombrant.

Mais alors .NET Standard ? Ca fait doublon non ?

Réponse courte : non !

Réponse longue : comme tous les .NET ne peuvent pas être réécrits en même temps pour utiliser .NET Core, et comme cela n’est peut être même pas utile, le plus malin serait de créer comme une sorte de grosse Interface (au sens C# ou Java) que chaque .NET supporterait. Les applis n’utilisant que cette interface fonctionneraient alors sur tous les .NET existants ! Cette grosse interface fédératrice qui reprend le noyau de tous les .NET c’est “.NET Standard”.

Donc en ciblant .NET Standard on est sûr d’avoir un code qui tourne sous .NET Core, mais aussi sous toutes les plateformes .NET qui supportent .NET Standard. Ce qui est le cas de presque toute dont le .NET Xamarin !

Avec Xamarin

On peut à tout moment dans Visual Studio utiliser les options du projet pour transformer une PCL en .NET Standard :

image

En sélectionnant dans dans Build / General le framework cible on peut passer de .NET Portable (avec ses fameux “profils”) à du .NET Standard super clean et réutilisable partout.

Conclusion

Je vous en reparlerai de .NET Core et de .NET Standard, avec Xamarin ou avec ASP.NET Core car ASP.NET a été mon premier amour et la version “Core” est carrément ultra séduisante, alors ça vaudra peut être quelques détours en dehors des sentiers de Xamarin !

D’ici là travaillez désormais de préférence en .NET Standard partout, votre code aura une portabilité maximale et une durée de vie encore plus longue…

 

Stay Tuned !

blog comments powered by Disqus