Saltar al contenido

¿Cuál es la diferencia entre .NET Core, .NET Framework y Xamarin?

Solución:

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 debería poder 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 utilizar 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 Visual Studio IDE, que admite muchas funciones de productividad, incluida la gestión de proyectos, depuración, control de código fuente, refactorización, edición enriquecida que incluye Intellisense, 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 intellisense del editor utilizando el proyecto Omnisharp de código abierto.

2. Microservicios

Cuando está construyendo 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 / lenguajes a nivel de microservicio. Eso le permite usar 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 ningún problema, puede crear ese microservicio con .NET Framework y en el futuro es posible que pueda sustituirlo por .NET Centro.

Las plataformas de infraestructura que podría utilizar son muchas. Idealmente, para sistemas de microservicios grandes y complejos, debería 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 de Azure admiten .NET Core, pero la compatibilidad de .NET Core en Azure aumentará drásticamente ahora que .NET Core es RTM.

3. Sistemas escalables y con el mejor 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 crece 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úmero. Necesita ser más eficiente, optimizar en todas partes y escalar mejor entre clústeres de máquinas, máquinas virtuales y núcleos de CPU, en última instancia. No es solo una cuestión de satisfacción del usuario; también puede marcar una gran diferencia en costo / TCO. Por eso es importante luchar por el rendimiento y la escalabilidad.

Como se mencionó, si puede aislar pequeñas partes de su sistema como microservicios o cualquier otro enfoque poco acoplado, será mejor, ya que no solo podrá evolucionar cada pequeña parte / microservicio de forma independiente y tener un mejor rendimiento 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 comandos para Mac, Linux o Windows.

Este enfoque es opcional cuando se usa .NET Core. También puede usar el IDE de Visual Studio completo, por supuesto. Pero si es un desarrollador que quiere desarrollar con editores ligeros y un uso intensivo de la línea de comandos, .NET Core está diseñado para CLI. Proporciona herramientas sencillas de línea de comandos 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 utilizan las mismas herramientas de línea de comandos para sus experiencias de desarrollo. Y los IDE como Visual Studio usan las mismas herramientas CLI pero las esconden detrás de una rica experiencia IDE. Los desarrolladores ahora pueden elegir el nivel en el que desean interactuar con la cadena de herramientas desde la CLI hasta el editor y el IDE.

5. Necesita una al lado de la otra de las versiones de .NET por nivel de aplicación.

Si desea poder instalar aplicaciones con dependencias en diferentes versiones de marcos en .NET, debe usar .NET Core, que proporciona 100% en paralelo como se explicó anteriormente en este documento.

6. Aplicaciones de Windows 10 UWP .NET.

Además, es posible que también desee leer:

  1. Cuando debería NO utilizar .NET Core?
  2. ¿Cuándo debería seguir usando .NET Framework 4.x, en lugar de .NET Core?
  3. ¿Cuándo debería usar Xamarin, en lugar de .NET Core?

Así lo explica Microsoft:

.NET Framework, .NET Core, Xamarin

.NET Framework es el sabor “completo” o “tradicional” de .NET que se distribuye con Windows. Úselo cuando esté creando una aplicación de escritorio para Windows o UWP, o cuando trabaje con una versión anterior de ASP.NET 4.6+.

.NET Core es .NET multiplataforma que se ejecuta en Windows, Mac y Linux. Úselo cuando desee crear aplicaciones web o de consola que puedan ejecutarse en cualquier plataforma, incluso dentro de los contenedores de Docker. Actualmente, esto no incluye las aplicaciones de escritorio o para UWP.

Xamarin se utiliza para crear aplicaciones móviles que se pueden ejecutar en dispositivos iOS, Android o Windows Phone.

Xamarin generalmente se ejecuta encima de Mononucleosis infecciosa, que es una versión de .NET que se creó para soporte multiplataforma antes de que Microsoft decidiera pasar oficialmente a multiplataforma con .NET Core. Al igual que Xamarin, la plataforma Unity también se ejecuta sobre Mono.


Un punto común de confusión es dónde encaja ASP.NET Core. ASP.NET Core puede ejecutarse sobre .NET Framework (Windows) o .NET Core (multiplataforma), como se detalla en esta respuesta: Diferencia entre ASP. NET Core (.NET Core) y ASP.NET Core (.NET Framework)

Puede hacer referencia en esta línea – Diferencia entre ASP.NET Core (.NET Core) y ASP.NET Core (.NET Framework)

.NET Framework, .NET Core, Xamarin

Xamarin no es un debate en absoluto. Cuando desee crear aplicaciones móviles (iOS, Android y Windows Mobile) con C #, Xamarin es su única opción.

El .NET Framework es compatible con aplicaciones web y de Windows. Hoy en día, puede usar Windows Forms, WPF y UWP para crear aplicaciones de Windows en .NET Framework. ASP.NET MVC se utiliza para crear aplicaciones web en .NET Framework.

.NET Core es el nuevo marco de código abierto y multiplataforma para crear aplicaciones para todos los sistemas operativos, incluidos Windows, Mac y Linux. .NET Core solo es compatible con UWP y ASP.NET Core. UWP se utiliza para crear objetivos de Windows 10 para aplicaciones móviles y de Windows. ASP.NET Core se utiliza para crear aplicaciones web basadas en navegador.

desea más detalles consulte estos enlaces
https://blogs.msdn.microsoft.com/dotnet/2016/07/15/net-core-roadmap/ https://docs.microsoft.com/en-us/dotnet/articles/standard/choosing-core- servidor de marco

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *