Debe usar .NET Core, en lugar de .NET Framework o Xamarin, en los siguientes 6 escenarios típicos de acuerdo con la documentación aquí .
1. Necesidades multiplataforma
Claramente, si su objetivo es tener una aplicación (web / servicio) que pueda ejecutarse en plataformas (Windows, Linux y MacOS), la mejor opción en el ecosistema .NET es usar .NET Core como su tiempo de ejecución (CoreCLR ) y las bibliotecas son multiplataforma. La otra opción es usar el Proyecto Mono.
Ambas opciones son de código abierto, pero .NET Core es compatible directa y oficialmente con Microsoft y tendrá una gran inversión en el futuro.
Cuando se utiliza .NET Core en todas las plataformas, la mejor experiencia de desarrollo existe en Windows con el IDE de Visual Studio que admite muchas características de productividad, incluida la gestión de proyectos, la depuración, el control de código fuente, la refactorización, la edición enriquecida que incluye Intellisense, las pruebas y mucho más. Pero el desarrollo rico también es compatible con Visual Studio Code en Mac, Linux y Windows, incluidos intellisense y depuración. Incluso los editores de terceros como Sublime, Emacs, VI y más funcionan bien y pueden obtener el editor inteligente utilizando el proyecto de código abierto Omnisharp.
2. Microservicios
Cuando está creando un sistema orientado a microservicios compuesto por múltiples microservicios independientes, dinámicamente escalables, con estado o sin estado, la gran ventaja que tiene aquí es que puede usar diferentes tecnologías / marcos / idiomas a nivel de microservicio. Eso le permite utilizar el mejor enfoque y tecnología por micro áreas en su sistema, por lo que si desea crear microservicios escalables y de alto rendimiento, debe usar .NET Core. Eventualmente, si necesita usar cualquier biblioteca de .NET Framework que no sea compatible con .NET Core, no hay problema, puede construir ese microservicio con .NET Framework y en el futuro podría sustituirlo por .NET Núcleo.
La plataforma de infraestructura que podría usar son muchas. Idealmente, para sistemas de microservicios grandes y complejos, debe usar Azure Service Fabric. Pero para los microservicios sin estado también puede usar otros productos como Azure App Service o Azure Functions.
Tenga en cuenta que a partir de junio de 2016, no todas las tecnologías dentro de Azure son compatibles con .NET Core, pero la compatibilidad con .NET Core en Azure aumentará dramáticamente ahora que .NET Core es lanzado RTM.
3. Los mejores sistemas escalables y de alto rendimiento.
Cuando su sistema necesita el mejor rendimiento y escalabilidad posibles para que obtenga la mejor capacidad de respuesta sin importar cuántos usuarios tenga, entonces es donde realmente brillan .NET Core y ASP.NET Core. Cuanto más pueda hacer con la misma cantidad de infraestructura / hardware, más rica será la experiencia que tendrá para sus usuarios finales, a un costo menor.
Los días de las mejoras de rendimiento de la ley de Moore para CPU individuales ya no se aplican; sin embargo, necesita hacer más mientras su sistema está creciendo y necesita una mayor escalabilidad y rendimiento para los usuarios más exigentes de todos los días, que están creciendo exponencialmente en números. En última instancia, debe ser más eficiente, optimizar en todas partes y escalar mejor en grupos de máquinas, máquinas virtuales y núcleos de CPU. No es solo una cuestión de satisfacción del usuario; También puede hacer una gran diferencia en el costo / TCO. Por eso es importante luchar por el rendimiento y la escalabilidad.
Como se mencionó, si puede aislar pequeñas piezas de su sistema como microservicios o cualquier otro enfoque débilmente acoplado, será mejor ya que no solo podrá evolucionar cada pieza pequeña / microservicio de forma independiente y tener un mejor a largo plazo agilidad y mantenimiento, pero también podrá utilizar cualquier otra tecnología a nivel de microservicio si lo que necesita hacer no es compatible con .NET Core. Y eventualmente podrá refactorizarlo y llevarlo a .NET Core cuando sea posible.
4. Desarrollo de estilo de línea de comando para Mac, Linux o Windows.
Este enfoque es opcional cuando se usa .NET Core. También puede usar el IDE completo de Visual Studio, por supuesto. Pero si usted es un desarrollador que desea desarrollar con editores livianos y un uso intensivo de la línea de comandos, .NET Core está diseñado para CLI. Proporciona herramientas de línea de comandos simples disponibles en todas las plataformas compatibles, lo que permite a los desarrolladores crear y probar aplicaciones con una instalación mínima en máquinas de desarrollo, laboratorio o producción. Los editores como Visual Studio Code usan las mismas herramientas de línea de comandos para sus experiencias de desarrollo. Y los IDE como Visual Studio usan las mismas herramientas de CLI pero las ocultan detrás de una rica experiencia IDE. Los desarrolladores ahora pueden elegir el nivel con el que desean interactuar con la cadena de herramientas, desde CLI hasta editor e IDE.
5. Necesita lado a lado de las versiones .NET por nivel de aplicación.
Si desea poder instalar aplicaciones con dependencias en diferentes versiones de frameworks en .NET, debe usar .NET Core que proporciona el 100% en paralelo como se explicó anteriormente en este documento.
6. Aplicaciones Windows 10 UWP .NET.