Vous devez utiliser .NET Core, au lieu de .NET Framework ou Xamarin, dans les 6 scénarios typiques suivants selon la documentation ici .
1. Besoins multiplateformes
De toute évidence, si votre objectif est d'avoir une application (web / service) qui devrait pouvoir s'exécuter sur plusieurs plates-formes (Windows, Linux et MacOS), le meilleur choix dans l'écosystème .NET est d'utiliser .NET Core comme runtime (CoreCLR ) et les bibliothèques sont multiplateformes. L'autre choix est d'utiliser le projet mono.
Les deux choix sont open source, mais .NET Core est directement et officiellement pris en charge par Microsoft et aura un investissement lourd à l'avenir.
Lorsque vous utilisez .NET Core sur plusieurs plates-formes, la meilleure expérience de développement existe sous Windows avec l'IDE Visual Studio qui prend en charge de nombreuses fonctionnalités de productivité, y compris la gestion de projet, le débogage, le contrôle de code source, la refactorisation, l'édition riche, notamment Intellisense, les tests et bien plus encore. Mais un développement riche est également pris en charge à l'aide de Visual Studio Code sur Mac, Linux et Windows, y compris Intellisense et le débogage. Même les éditeurs tiers comme Sublime, Emacs, VI et bien plus fonctionnent bien et peuvent obtenir l'intellect de l'éditeur en utilisant le projet open source Omnisharp.
2. Microservices
Lorsque vous construisez un système orienté microservices composé de plusieurs microservices indépendants, évolutifs dynamiquement, avec état ou sans état, le grand avantage que vous avez ici est que vous pouvez utiliser différentes technologies / frameworks / langages au niveau du microservice. Cela vous permet d'utiliser la meilleure approche et la meilleure technologie par micro-zones de votre système, donc si vous souhaitez créer des microservices très performants et évolutifs, vous devez utiliser .NET Core. Finalement, si vous devez utiliser une bibliothèque .NET Framework qui n'est pas compatible avec .NET Core, il n'y a aucun problème, vous pouvez créer ce microservice avec .NET Framework et à l'avenir, vous pourrez peut-être le remplacer par .NET Coeur.
Les plateformes d'infrastructure que vous pourriez utiliser sont nombreuses. Idéalement, pour les systèmes de microservices volumineux et complexes, vous devez utiliser Azure Service Fabric. Mais pour les microservices sans état, vous pouvez également utiliser d'autres produits comme Azure App Service ou Azure Functions.
Notez que depuis juin 2016, toutes les technologies au sein d'Azure ne prennent pas en charge le .NET Core, mais la prise en charge de .NET Core dans Azure augmentera considérablement maintenant que .NET Core est disponible en version RTM.
3. Systèmes les plus performants et évolutifs
Lorsque votre système a besoin des meilleures performances et évolutivité possibles pour que vous obteniez la meilleure réactivité quel que soit le nombre d'utilisateurs, c'est alors que .NET Core et ASP.NET Core brillent vraiment. Plus vous pouvez faire avec la même quantité d'infrastructure / matériel, plus l'expérience que vous aurez pour vos utilisateurs finaux sera riche - à moindre coût.
L'époque des améliorations des performances de la loi de Moore pour les processeurs simples ne s'applique plus; Pourtant, vous devez en faire plus pendant la croissance de votre système et vous avez besoin d'une évolutivité et de performances plus élevées pour les utilisateurs les plus exigeants de tous les jours, dont le nombre augmente de façon exponentielle. Vous devez être plus efficace, optimiser partout et évoluer mieux sur des clusters de machines, de machines virtuelles et de cœurs de processeur, au final. Ce n'est pas seulement une question de satisfaction de l'utilisateur; cela peut également faire une énorme différence en termes de coût / TCO. C'est pourquoi il est important de viser les performances et l'évolutivité.
Comme mentionné, si vous pouvez isoler de petits morceaux de votre système en tant que microservices ou toute autre approche à couplage lâche, ce sera mieux car vous pourrez non seulement faire évoluer chaque petit morceau / microservice indépendamment et avoir un meilleur à long terme l'agilité et la maintenance, mais vous pourrez également utiliser toute autre technologie au niveau du microservice si ce que vous devez faire n'est pas compatible avec .NET Core. Et finalement, vous pourrez le refactoriser et l'apporter à .NET Core lorsque cela sera possible.
4. Développement de style de ligne de commande pour Mac, Linux ou Windows.
Cette approche est facultative lors de l'utilisation de .NET Core. Bien sûr, vous pouvez également utiliser l'IDE Visual Studio complet. Mais si vous êtes un développeur qui souhaite développer avec des éditeurs légers et une utilisation intensive de la ligne de commande, .NET Core est conçu pour CLI. Il fournit des outils de ligne de commande simples disponibles sur toutes les plates-formes prises en charge, permettant aux développeurs de créer et de tester des applications avec une installation minimale sur les machines de développement, de laboratoire ou de production. Les éditeurs comme Visual Studio Code utilisent les mêmes outils de ligne de commande pour leurs expériences de développement. Et les IDE comme Visual Studio utilisent les mêmes outils CLI mais les cachent derrière une riche expérience IDE. Les développeurs peuvent désormais choisir le niveau qu'ils souhaitent interagir avec la chaîne d'outils de CLI à l'éditeur à IDE.
5. Besoin côte à côte de versions .NET par niveau d'application.
Si vous voulez pouvoir installer des applications avec des dépendances sur différentes versions de frameworks dans .NET, vous devez utiliser .NET Core qui fournit 100% côte à côte comme expliqué précédemment dans ce document.
6. Applications Windows 10 UWP .NET.