Dot.Blog

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

.NET Standard arrive !

.NET Standard ? Qu’est-ce donc ? Comment cela se positionne-t-il vis-à-vis de .NET Core dont je vous parlais récemment ? C’est tout simple et passionnant !

Introduction à .NET Standard

C’est par ce titre de post que Immo Landwerth de Microsoft a présenté le 26 septembre la nouvelle version de cette déclinaison de .NET. Mais il est facile de se mélanger dans tous les avatar de ce Framework !

Justement c’est le but de ces grandes manœuvres : unifier toutes les versions de .NET et les rendre compatibles pour un portage de code encore plus simple !

.NET Standard unifie au-dessus de .NET Core

.NET Standard est une API qui se place au-dessus de toutes les autres moutures de .NET dont .NET Core pour les unifier et faire en sorte que le développeur puisse porter son code plus facilement sous tous les environnements : Desktop, mobile, services cloud. Mais ce n’est pas une couche de plus, ce sont des API présentes partout, ce qui fait une nuance d’importance.

Pour faire simple :

  • .NET Standard est un ensemble d’API que toutes les plateformes .NET doivent implémenter. Il ne s’agit donc pas d’ajouter une couche mais d’obliger chaque mouture de .NET à implémenter un jeu d’API communes pour contrer tout effet de fragmentation dans le futur.
  • .NET Standard version 2.0 sera implémenté par le Framework .NET, .NET Core et par Xamarin. C’est une bonne nouvelle pour .NET Core qui se verra ainsi doté de base de nombreuses API qui lui faisaient défaut. Pour Xamarin c’est l’assurance de reposer non plus sur un .NET Mono adapté à Android ou iOS mais sur la base .NET officielle et commune à tous les produits MS.
  • .NET Standard 2.0 introduit la notion de “shim” pour les binaires en provenance du Framework .NET ce qui augmente d’un seul coup le nombre de librairies pouvant être utilisées par référence dans un code .NET Standard.
  • .NET Standard va remplacer la notion de PCL (Portable Class Library) puisqu’il devient LA définition cross-plateforme de .NET par essence. C’est un grand pas en avant vers la simplification et l’unification toujours plus grande des différentes versions de .NET. Construire des applications cross-plateformes sera encore plus évident, coulant de source si je peux dire.
  • Les API de .NET Standard sont librement accessible sur GitHub, marquant là aussi la continuité d’ouverture du code qui est désormais à l’œuvre chez Microsoft.

Deux images pour comprendre

Il est toujours plus facile de comprendre avec des images… Voici en premier l’état des lieux :

image

 

On reconnait ci-dessus les trois grandes variantes de .NET, en vert ce que j’appellerai “.NET Canal Historique”, le Framework dans toute sa splendeur et toute sa complétude, celui utilisé notamment par ASP.NET ou WPF. En bleu le nouveau .NET Core sur lequel reposent UWP, ASP.NET Core, et en orange la branche dissidente mais ô combien essentielle aujourd’hui dans la logique d’ouverture de Microsoft, celle de Xamarin et de son framework hérité de Mono sur lequel reposent Xamarin.iOS, Xamarin.Android, Xamarin.OSX et bien entendu les Xamarin.Forms.

Tout ce petit monde finit malgré tout par se reposer sur une couche commune d’infrastructure qui est utilisée côté développeur par les langages, compilateurs etc.

C’est déjà un très beau travail d’unification qui nous permet aujourd’hui de faire du cross-plateforme assez facilement sous Visual Studio.

Mais regardez maintenant le nouveau schéma montrant les mêmes produits et services cette fois-ci unifiés par .NET Standard :

image

 

Si les App Models ne changent pas (heureusement pour la compatibilité du code !) c’est toute la couche de librairies qui disparait (la BCL, Core Library, Mono Class Library) pour être remplacée par .NET Standard. Une seule librairie pour tout le monde ! Côté développeur rien ne change, tout cela est transparent, comme pour les applications.

Conclusion

Deux choses doivent être retenues. La première c’est le message que je fais passer depuis plus de trois ans : l’avenir sera au cross-plateforme, et cet avenir est devenu notre quotidien. Aujourd’hui toute la stratégie Microsoft se fonde sur cette approche. La seconde c’est que développer de façon transparente pour tous les OS devient de plus en plus simple et ce avec de moins en moins d’indirections dans la plomberie sous-jacente. .NET Standard permet l’existence de frameworks différents adaptés à des contextes différents tout en les programmant avec la même API…

Raison de plus de vous intéresser à ce qui permet aujourd’hui chez MS de faire du cross-plateforme en C#/XAML : les Xamarin.Forms, pour tous vos développements, même ceux qui ne visent au départ qu’une seule plateforme…

 

Stay Tuned !

blog comments powered by Disqus