Dans le monde de Microsoft, les choses bougent ! La plateforme .NET comporte maintenant deux déclinaisons : .NET FrameworkUn framework est un ensemble d'outils permettant de cadrer la façon dont on conçoit une application. et .NET Core.
Mais alors, quel framework .NET utiliser pour mon projet ? Un versus s’impose !
Au programme : définitions, spécificités, compatibilité, et différences entre les deux frameworks.
.NET Framework est un framework Microsoft utilisé par les systèmes Windows qui permet de réaliser tout type d’application dans l’environnement Windows et tous les navigateurs web. Il fournit un certain nombre d’outils comme ADO.NET.NET est le principal framework de l'univers Microsoft. permettant l’accès aux données et respecte la norme Common Langage Infrastructure (CLI) qui décrit l’environnement d’exécution des codes de programmes.
.NET Core est un framework open source multiplateforme à hautes performances destiné à
Il est distribué par le gestionnaire de paquets « NuGet » sous forme de librairie.
La compatibilité entre .NET Framework et .NET Core n’est pas bonne !
En effet, si vous essayez d’incorporer une librairie .NET Core dans un projet .NET Framework, ce dernier refusera l’installation. Heureusement pour pallier cela, Microsoft a ajouté une passerelle, le .NET Standard, qui permet une compatibilité entre les 2 intéressés. Nous sommes sauvés 🙂
Le choix de l’un ou l’autre des frameworks doit être fait en fonction de plusieurs critères.
Pour commencer, il faut s’intéresser à la solution que vous vous apprêtez à développer. Est-ce un client lourd (WinForm, ou WPF) ou un service (WCF) ? Ou alors est-ce que ce projet est un site web ou bien un RESTREST (REpresentational State Transfer) est un style d'architecture logicielle qui fonctionne sous un certain nombre de contraintes. APIUne API est un programme permettant à deux applications distinctes de communiquer entre elles et d’échanger des données. ? Si le développement porte sur un client lourd ou un service, alors le choix qui s’impose à vous est le .NET Framework.
D’autre part, votre SILe SI désigne le système d'informations d'une organisation. est-il davantage tourné vers Windows Server ou Linux dans le cadre d’un projet web ? C’est un autre critère qui permet dans le cas de Linux de ne plus se poser la question : .NET Core.
Note : voyez long terme ! Votre SI a-t-il un plan de migration pour les années à venir ? Ça peut changer la donne.
Pour finir, si vous utilisez un gestionnaire de conteneur (type Docker), partez sur .NET Core car les noyaux des conteneurs sont basés sur Linux.
Il est tout à fait normal de se poser la question suivante : « Pourquoi ne pas faire tout le temps du .NET Core ? ». En effet, il serait plus simple d’adopter systématiquement ce dernier et d’abandonner la base qu’est le .NET Framework.
On aurait tendance à croire que, comme les packages « NuGet » proposent une panoplie impressionnante de librairies et d’outils, le .NET Core a autant de fonctionnalités que le .NET Framework. C’est faux !
Par exemple, si vous voulez utiliser des références COM qui dépendent des logiciels de votre PC, ce n’est pas possible avec .NET Core.
Chez certains de nos clients, nous utilisons le .NET Framework avec des projets type ASP.NET MVC ou WebForm. Sur ce type de projet très conséquent (plusieurs années de travail), la migration n’est pas recommandée.
Pour ce qui en est du .NET Core, AXOPEN a tout de suite tenté de comprendre et de maîtriser la plateforme sur des projets internes. Finalement, après des mois de tests, nous avons utilisé .NET Core dans de nouveaux projets de type micros-services sur des plateformes Linux.
Néanmoins, il reste des technologies où le .NET Framework reste le framework par excellence, notamment pour des projets client lourd ou des services spécifiques aux .NET Framework (WinForm, WPF et WCF par exemple).
Pour tout nouveau projet web, nous recommandons fortement d’utiliser le .NET Core.
Alors, même si nous avons aimé le framework, sachez que tout n’est pas toujours tout rose ! En effet, dans le cadre d’un projet récent, nous avons rencontré un problème : l’utilisation d’un projet de « Models » (en .NET Framework) par un nouveau projet en .NET Core. La solution que nous avons apporté au client est l’utilisation du .NET Standard qui est cette passerelle utilisable entre le .NET Framework et le .NET Core.
Pour tous les nouveaux projets web, si votre analyse du cahier des charges montre qu’il n’y aura aucune utilisation du .NET Framework (exemple : références systèmes), nous vous conseillons de partir sur un projet en .NET Core. Nous pensons qu’il est l’avenir du .NET et le fait qu’il soit cross-plateform permettra de toujours avoir le choix entre Windows Server et Linux.
Zoom et retour d'expérience sur le framework Spring Boot
Vous démarrez un projet d’application et voulez mettre en place un outil d’intégration continue pour votre projet ? On vous partage nos conseils et notre retour d’expérience sur le sujet !
Aujourd’hui, les termes DevOps et DevSecOps sont utilisés de manière interchangeable dans le monde du développement. En réalité, lorsque l’on utilise le terme DevOps, on parle très souvent de DevSecOps. Mais alors, comment définir précisément ces deux termes ? Quelles sont les différences ? Comment mettre en place un cycle DevSecOps au sein de son entreprise ?