diferencias - ¿Cuál es la diferencia entre.NET Core,.NET Framework y Xamarin?
diferencias entre asp net core y asp net (6)
- .NET es el ecosistema basado en lenguaje C #
- .NET Standard es estándar (en otras palabras, especificación) de .NET Ecosystem.
.Net Core Class Library se basa en el estándar .Net . .NET Standard solo puede hacer un proyecto de biblioteca de clases que no se pueda ejecutar de forma independiente y que otro proyecto ejecutable de .NET Core o .NET Framework haga referencia a él . Si desea implementar una biblioteca que sea portátil en .Net Framework , .Net Core y Xamarin , elija una biblioteca estándar .Net
- .NET Framework es un marco basado en .NET y es compatible con aplicaciones web y Windows
(Puede hacer un proyecto ejecutable (como la aplicación de consola o la aplicación ASP.NET) con .NET Framework
- ASP.NET es una tecnología de desarrollo de aplicaciones web que se basa en .NET Framework
- .NET Core también es un marco basado en .NET .
Es el nuevo marco de código abierto y multiplataforma para crear aplicaciones para todos los sistemas operativos, incluidos Windows, Mac y Linux.
- 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.
Microsoft ahora tiene .NET Core, .NET Framework y Xamarin (Mono) en su familia .NET.
Parece que hay mucha superposición aquí. ¿Cuál es la diferencia entre estos tipos de .NET? ¿Cuándo debería elegir usar .NET Core en mi proyecto, en lugar de .NET Framework o Xamarin?
.NET Core es la versión actual de .NET que debería estar usando en este momento (más funciones, errores corregidos, etc.)
Xamarin es una plataforma que proporciona soluciones para problemas móviles multiplataforma codificados en C #, por lo que no necesita usar Swift por separado para iOS y lo mismo ocurre con Android.
Así es como Microsoft lo explica:
.NET Framework es el sabor "completo" o "tradicional" de .NET que se distribuye con Windows. Úselo cuando esté compilando una aplicación de escritorio para Windows o UWP, o trabajando con ASP.NET 4.6+ anterior.
.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, incluidos los contenedores Docker. Esto no incluye aplicaciones de escritorio / UWP actualmente.
Xamarin se utiliza para crear aplicaciones móviles que pueden ejecutarse en dispositivos iOS, Android o Windows Phone.
Xamarin generalmente se ejecuta sobre Mono , que es una versión de .NET que fue creada para soporte multiplataforma antes de que Microsoft decidiera oficialmente 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)
Debe usar .NET Core, en lugar de .NET Framework o Xamarin, en los siguientes 6 escenarios típicos de acuerdo con la documentación here .
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 origen, 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 un 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 .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 esconden 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.
Además, es posible que también desee leer:
Puede consultar en esta línea: diferencia entre ASP.NET Core (.NET Core) y ASP.NET Core (.NET Framework)
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.
.NET Framework es compatible con Windows y aplicaciones web. 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 admite UWP y ASP.NET Core. UWP se utiliza para construir Windows 10 objetivos de Windows y aplicaciones móviles. 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-framework-server
actualizado en mayo de 2019
debe usar .Net Core 3.0 y luego actualizar a su próxima versión .Net 5, todo lo que necesita es una sola plataforma unificada .Net5
Solo habrá un .NET en el futuro, y podrá usarlo para apuntar> Windows, Linux, macOS, iOS, Android, tvOS, watchOS y WebAssembly y más. https://devblogs.microsoft.com/dotnet/introducing-net-5/