Faire le distingo entre .NET Framework, .NET Core et .NET Standard

Trois termes qui peuvent perdre ceux qui veulent se retrouver dans l’écosystème .NET. Microsoft propose en effet 3 différentes visions

dotNet

.NET Core

.NET Core est la dernière implémentation de  .NET et celle qui connaît le plus d’engouement ces derniers temps. Opensource, disponible pour plusieurs OS (Windows, macOS, Linux), .NET Core permet la construction d’applications ASP.NET Core Web, de services cloud et d’applications consoles. On espère beaucoup de .NET Core, la prochaine version (.NET Core 2.1) devrait apporter des améliorations comme les WebHooks, SignalR, support de Cosmos DB, orientation GDPR, etc.

.NET Core se distingue par une orientation interface de ligne de commande de prime abord. On parle de « first-class CLI » ( Command Line Interface).  Les commandes sont simples et puissantes, sans fioriture, on vise l’efficacité et des déploiements par simple en xcopy .

 

.NET Standard

.NET Standard vise un autre objectif ; celui de permettre aux développeur de construire des libraires qui peuvent être référencées dans toutes les implémentations de .NET,  c’est-à-dire .NET Framework, .NET Core et Xamarin.

En effet, .NET permet différentes cibles et la possibilité de partager du code, notamment des librairies entre toutes ces plateformes est un net avantage. Prenons le cas de Xamarin qui permet la création d’applications pour iOS, Android ainsi que des applications de type desktop pour macOS et comparons à .NET Core dont nous avons donné la définition précédemment. Vous l’aurez compris, aucun point commun… Si ce n’est le « .NET » mis devant.

Il est donc essentiel, lors de la création de librairies, d’être certains d’utiliser des APIs qui seront compatibles partout sans nécessité de réécriture. C’est le challenge de .NET Standard !

Notez, pour que cela fonctionne, qu’il faut expressément mettre en target .NET core ce qui n’est malheureusement pas le cas