.NET et .NET Framework pour les applications serveur
Deux implémentations de .NET sont prises en charge pour la création d’applications côté serveur : .NET et .NET Framework. La dernière version de .NET (actuellement .NET 8) est la version préférée de .NET à utiliser pour le développement serveur. Les raisons de continuer à utiliser .NET Framework sont spécifiques et limitées.
Implémentation | Versions incluses |
---|---|
.NET | .NET Core 1.0 - 3.1 .NET 5 et versions ultérieures de .NET |
.NET Framework | .NET Framework 1.0 - 4.8 |
Choisir .NET
.NET présente les avantages suivants pour les applications serveur :
Fonctionne sur plusieurs plateformes.
.NET permet à votre application web ou de service de s’exécuter sur plusieurs plateformes, par exemple Windows, Linux et macOS. Vous pouvez également utiliser l’un de ces systèmes d’exploitation comme station de travail de développement. Utilisez l’environnement de développement intégré (IDE) Visual Studio sur Windows ou utilisez Visual Studio Code sur macOS, Linux ou Windows. Visual Studio Code prend en charge IntelliSense et le débogage. La plupart des éditeurs tiers, tels que Sublime, Emacs et VI, fonctionnent avec .NET. Ces éditeurs tiers obtiennent l’éditeur IntelliSense en utilisant Omnisharp. Vous pouvez également ignorer l’éditeur de code et utiliser directement l’interface CLI .NET.
Vous permet de cibler des microservices.
Une architecture en microservices permet une combinaison de technologies au-delà des limites d’un service. Cette combinaison de technologies favorise l’adoption progressive de .NET pour les nouveaux microservices qui utilisent d’autres microservices ou services. Par exemple, vous pouvez combiner des microservices ou services développés avec .NET Framework, Java, Ruby ou d’autres technologies monolithiques.
Il existe de nombreuses plateformes d’infrastructure. Azure Service Fabric est conçu pour les systèmes de microservice volumineux et complexes. Azure App Service est un bon choix pour les microservices sans état. Les alternatives aux microservices basées sur Docker s’intègrent à toute approche des microservices, comme expliqué dans la section suivante (Prend en charge les conteneurs Docker). Toutes ces plateformes prennent en charge .NET et s’avèrent idéales pour l’hébergement de vos microservices.
Pour plus d’informations sur l’architecture en microservices, consultez Microservices .NET. : architecture des applications .NET conteneurisées.
Prend en charge les conteneurs Docker.
Les conteneurs sont couramment utilisés avec une architecture en microservices. Les conteneurs peuvent également servir à mettre en conteneur des applications ou services web qui suivent un modèle d’architecture. Bien que le .NET Framework peut être utilisé pour les conteneurs Windows, la modularité et la légèreté de .NET Core en font un meilleur choix pour les conteneurs. Quand vous créez et déployez un conteneur, la taille de son image est beaucoup plus petite avec .NET qu’avec .NET Framework. Grâce à sa nature multiplateforme, vous pouvez déployer des applications serveur sur des conteneurs Docker Linux.
Vous pouvez héberger les conteneurs Docker dans votre propre infrastructure Windows ou Linux, ou dans un service cloud comme Azure Kubernetes Service. Azure Kubernetes Service permet de gérer, d’orchestrer et de mettre à l’échelle des applications sur conteneur dans le cloud.
Est hautement performant et évolutif.
Quand votre système a besoin de performances et d’une scalabilité optimales, .NET et ASP.NET Core sont vos meilleures options. Le runtime serveur hautes performances pour Windows Server et Linux fait d’ASP.NET Core un framework web particulièrement puissant, d’après les bancs d’essai TechEmpower.
Niveau de performance et scalabilité sont particulièrement pertinents pour les architectures en microservices, où des centaines de microservices peuvent être en cours d’exécution. Avec ASP.NET Core, les systèmes s’exécutent avec un nombre beaucoup plus faible de serveurs ou de machines virtuelles, ce qui permet d’économiser des coûts sur l’infrastructure et l’hébergement.
Prend en charge les versions .NET côte à côte par application.
L’implémentation .NET prend en charge les installations côte à côte de différentes versions du runtime .NET sur le même ordinateur. Cette fonctionnalité permet plusieurs services sur le même serveur, chacun sur sa propre version de .NET. De plus, les risques et les coûts liés aux opérations informatiques et aux mises à niveau des applications s’en trouvent réduits.
L’installation côte à côte n’est pas possible avec .NET Framework. Il s’agit d’un composant Windows et une seule version peut exister sur un ordinateur à la fois : chaque version de .NET Framework remplace la version précédente. Si vous installez une nouvelle application qui cible une version ultérieure de .NET Framework, vous risquez d’arrêter les applications existantes qui s’exécutent sur l’ordinateur, car la version précédente a été remplacée.
Est plus sécurisé.
Quand choisir .NET Framework
Comme mentionné précédemment, l’implémentation .NET offre des avantages significatifs pour les nouvelles applications et les modèles d’application. Toutefois, dans certains scénarios spécifiques, vous devrez peut-être utiliser .NET Framework pour vos applications serveur, et .NET Framework continuera d’être pris en charge. Utilisez .NET Framework pour votre application serveur quand :
Votre application utilise actuellement .NET Framework.
Dans la plupart des cas, vous n’avez pas besoin de migrer vos applications existantes vers .NET. Nous vous recommandons plutôt d’utiliser .NET quand vous étendez une application existante, par exemple quand vous écrivez un nouveau service web dans ASP.NET Core.
Votre application utilise des packages NuGet ou des bibliothèques tiers non disponibles pour .NET.
.NET standard permet de partager du code sur toutes les implémentations de .NET, y compris .NET 6+. Avec .NET Standard 2.0, un mode de compatibilité permet aux projets .NET Standard et .NET de référencer des bibliothèques .NET Framework. Pour plus d’informations, consultez Prise en charge des bibliothèques .NET Framework.
Vous devez utiliser .NET Framework seulement quand les bibliothèques ou les packages NuGet utilisent des technologies qui ne sont pas disponibles dans .NET Standard ou .NET.
Votre application utilise des technologies .NET Framework non disponibles pour .NET
Certaines technologies .NET Framework ne sont pas disponibles dans .NET. La liste suivante présente les technologies les plus courantes non disponibles dans .NET :
- Applications ASP.NET Web Forms : ASP.NET Web Forms est disponible uniquement dans .NET Framework. ASP.NET Core ne peut pas être utilisé pour ASP.NET Web Forms.
- Applications pages Web ASP.NET : le framework pages Web ASP.NET n’est pas inclus dans ASP.NET Core.
- Services liés aux workflows : Windows Workflow Foundation (WF), les services de workflow (WCF + WF dans un seul service) et WCF Data Services (anciennement « ADO.NET Data Services ») sont disponibles uniquement dans .NET Framework.
- Prise en charge des langages : Visual Basic et F# sont pris en charge dans .NET, mais pas pour tous les types de projet. Pour obtenir la liste des modèles de projet pris en charge, consultez Options de modèle pour dotnet new.
Pour plus d’informations, consultez Technologies .NET Framework non disponibles dans .NET.
Votre application utilise une plateforme qui ne prend pas en charge .NET
Certaines plateformes Microsoft ou tierces ne prennent pas en charge .NET. Certains services Azure fournissent un kit SDK qui n’est pas encore consommable sur .NET. Dans ce cas, vous pouvez utiliser l’API REST équivalente au lieu du SDK client.