ASP.NET Framework vs ASP.NET Core

Que choisir entre ASP.NET Framework standard et ASP.NET Core c'est la question que je vais résoudre dans ce post.

C'est toujours extrêmement délicat de constater que les ingés de Redmond ont envie de délaisser une techno sur laquelle vous avez investis des années de formation alors qu'en est-il exactement d'ASP.NET Framework (standard) on a l'impression qu'il est abandonné au profit d'ASP.NET Core cette impression est-elle justifiée ?

Microsoft - Choisir entre ASP.NET 4.x et ASP.NET Core
Que ressentons en lisant cette page ? Et bien que qu'ASP.NET Core c'est le futur et que ASP.NET Framework 4.x c'est le passé. En gros on comprend qu'ASP.NET Core peut se trouver sur .NET Standard auquel cas cela ne fonctionne que sous Windows ou sur .NET Core auquel cas on peut l'utiliser sur Windows MacOS Linux.

Microsoft - Choix entre .NET Core et .NET Framework pour les applications serveur
Choisir .NET Standard si vous  avez besoin d’utiliser des technologies non disponibles pour .NET Core. Ca c'est fort en camembert, il faudrait attendre que les technos soient disponibles sur .NET Core ? Sûrement pas !

Il n’est pas prévu d’intégrer Web Forms ASP.NET à .NET Core.

Et voilà, nous y sommes les Web Forms que les préconisateurs d'MVC veulent voir disparaitre ont gagnés. Les Web Forms disparaitront avec ASP.NET Framework Standard ce qui n'est pas pour tout de suite mais bon.

Ou en tous cas les développeurs Web Forms devront continuer d'utiliser ASP.NET Framework.

Ou bien encore voici le post du grand Scott Hanselman - ASP.NET 5 is dead - Introducing ASP.NET Core 1.0 and .NET Core 1.0

Ecris le 16 janvier 2016 - On ne peut pas être plus clair ! En fait avoir nommé le ASP.NET Framework 5 est une mauvaise idée car cela fait penser qu'il est supérieur et remplace le Framework 4.6 alors que c'est faux !

Alors on va renommer les chose - Voici ASP.NET CORE 1.0 et .NET CORE 1.0 :
  • ASP.NET 5 est maintenant ASP.NET Core 1.0.
  • .NET Core 5 est maintenant .NET Core 1.0.
  • Entity Framework 7 est maintenant Entity Framework Core 1.0 ou EF Core 1.0 colloquially
ASP.NET Framework 4.6 vs ASP.NET Core 1.0
ASP.NET Framework 4.6 vs ASP.NET Core 1.0
Pourquoi 1.0 ? Parce que .NET Core est entièrement nouveau. Il ne faut pas encore penser que .NET Core 1.0 est terminé. Les deux .NET Framework 4.6 et .NET Core 1.0 vont en parallèle.

Copie du tableau comparatif des deux Frameworks pour bien fixer les idées :
Comparaison des Frameworks 4.x et Core
Comparaison des Frameworks 4.x et Core

Conclusion

Je dirais qu'il me manque un truc : comment passer de .NET Standard à .NET Core et comme cela je suis tranquille.


Comparaison des solutions avec Visual Studio 2017

ASP.NET Framework 4.6.1

Création de la solution :

Création d'une solution ASP.NET Framework
Création d'une solution ASP.NET Framework
J'ai mis en évidence tous les Frameworks et c'est impressionnant le nombre de versions différentes.

Création d'une solution ASP.NET Framework - MVC
Création d'une solution ASP.NET Framework - MVC
Je n'oublie pas, pour donner un peu complexité à cette application de Modifier l'authentification :

Création d'une solution ASP.NET Framework - MVC - Modifier l'authentification
Création d'une solution ASP.NET Framework - MVC - Modifier l'authentification
Création de la solution proprement dite :

Et voilà notre belle solution toute neuve ASP.NET Framework :

Visual Studio 2017 - ASP.NET Framework - MVC
Visual Studio 2017 - ASP.NET Framework - MVC

ASP.NET Core 2.1

Création de la solution, étude des options :

Création d'une solution ASP.NET Core
Je clique sur Ok :

Visual Studio - Nouveau Projet .NET Core
Visual Studio - Nouveau Projet .NET Core
Ca pique carrément les yeux tous ces choix, je peux encore choisir .NET Framework ??? Donc c'est la même chose que précédemment (à vérifier). En tous cas j'ai sous les yeux le récap de toutes nos conversations précédentes faut-il utiliser plutôt React qu'Agular tout est là.

Au niveau d'ASP.NET Core, j'ai encore le choix de la version :

Choix du .NET Core vers 1.0 à 2.1
Visual Studio - Nouveau Projet - Choix du .NET Core vers 1.0 à 2.1
J'ai une pensé pour ceux qui ont débuté avec .NET 1.0 et qui ont du sacrément galoper pour arriver à .NET Core 2.1 aujourd'hui.

En suite encore des choix, choisir le type d'application que l'on souhaite développer :
  • API
  • Application Web
  • Application web (Model-View-Controller)
  • Bibliothèque de classe Razor
  • Angular
  • React.js
  • React.js et Redux
En savoir plus sur les Bibliothèques de classe Razor : Les vues, pages, contrôleurs, modèles de page, composants de vue et modèles de données Razor peuvent être intégrés à une bibliothèque de classes Razor (RCL, Razor Class Library). La RCL peut être empaquetée et réutilisée. Les applications peuvent inclure la RCL et remplacer les vues et les pages qu’elle contient. Quand une vue, une vue partielle ou une page Razor est présente dans l’application web et la RCL, le balisage Razor (fichier .cshtml) dans l’application web est prioritaire.

Cette fonctionnalité nécessite SDK .NET Core 2.1 ou version ultérieure

L'objet, le but est de comparer avec ASP.NET Framework 4.6, je choisi donc : Application web (MVC). Au  niveau de l'authentification il y a encore une petite subtilité :
Visual Studio - Nouveau Projet - Choix du .NET Core 2.1 - Authentification
On peut encore choisir un magasin d'utilisateurs existant dans le Cloud ... (ils vont être content la rgpd ;)

Je remarque une case à cocher : Activer le support de Docker :

Visual Studio - Nouveau Projet - Choix du .NET Core 2.1 - Activer le support de Docker
Visual Studio - Nouveau Projet - Choix du .NET Core 2.1 - Activer le support de Docker
Je clique enfin sur le bouton OK :

Visual Studio - Nouveau Projet - Choix du .NET Core 2.1 - La Solution
Visual Studio - Nouveau Projet - Choix du .NET Core 2.1 - La Solution
Voici ma belle solution toute neuve Visual Studio ASP.NET Core 2.1, au début il y avait des petits triangles jaunes autour de NuGet et SDK en attendant que Visual les trouve installés sur ma machine.

Voilà, j'ai maintenant mes deux solutions toutes prêtes à être comparées, on en parle dans le prochain post ...

Stay tuned!

Aucun commentaire:

Publier un commentaire

Pour plus d'interactivité, n'hésitez pas à laisser votre commentaire.